Dear Bitcoin Development Community,
I’m sharing a draft BIP for a quantum-resistant address format for Bitcoin, developed as part of the safe-btc project (GitHub - Zaenus/btc-safe: Proposals for improve safety under Quantum attacks · GitHub).
Summary
This BIP proposes a new bc1z address format using ML-DSA-65 (FIPS 204) post-quantum signatures. The format commits to a SHA-256 hash of the ML-DSA public key, revealing the full public key only at spend time in the witness — similar to how P2WPKH works today.
Motivation
Bitcoin’s ECDSA and Schnorr signatures are vulnerable to Shor’s algorithm on a cryptographically relevant quantum computer (CRQC). Once a public key appears on-chain, a quantum attacker can derive the private key and spend the funds. Approximately 6.9 million BTC (~$586B) sits in addresses with exposed public keys.
Design Highlights
- Address format:
bc1z<witness version 0x02><32-byte SHA-256 commitment> - Spend witness:
<ML-DSA signature (3,309 bytes)> <ML-DSA public key (1,952 bytes)> - Soft fork compatible: Old nodes see
bc1zoutputs as anyone-can-spend (witness version > 1) - Off-chain reference implementation available: Python library with key generation, signing, verification, migration helper, and quantum canary monitor
- Signature aggregation prototype: SNARK-wrapped ML-DSA signatures compress ~33KB of individual signatures to ~2KB for 10 signatures
Repository
The full BIP draft is in docs/bip/0001-pq-address-format.md.
Request for Comments
I’m looking for feedback on:
- Address format design (HRP
bc1z, witness version 0x02, 32-byte commitment) - ML-DSA-65 parameter choice (security vs. signature size trade-off)
- Soft fork deployment considerations
- Migration path for existing UTXOs
- Whether the community sees value in pursuing this before a CRQC exists
This is an early draft intended to start discussion. I’m happy to revise based on community feedback.
Best regards, Zaenus