Abstract
This research is a direct continuation of our proposal available at the link.
The primary aim of proposed module is to enhance the security and privacy of Safe Wallet's multisignature functionality using zkSNARK technology. The module seeks to achieve the following:
- Signature check: we propose employing a Merkle tree where the leaves consist of the public keys of participants. The root of the Merkle tree is stored within the module's contract. Candidates, to vote for transaction approval, must prove ownership of a valid message signature and prove their public key's position within the Merkle tree.
- Tree with "Secrets": we also suggest an alternative approach, utilizing a Merkle tree for storing "secrets." These "secrets" could, for instance, correspond to specific signature standards. Participants approving a transaction must demonstrate knowledge of the relevant "secret" and validate its position within the Merkle tree.
Also in the proposal we have highlighted a list of aspects to which we are responding with this research:
- Determining the technological stack
- Exploring recursive zkSNARK usage
- Comparing zkSNARK algorithms
- Determining the optimal transaction sending method
- Investigating other nuanced elements
- Selecting the optimal method for storing proofs
- Investigating alternative elliptic curves
- Exploring UI enhancements for SAM usability
- Writing technical documentation of work performed
Our proposal could result in a module for Safe Wallet that allows participants to increase their on-chain anonymity as the multisig participants will now be hidden from outside observers.
Exploring recursive zkSNARK usage for SAM
Technical overview
zkSNARK stands for "Zero-Knowledge Succinct Non-interactive ARgument of Knowledge." It is a cryptographic proof system that allows one party to prove to another that a certain statement is true, without revealing any additional information beyond the validity of the statement itself. SNARKs are designed to be
- Succinct, meaning that the proof size is short and efficiently verifiable.