Multi-Signature Overview
What is Multisig?
Multi-signature wallets require multiple private keys to authorize a transaction, providing:- Enhanced Security - No single point of failure
- Shared Custody - Distributed key management
- Governance - Multi-party approval process
- Recovery Options - Backup keys prevent loss
Signature Schemes
Multisig uses M-of-N configurations:| Use Case | Configuration | Reasoning |
|---|---|---|
| Personal with backup | 1-of-2 | Simple recovery |
| Joint account | 2-of-2 | Requires both parties |
| Family savings | 2-of-3 | Flexible + secure |
| Company treasury | 3-of-5 | Distributed control |
| Large organization | 5-of-9 | Byzantine fault tolerance |
Creating Multisig Wallets
Account Builder Configuration
Setting Up 2-of-3 Multisig
Step 1: Configure Multisig ParametersScript Types for Multisig
P2WSH (Recommended)- Native SegWit multisig
- Lowest transaction fees
- Bech32 addresses (bc1…)
- Modern, efficient
- Nested SegWit multisig
- Backward compatible
- Addresses start with 3…
- Moderate fees
- Original multisig
- Addresses start with 3…
- Highest fees
- Maximum compatibility
Key Management Requirements
Critical Rules:- Unique Fingerprints - Each key must be from different seed
- Unique Extended Public Keys - No key reuse
- Consistent Script Version - All keys same type
- Proper Derivation Paths - Follow BIP48 standard
PSBT Workflow
What is PSBT?
Partially Signed Bitcoin Transaction (BIP 174):- Standard format for unsigned/partially signed transactions
- Contains all information needed for signing
- Enables coordination across multiple devices
- Privacy-preserving - no key material exchanged
PSBT Structure
Complete PSBT Flow
1. Create Transaction (Coordinator)PSBT Signing Process
Signing with Mnemonic
Signature Verification
Account Matching
Finding Matching Account
Multi-Device Coordination
Coordinator Role
The coordinator device:- Creates the wallet configuration
- Builds transactions
- Collects signatures from cosigners
- Combines and broadcasts final transaction
Cosigner Role
Each cosigner device:- Imports wallet configuration
- Receives unsigned PSBTs
- Reviews transaction details
- Signs with their key
- Returns signed PSBT
Configuration Export/Import
Export Configuration:Security Considerations
Key Distribution
Best Practices:- Geographic Distribution - Keys in different physical locations
- Device Diversity - Different hardware/software
- Key Holder Diversity - Different trusted parties
- Secure Communication - Encrypted channels for PSBT sharing
- Verification Process - Multiple people verify transactions
PSBT Security
Always Verify:Attack Vectors
Address Substitution:- Attacker modifies recipient address
- Mitigation: Always verify addresses on multiple devices
- Attacker changes payment amounts
- Mitigation: Review all amounts before signing
- Excessive fees to drain funds
- Mitigation: Set maximum acceptable fee rate
- Modified PSBT between signers
- Mitigation: Verify original PSBT hash before signing
Advanced Features
Threshold Signatures
Optimize for different scenarios:Descriptor Backup
Critical Information:- Gather descriptor and threshold keys
- Import descriptor into compatible wallet
- Restore each key from backup
- Reconstruct multisig wallet
- Sync with blockchain
Watch-Only Multisig
Monitor multisig wallet without signing ability:- Accounting/audit
- Portfolio tracking
- Public transparency
- Coordinator node
Troubleshooting
PSBT Won’t Sign
Common Issues:- Wrong account - PSBT fingerprint doesn’t match
- Incorrect script type - P2WSH vs P2SH mismatch
- Missing witness data - PSBT incomplete
- Already signed - This key already signed
Cannot Broadcast
Possible Causes:- Insufficient signatures - Below threshold
- Invalid signatures - Signature verification failed
- Double spend - UTXOs already spent
- Fee too low - Below minimum relay fee
Lost Cosigner Key
If a key is lost:- Verify backup keys - Ensure you have threshold keys
- Sweep funds - Move to new multisig with remaining keys
- Create new wallet - Generate fresh multisig setup
- Update procedures - Improve key backup process