title | subtitle | author | date | sidebar_label | sidebar_position | paper | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Wamu: A Protocol for Computation of Threshold Signatures by Multiple Decentralized Identities |
Whitepaper |
David Semakula \
[email protected] \
https://davidsemakula.com
|
Published: 15th May, 2023 \
Last Updated: 13th November, 2023 \
Version: 1.5
|
Whitepaper |
1 |
|
Multisig wallets (e.g. Safe 1) are already widely adopted 2 and have proven the importance of noncustodial shared wallets with threshold access structures controlled by multiple decentralized identities, for mainstream users and decentralized teams and organizations.
However, threshold signatures have some unique benefits over multisig wallets including: cost-effectiveness, universal interoperability, and enhanced privacy and security.
This is because while multiple parties each independently sign a transaction and the set of signatures is evaluated against the access structure/security policy on-chain for multisig wallets, threshold signature schemes instead allow multiple parties to jointly compute a single signature that's similar to those computed by traditional single-party wallets (e.g. Metamask 3).
Despite the aforementioned benefits, there are currently no mainstream threshold signature wallet alternatives to multisig wallets for decentralized teams and organizations that require noncustodial shared wallets with threshold access structures because:
- Most mainstream threshold signature wallets (e.g. ZenGo 4 and Torus 5) are designed for the single-user setting with each party simply being either a separate device or authentication factor for the same user.
- Most institutional threshold signature wallet solutions (e.g. Fireblocks 6, Sepior 7 and Taurus 8) have architectures that are either infeasible and/or undesirable for decentralized teams and organizations because of one or more of the following requirements:
- Centralized or trust-based identity infrastructure for authenticating signing parties.
- Controlled network environments with low latency and/or persistent synchronous connections between signing parties.
The ecosystem needs a new breed of noncustodial threshold signature wallet solutions that are controlled by multiple decentralized identities and can run on mainstream consumer devices making them well suited for use by decentralized teams and organizations, and mainstream users.
Recent breakthroughs in threshold signing research have yielded non-interactive threshold signature schemes (e.g. CGGMP20 [@cggmp20], GG20 [@gg20], CMP20 [@cmp20] and FROST20 [@frost20]) that allow for asynchronous communication between signing parties, making the use of mainstream consumer devices as signing parties viable.
To remove the need for centralized and/or trust-based identity systems, and provide a user experience similar to existing multisig wallets, Wamu introduces a unique approach of augmenting a state-of-the-art non-interactive threshold signature scheme (e.g. CGGMP20 [@cggmp20]) by cryptographically associating each signing party with a decentralized identity. This is achieved by:
- Splitting the secret share for each party between the party and the output of a signing operation by its associated decentralized identity, thus making the signing operation a requirement for reconstructing the party's secret share as described in section 3.
- Adding peer-to-peer decentralized identity authentication to the key generation and signing protocols (and optionally to the key refresh protocol) of the threshold signature scheme.
- Defining protocols for identity rotation, access structure modification (i.e. share addition and removal and threshold modification) and share recovery (as described in section 4) that build on top of the above 2 augmentations.
NOTE: For interoperability with existing wallet solutions, the only requirement for decentralized identity providers is the ability to compute cryptographic signatures for any arbitrary message in such a way that the output signature is 1) deterministic and 2) can be verified in a non-interactive manner.
The rest of this document describes how Wamu's unique share splitting and reconstruction, and share recovery protocols work. For these descriptions, we'll use the following notation:
-
$P$ denotes a party. -
$I$ denotes a decentralized identity. -
$sk$ denotes the secret key of a decentralized identity. -
$\mathtt{Sig}$ denotes a signing algorithm. -
$q$ denotes the prime order of the cyclic group of the elliptic curve.
NOTE: While the share splitting and reconstruction protocol is described in technical detail in this document, for simplicity, the share recovery protocol is only described at a high-level and no technical detail is provided for decentralized identity authentication and the rest of Wamu's sub-protocols. We refer the reader to Wamu's technical specification [@wamu] for the technical details that are not provided in this document.
Assuming that we have a secret share
This is achieved by generating a message
NOTE: Share splitting and reconstruction is a single-party localized concern that happens after (and is not related to) the distributed key generation (DKG) protocol of the threshold signature scheme.
Given a secret share
- Sample a random message
$k$ (i.e. the signing share). - Compute a signature
$(r, s) \leftarrow \mathtt{Sig}(sk, k)$ . - Compute the first sub-share of
$x$ as the point$\alpha = (r, s) \pmod q$ . - Generate a line
$L$ (i.e a polynomial of degree 1) such that$\alpha$ is a point on the line and$x$ is the constant term (i.e. Polynomial Interpolation [@wiki:interpolation]) - Compute another point
$\beta$ from$L$ such that$\beta \neq \alpha$ ,$\beta$ becomes the second sub-share of$x$ . - Erase both
$\alpha$ and$L$ from memory. - Return the signing share
$k$ and the sub-share$\beta$ .
Given a signing share
- Compute a signature
$(r, s) \leftarrow \mathtt{Sig}(sk, k)$ . - Compute a sub-share
$\alpha$ as the point$\alpha = (r, s) \pmod q$ . - Generate a line
$L$ by performing Polynomial Interpolation [@wiki:interpolation] using$\alpha$ and$\beta$ as inputs. - Compute
$x$ as the constant term of$L$ . - Erase both
$\alpha$ and$L$ from memory. - Return
$x$ as the secret share.
NOTE: The signature parameters
Share recovery is only possible if the user's decentralized identity either survived or can be recovered after the disastrous event. In either case, there are two options for share recovery depending on:
- A quorum of honest parties surviving the disastrous event.
- A backup (preferably encrypted) of a signing share
$k$ and sub-share$\beta$ pair on user-controlled secondary or device-independent storage.
If a quorum of honest parties survives the disastrous event, share recovery can be accomplished based on peer-to-peer decentralized identity authentication.
The party
From the share splitting and reconstruction protocol in section 3 above, we note that for any party
Therefore, a signing share
For increased security, a signature of a standardized phrase can be used as entropy for generating an encryption secret which can then be used to encrypt the signing share
4.2.3. Further security and usability considerations for share recovery with a backup {#share-recovery-backup-enhancements}
For further improved security and usability, the signing share
Additionally, it's possible to rerun the share splitting protocol to generate a new pair of a signing share
Lastly, the "backup" signing share
The Wamu project (meaning "together") aims to unlock the benefits of threshold signatures for decentralized teams and organizations, and mainstream users that require noncustodial shared wallets with threshold access structures by:
- Defining an open protocol that encourages research into and development of mainstream multi-user threshold signature wallet solutions.
- Providing modular, performant, free and open-source building blocks that allow software developers to either build new mainstream multi-user threshold signature wallets or integrate state-of-the-art threshold signature schemes into existing mainstream wallets.
This work is funded by a grant from the Ethereum Foundation 13.
::: {#refs} :::
Footnotes
-
Safe. https://safe.global ↩
-
Dune Analytics. [Mainnet] Safe. https://dune.com/safe/ethereum ↩
-
MetaMask. https://metamask.io ↩
-
ZenGo. https://zengo.com ↩
-
Torus. https://tor.us ↩
-
Fireblocks. https://www.fireblocks.com ↩
-
Sepior. https://sepior.com ↩
-
Taurus. https://www.taurushq.com ↩
-
Apple iCloud. https://www.icloud.com. ↩
-
Google Drive. https://drive.google.com. ↩
-
Microsoft OneDrive. https://www.microsoft.com/en-us/microsoft-365/onedrive/online-cloud-storage. ↩
-
Dropbox. https://www.dropbox.com. ↩
-
Ethereum Foundation: Ecosystem Support Program. https://esp.ethereum.foundation. ↩