Multi-Party Signatures for Chrysalis
Second Layer
Standard Ed25519 signatures are generated in a process outside of the IOTA protocol:
- This requires no protocol changes.
- Solutions based on these approaches can be implemented once and then used for other coins as well.
Shamir’s Secret Sharing (SSS)
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
- One trusted dealer splits a secret (e.g. private key) into N unique parts and distributes them
- Any T of the shards are sufficient to reconstruct the secret
- This is not "true" multisig, since:
- The private key must be generated to derive the shards
- The private key must be reassembled from the shards before a transaction can be signed
Pros
- Works with any signature scheme
- Can be used to share/backup the master seed of a wallet
- Standardized in SLIP-39
- Allows re-generation of shards when N changes
Cons
- Not 100% trustless, as the dealer / signer knows the private key. However, trusted hardware could help mitigating this.
Threshold Ed25519
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
- Using a distributed key derivation: N parties participate in an interactive process that generates a secret key for each party and a single public key
- Any T parties can participate in an interactive process to produce a valid signature.
- It uses secret sharing, additively homomorphic encryption and zero-knowledge proofs to achieve trustlessness.
- Based on construction described in [Genaro and Goldfeder, 2019] adapted for Ed25519
- Go library for multi-party threshold ECDSA / EdDSA: https://github.com/binance-chain/tss-lib
- N-of-N signatures allow for a much easier process by simply aggregating the signatures (without using SSS, homomorphic encryption or ZKP). See [Boneh et al., 2018, Section 5.1].
Note: (N - 1)-of-N schemes are equivalent to N-of-N when sharing pairs of secrets among members
Pros
- Generated signatures are indistinguishable from regular Ed25519. (Same size and validation time)
- Trustless
- Works for any coin using Ed25519 signatures
Cons
- Not standardized and rather new
- Signature aggregation relies on random number generator. (We cannot choose R deterministically as in Ed25519.)
- Key derivation as well as singing consist of several rounds of communication. (This could be annoying with cold storage.)
- Dealing with malicious actors is difficult, as they could potentially stall the signing. (However, there seems to be solutions for this.)
First Layer
Support multi-party signatures by introducing new signature schemes into the IOTA protocol:
- This requires changes of the current spec'ed Chrysalis protocol
- Once introduced, they have to remain in the protocol indefinitely and cannot be removed
Naive Multisig (Script)
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
- Generate N key pairs independently and share the public keys
- Use additional unlock script/type to supply and validate set of T public keys + signatures
Pros
- Trustless
- Signing can be done offline on cold storage (at least when the T parties are not malicious)
- Can support very complicated tree-like unlock conditions, e.g.
((3-of-5 multisig) AND (2-of-2 multisig)) OR (single master signature)
Cons
- Requires T signatures and T keys in the unlock block for validation
- Non-malleability is tricky especially with malicious actors
- Validation time is linear in N
Boneh-Lynn-Shacham (BLS) Threshold Signatures
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
- Use interactive, SSS-based key derivation for N parties
- Any T independent signatures can be aggregated into a valid transaction signature
Pros
- Trustless
- Signing can be done offline on cold storage
- The BLS signature scheme is deterministic and non-malleable
Cons
- Standardization still in draft stage
- Much slower validation than plain Ed25519 (but does not depend on N or T)
Overview
|
SSS |
t-Ed25519 |
Naive |
BLS |
Trustless |
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
No protocol changes |
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Air gap signing |
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Complex unlock conditions |
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Deterministic |
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Multisig hidden |
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
|
Unlock block size |
constant |
constant |
linear (in T) |
constant |
Validation time |
constant |
constant |
linear (in T) |
constant (but 10x Ed25519) |