1
0
mirror of https://github.com/bitcoin/bips.git synced 2026-07-13 17:56:00 +00:00

bip-0054: an SPV verifier that supports 64-byte txs would have to be modified

This commit is contained in:
Antoine Poinsot
2026-07-07 15:32:17 -04:00
parent 9ec73fc6ed
commit 7c7e2f10a4

View File

@@ -107,10 +107,10 @@ alternatives to invalidating them were previously proposed. Some believe the imp
of Merkle proofs are too marginal to be worth introducing a discontinuity in the set of valid of Merkle proofs are too marginal to be worth introducing a discontinuity in the set of valid
witness-stripped transaction sizes (discussion [here][64 bytes debate]). Others have suggested instead committing to the Merkle witness-stripped transaction sizes (discussion [here][64 bytes debate]). Others have suggested instead committing to the Merkle
tree depth in the header's version field[^8], or even invalidating Merkle tree nodes that correspond tree depth in the header's version field[^8], or even invalidating Merkle tree nodes that correspond
to a valid serialization for a Bitcoin transaction[^14]. These options make some of the available to a valid serialisation for a Bitcoin transaction[^14]. These options make some of the available
workarounds[^13] easier to deploy. The authors believe it is preferable to address the root cause by workarounds[^13] easier to deploy. The authors believe it is preferable to address the root cause by
invalidating 64-byte transactions, fixing the vulnerability without Merkle proof users having to invalidating 64-byte transactions. This fixes the vulnerability for users relying on Merkle proofs
rely on any workaround or even know one is necessary in the first place. of non-64-byte transactions, without requiring a workaround.
The `nLockTime` field of transactions is a natural place to store a block height and is currently The `nLockTime` field of transactions is a natural place to store a block height and is currently
unused in coinbase transactions. Using it to enforce that new coinbase transactions differ from unused in coinbase transactions. Using it to enforce that new coinbase transactions differ from