BIP 54 — Consensus Cleanup
Bundles four consensus soft-fork fixes: a timewarp-attack timestamp constraint, a transaction signature-operation limit, invalidating 64-byte transactions, and mandatory coinbase nLockTime.
Entries of this type, gathered from across the archive. Use the type axis to compare communication formats over time.
36 entries
Antoine Poinsot ↔ Matt Corallo
Bundles four consensus soft-fork fixes: a timewarp-attack timestamp constraint, a transaction signature-operation limit, invalidating 64-byte transactions, and mandatory coinbase nLockTime.
Hunter Beast ↔ Ethan Heilman, Isabel Foxen Duke
Pay-to-Merkle-Root (P2MR), a quantum-resistant output type. Like Taproot without the quantum-vulnerable key path spend — commits only to the Merkle root of a script tree. SegWit v2, soft fork.
Defines the general syntax, checksum, and key/script expression grammar for Output Script Descriptors, the language wallets use to describe and reproduce sets of output scripts.
Defines the m/86'/0'/0' derivation path for HD wallets recovering single-key Taproot (P2TR) outputs, reusing the BIP 44/49/84 account structure.
Defines PSBT Version 2, which lets inputs and outputs be added to a Partially Signed Bitcoin Transaction after creation, unlike the fixed transaction of PSBT v0 (BIP 174).
Specifies Bech32m, a checksum variant of Bech32 that fixes an insertion-error weakness, and mandates its use for native SegWit v1+ (Taproot) addresses while v0 keeps Bech32.
Pieter Wuille ↔ Jonas Nick, Tim Ruffing
Schnorr signatures replacing ECDSA for Taproot. Provably secure, non-malleable, with efficient multi-signature aggregation — complex scripts become on-chain indistinguishable from simple payments.
Pieter Wuille ↔ Jonas Nick, Anthony Towns
Specifies tapscript — the taproot script-path validation rules: Schnorr signature checks via OP_CHECKSIG/OP_CHECKSIGADD, OP_SUCCESS upgrade opcodes, and a per-input sigops budget.
Pieter Wuille ↔ Jonas Nick, Anthony Towns
Taproot — Bitcoin's most significant protocol upgrade since SegWit. Combines Schnorr (BIP 340) with MAST so complex spending conditions look like simple payments on-chain.
Dhruv Mehta ↔ Tim Ruffing, Jonas Schnelli, Pieter Wuille
Defines the v2 P2P transport: unauthenticated opportunistic ChaCha20Poly1305 encryption over ElligatorSwift-encoded ECDH key exchange, producing a pseudorandom bytestream with v1 fallback.
Defines the addrv2 P2P message and sendaddrv2 signaling, replacing addr to gossip longer node addresses — Tor v3, I2P, CJDNS, Yggdrasil — beyond the old 128-bit limit.
Defines the BIP 32 derivation path and extended-key version bytes (zpub/zprv) for HD wallets generating native SegWit P2WPKH addresses.
Proposes hashrate-escrow sidechains: six OP_RETURN messages (M1-M4) for sidechain proposal and withdrawal-bundle voting, plus M5/M6 deposit and withdrawal transactions governed by miner ACKs.
Defines PSBT, a binary key-value transaction format letting offline, hardware, and multi-party signers exchange unsigned and partially-signed transactions without direct UTXO access.
Defines Bech32, a checksummed base32 format, and the segwit address encoding (bc1.../tb1...) built on it for native v0-16 witness outputs.
Specifies a version-bits soft fork activation mechanism using block heights instead of timestamps, adding a flag that can guarantee lock-in before a timeout height.
Fixes ECDSA signature malleability with two consensus rules: LOW_S, requiring the lower-half S value, and NULLFAIL, requiring failing signatures be empty byte arrays.
Defines the BIP32 derivation path (purpose 49') and address scheme for P2WPKH-nested-in-P2SH accounts, so BIP141 segregated witness wallets sharing a seed fail visibly instead of missing UTXOs.
Defines Compact Block Relay — sendcmpct/cmpctblock/getblocktxn/blocktxn messages using SipHash-based short transaction IDs to cut P2P bandwidth for block propagation.
Defines the feefilter P2P message, letting a node tell peers to stop announcing transactions below a given fee rate, cutting bandwidth spent on invs that would never be relayed further.
New SegWit v0 signature-hash algorithm: commits to the input's spent amount, fixes O(n^2) quadratic hashing, and changes OP_CODESEPARATOR/FindAndDelete handling.
Eric Lombrozo ↔ Johnson Lau, Pieter Wuille
Segregated Witness (SegWit) — Bitcoin's most significant protocol upgrade since creation. Separates signature from transaction data, fixing malleability, enabling Lightning, raising block capacity.
Signaling mechanism for opt-in Replace-by-Fee (RBF) — unconfirmed transactions replaceable by higher-fee versions. Improved fee estimation but controversial for zero-confirmation security.
Pieter Wuille ↔ Peter Todd, Greg Maxwell, Rusty Russell
Defines the original version-bits mechanism for signaling and activating soft forks in parallel via the block nVersion field, using median-time-past thresholds and a fixed timeout.
Thomas Kerin ↔ Mark Friedenbach
Soft fork redefining lock-time eligibility to use the median of the past 11 blocks' timestamps instead of a single block's timestamp, removing miners' incentive to lie about block time.
Mark Friedenbach ↔ BtcDrak, Nicolas Dorier, kinoshitajona
Repurposes the transaction sequence number as a consensus-enforced relative lock-time, letting an input stay unspendable for a set number of blocks or time after its output confirms.
Restricts ECDSA signatures in Bitcoin scripts to strict DER encoding, removing OpenSSL's implicit role in consensus validity and reducing transaction malleability.
Defines OP_CHECKLOCKTIMEVERIFY, a soft-fork opcode that makes a transaction output unspendable until a specified block height or time, enabling escrow and time-locked contracts.
Marek Palatinus ↔ Pavol Rusnak
Defines a BIP32-based path (purpose'/coin_type'/account'/change/index) letting one seed manage multiple coins and accounts, plus the account-discovery algorithm for recovering wallets.
Marek Palatinus ↔ Pavol Rusnak
Defined the standard for generating human-readable mnemonic seed phrases (typically 12 or 24 words) from random entropy. Combined with BIP 32, became the universal Bitcoin wallet backup method.
Embeds the block height in each coinbase transaction's scriptSig and raises block version to 2, activated once 95% of the last 1,000 blocks signal support, enforcing coinbase uniqueness.
Defines the getblocktemplate JSON-RPC method for requesting a full block template from a Bitcoin node and submitting completed blocks back via submitblock.
Introduced hierarchical deterministic (HD) wallets — an entire tree of key pairs derived from a single master seed. Eliminated frequent-backup needs and enabled organized parent-child key derivation.
Defined the 'bitcoin:' URI scheme for standardized payment requests. Enables clickable Bitcoin addresses and QR codes with amount/label/message parameters — basis of user-friendly Bitcoin payments.
Defines the Pay-to-Script-Hash (P2SH) standard transaction type, shifting responsibility for redemption conditions from sender to redeemer via a 20-byte script hash.
The foundational BIP defining the Bitcoin Improvement Proposal process itself, modeled after Python's PEP. Three types: Standards Track, Informational, Process.