dragonfly-multisig
A zk multisig where the signer's address is hidden in the smart contract
Screenshots



Problem Statement
A zero-knowledge multi-signature wallet that preserves owner privacy while maintaining the security guarantees of traditional multisig wallets. The wallet uses zk-SNARKs (Groth16) to prove ownership without revealing the actual owners' addresses.This implementation combines:Zero-knowledge proofs for owner privacyMulti-signature functionality for enhanced securityOn-chain transaction managementReplay attack prevention through attestationsPrivacy: Owner addresses are never revealed on-chainSecurity: Requires M-of-N signatures to execute transactionsFlexibility: Supports arbitrary ETH transfers and contract interactionsReplay Protection: Uses unique attestations for each signature
Solution
OverviewThis implementation combines:Zero-knowledge proofs for owner privacyMulti-signature functionality for enhanced securityOn-chain transaction managementReplay attack prevention through attestationsKey FeaturesPrivacy: Owner addresses are never revealed on-chainSecurity: Requires M-of-N signatures to execute transactionsFlexibility: Supports arbitrary ETH transfers and contract interactionsReplay Protection: Uses unique attestations for each signatureTechnical ArchitectureSmart ContractsMultiSigWallet.solManages transaction lifecycleStores hashed owner identitiesVerifies zk-proofs for ownershipHandles transaction executionGroth16Verifier.solVerifies zero-knowledge proofsIntegrated with the main wallet contractCircuitsThe zero-knowledge circuit (multisig.circom) proves:Ownership: The prover knows a private key corresponding to one of the registered owner hashesMessage Attestation: The prover has signed the transaction data
Hackathon
ETHGlobal Bangkok
2024
Contributors
- HazelGrace07
4 contributions