1
0
mirror of https://github.com/bitcoin/bips.git synced 2026-06-01 17:15:27 +00:00

bip-0054: state explicitly fake inclusion proofs only concern SPV verifier

This commit is contained in:
Antoine Poinsot
2026-05-15 10:50:34 -04:00
parent 5c67f90fa8
commit 8ae3af58e0

View File

@@ -40,8 +40,10 @@ pressures and leading to reduced network security.
In computing a block's Merkle root, a transaction with exactly 64 bytes of non-witness data can be In computing a block's Merkle root, a transaction with exactly 64 bytes of non-witness data can be
interpreted both as an intermediate node in the tree and as a leaf in the tree. This makes it interpreted both as an intermediate node in the tree and as a leaf in the tree. This makes it
possible to fake inclusion proofs by pretending a 64-byte block transaction is an inner node, as possible to trick an SPV verifier into accepting an inclusion proof for a transaction that is not
well as to pretend the inner nodes on one level of the tree are the actual block transactions. part of a block, by pretending a 64-byte block transaction is actually an inner node. Invalidating
64-byte transactions addresses this vulnerability without requiring users of SPV verifiers to deploy
one of the available mitigations, or even to know one is necessary in the first place.
Since [bip-0034][BIP34] activation, explicit [bip-0030][BIP30] validation is not necessary until Since [bip-0034][BIP34] activation, explicit [bip-0030][BIP30] validation is not necessary until
block height 1,983,702[^0]. Mandating new coinbase transactions be different from the early block height 1,983,702[^0]. Mandating new coinbase transactions be different from the early