Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

6111 add multisig support #6204

Closed
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Add multisig key support
  • Loading branch information
aaronc committed May 12, 2020
commit 613be63627c20c451f0101a8356187355b69caa9
27 changes: 24 additions & 3 deletions docs/architecture/adr-020-protobuf-transaction-encoding.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,27 @@ message SignerInfo {
// address can be used for accounts that already have a public key in state
bytes address = 2;
}
SignMode mode = 3;

ModeInfo mode_info = 3;
}

message ModeInfo {
oneof sum {
Single single = 1;
Multi multi = 2;
}

message Single {
SignMode mode = 1;
}

message Multi {
CompactBitArray bitarray = 1;
repeated ModeInfo mode_infos = 2;

}
}

enum SignMode {
SIGN_MODE_UNSPECIFIED = 0;

Expand Down Expand Up @@ -225,8 +243,11 @@ in order):
message SignDocAux {
bytes body_bytes = 1;
// PublicKey is included in SignDocAux :
// 1. as a special case for multisig public keys to be described later
// in this document
// 1. as a special case for multisig public keys. For multisig public keys,
// the signer should use the top-level multisig public key they are signing
// against, not their own public key. This is to prevent against a form
// of malleability where a signature could be taken out of context of the
// multisig key that was intended to be signed for
// 2. to guard against scenario where configuration information is encoded
// in public keys (it has been proposed) such that two keys can generate
// the same signature but have different security properties
Expand Down