← Back to home

dragonfly-multisig

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

Screenshots

dragonfly-multisig screenshot 1
dragonfly-multisig screenshot 2
dragonfly-multisig screenshot 3

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