QR Seal: Multisig Wallet 🦭

QR Seal: Multisig Wallet 🦭

Privacy-Preserving, Gas-Optimized Mobile Multisig via Account Abstraction & Schnorr 🤿 Signatures.

The problem QR Seal: Multisig Wallet 🦭 solves

QR Seal is a privacy-preserving, gas-optimized mobile multisig wallet, implemented via account abstraction and Schnorr signatures.

With QR Seal, all signing happens off-chain and currently in person, by scanning QR codes between devices. Once everyone has signed the transaction, it is broadcasted on-chain.

QR Seal is built on account abstraction, which is why we can use Schnorr signatures. The great benefit of Schnorr signatures is that they're privacy-preserving: unlike any other multisig on Ethereum, you don't know who the signers are - you can have multiple signer keys participating in the multisig without ever revealing this on-chain!

The other benefit is that gas costs are significantly lower than a traditional multisig - a single Schorr transaction signature verification costs a bit more than 4k gas (as much as a single ecrecover!) and it stays static no matter how many signers the multisig has.

Threshold signatures are also possible in the future, via FROST or other Schnorr schemes.

Challenges we ran into

While building QR Seal, one of the key challenges we encountered was related to putting the actual Schnorr signatures to use. On a piece of paper it is easy: generate public nonces, pass them between users and aggregated the signatures. In reality it means keeping track of the state of the nonces at all times and making sure each participant has the same copy of them for the ongoing signature.

We decided to use QR codes for the communication. There, we encountered a problem with the length of the QR code and scanning as a whole. Testing became more difficult as the QR code refused to be scanned on specific devices. So it was a challenge to reduce the data enough to fit in a QR code and build the communication around that.

Discussion