Protocol Specifications
Bitcoin Improvement Proposals (BIPs) implemented in BLVM. Consensus-critical BIPs are formally verified. See Formal Verification for verification details.
Consensus-Critical BIPs
Script Opcodes:
- BIP65 (CLTV, opcode 0xb1): Locktime validation (
blvm-consensus/src/script.rs) - BIP112 (CSV, opcode 0xb2): Relative locktime via sequence numbers (
blvm-consensus/src/script.rs) - BIP68: Relative locktime sequence encoding (used by BIP112)
Time Validation:
- BIP113: Median time-past for CLTV timestamp validation (
blvm-consensus/src/block.rs)
Transaction Features:
- BIP125 (RBF): Replace-by-fee with all 5 requirements (
blvm-consensus/src/mempool.rs) with tests - BIP141/143 (SegWit): Witness validation, weight calculation, P2WPKH/P2WSH (
blvm-consensus/src/segwit.rs) - BIP340/341/342 (Taproot): P2TR validation framework (
blvm-consensus/src/taproot.rs)
Network Protocol BIPs
- BIP152: Compact block relay - short transaction IDs, block reconstruction (see Compact Blocks)
- BIP157/158: Client-side block filtering - GCS filter construction, integrated with network layer, works over all transports (see BIP157/158)
- BIP331: Package relay - efficient transaction relay (see Package Relay)
Application-Level BIPs
- BIP21: Bitcoin URI scheme (
blvm-node/src/bip21.rs) - BIP32/39/44: HD wallets, mnemonic phrases, standard derivation paths (
blvm-node/src/wallet/) - BIP70: Payment protocol (deprecated, legacy compatibility only,
blvm-node/src/bip70.rs) - BIP174: PSBT format for hardware wallet support (
blvm-node/src/psbt.rs) - BIP350/351: Bech32m for Taproot (P2TR), Bech32 for SegWit (
blvm-node/src/bech32m.rs)
Experimental Features
Available in experimental build variant: UTXO commitments, BIP119 CTV (CheckTemplateVerify), Dandelion++ privacy relay, Stratum V2 mining protocol.