TL;DR
- What: NoirWallet Secure Vault, an optional 2-of-3 FROST threshold signing setup for Zcash shielded funds.
- Devices: Chrome Extension + Mobile Wallet for everyday spending, plus an Offline Backup Signer.
- Key property: no single device ever holds the full spend key, so one compromised device can’t move your funds.
- On-chain: spends use Re-Randomized FROST and look like any ordinary Zcash shielded spend.
- Before release: transaction verification, recovery testing and an independent security audit.
Why multi-device signing?
Ledger has confirmed that an affected hardware wallet sold through a third-party reseller contained an unauthorized hardware implant. All confirmed fund-loss cases involve devices from that reseller, and the incident has renewed attention on wallet security.
When all signing authority sits on one device, compromising that device or its key can cost a user all of their funds. With distributed key management, no single device can control a user’s assets on its own.
One compromised device should never be enough to steal your funds.
What is FROST on Zcash?
FROST (Flexible Round-Optimized Schnorr Threshold signatures, RFC 9591) lets a group of devices share control of one signing key. Each device holds only a share of the key, and any threshold of them, such as two out of three, can produce a single valid signature. The full key is never assembled in one place.
Zcash shielded spends use a signature that is re-randomized for every transaction, so spends can’t be linked to each other. Re-Randomized FROST, implemented in the Zcash Foundation’s FROST library and described in draft ZIP-312, adds that step to FROST. This means:
- The result is one ordinary Zcash spend-authorization signature, checked by the network like any other.
- Nothing on-chain shows that several devices signed, or how many.
Secure Vault: 2-of-3 threshold signing
How it works
- Setup: the devices generate their key shares through DKG, with no trusted dealer. The full private key never exists on any single device.
- Every day: the extension and the phone sign. The offline signer is not needed for normal spending.
- Backup and recovery: each device backs up only its own key share with its own recovery phrase. If a device is lost, the remaining two can jointly move funds to a new Vault.
- Key safety: devices never send raw key shares to each other, and NoirWallet’s servers never hold key shares.
Signing flow
Bluetooth support in Chrome extensions is limited, so we’re testing it early. The QR option doesn’t depend on it.
- Start a payment. The user sets up a shielded payment in the extension. Each signing device prepares a fresh, one-time commitment.
- Build the transaction. The extension builds a PCZT (ZIP-374). Re-Randomized FROST ties the signature’s randomizer to those commitments, so they can’t be mismatched.
- Independent verification. The extension sends the full PCZT to the signers, and the phone checks the real transaction itself:
- Every recipient and amount against the transaction data, plus the fee.
- That change returns to the user’s own address (the phone holds the full viewing key for this).
- The SIGHASH, computed on its own.
- Joint signing. After the user approves, the required devices run FROST signing, each with fresh single-use nonces.
- Broadcast. The extension aggregates the partial signatures into a standard spend authorization signature and broadcasts. If a device declines, verification fails, or too few valid shares arrive, the transaction can’t be authorized.
Signing devices never blind-sign a hash supplied by the extension. Otherwise a hacked extension could show one amount and get a signature for another.
Security architecture
Recovery
For a 2-of-3 setup:
- With a recovery phrase: import it on a new device to restore the lost share and re-pair.
- Without a recovery phrase: the remaining two devices jointly move funds to a new Vault.
- Limit: if fewer than two shares remain available or recoverable, the funds can’t be recovered.
After losing a device, migrate funds to a new Vault promptly so the lost share stops being valid. A cleared or reinstalled browser profile counts as a lost device. Store each recovery phrase separately, because any two shares control the Vault.
For Zcash’s Ironwood pool, recovery follows ZIP-2005 and protects the key material it requires, including nk, rivk and qsk.
Threat model: what this does and doesn’t protect
- Protects: theft of funds through compromise of a single device.
- Does not hide: wallet activity from a compromised device. Every signer holds viewing data, so a compromised device can’t spend but may see funds.
- Shielded funds only: transparent funds aren’t covered, so NoirWallet plans to shield them automatically.
- Quantum recovery: every device holds the qsk material ZIP-2005 uses for recovery. This does not make Zcash quantum-secure.
How Secure Vault fits into NoirWallet
Secure Vault is optional and offered as a new wallet setup flow. Users who don’t want multi-device signing keep using NoirWallet exactly as today. Before release, we’ll complete transaction verification, recovery testing and an independent security audit.
We’d love your feedback
We’re especially interested in input on:
- The 2-of-3 device split and the offline backup signer role.
- Bluetooth LE with Noise vs. animated QR as signing channels.
- The recovery model, including migrating to a new Vault after a device loss.
- Anything we’ve missed in the threat model.
Reply below with questions, concerns or suggestions.


