Hi Eric,

Fair enough. The BIP rationale should discuss explicitly your point that it 
introduces a "seam", instead of just mentioning it in a footnote. Also i 
clarified how the full node consensus failure point is not the motivation for 
64-byte txs invalidations since it can be better addressed differently, as you 
previously pointed.

Changes here: https://github.com/bitcoin/bips/pull/2159. Also took Jeremy's 
feedback that "64-byte transactions" should spell out that it refers to 
witness-stripped serialized in more places than only the specifications.

Best,
Antoine

-------- Original Message --------
On Saturday, 05/02/26 at 00:15 [email protected] wrote:
Thanks Jeremey for this additional information. This exclusion is one of the 
reasons I originally pushed back, but I wasn't personally aware of any current 
use cases.

I would also suggest that the Rational section text in this area, while 
referencing my critiques in a footnote, doesn't capture the essence of them in 
the paragraph. It points out that I pushed back on importance, but excludes the 
reasons, which I consider essential in terms of making an informed decision. 
There is a referenced thread on Delving, and a related discussion on 
bitcoin-dev. I won't recount the details here, but I think the paragraph could 
more fairly represent the discussion, including the fact that the technical 
aspects were eventually agreed.

The TLDR is that:

(1) Merkle root malleation affects validation optimizations, not validation 
inherently.
(2) both forms of malleation can be mitigated by a node with no material 
performance hit (we do this).
(3) the material impact is to SPV wallets, as they must obtain the coinbase to 
mitigate.

This reference:

"It was suggested that the known vulnerabilities could instead be mitigated by 
committing to the Merkle tree depth in the header's version field"

Was added to the discussion by me, but is not the essence of my critique. It 
pertains to #3 and is not necessary for a node to mitigate malleation.

My pushback was that we are trading optimization implementation details for a 
consensus rule, and that the rule could create unforeseen problems by otherwise 
arbitrarily restricting the tx domain (which you have now pointed out below). I 
did not assume that everyone would see this modest SPV wallet benefit as worth 
the tradeoff. I am not personally taking a stand on that question, but I do 
think it could be presented more clearly.

Best,
Eric

> -----Original Message-----
> From: [email protected] <[email protected]> On
> Behalf Of jeremy
> Sent: Friday, May 1, 2026 5:15 PM
> To: Bitcoin Development Mailing List <[email protected]>
> Subject: [bitcoindev] [BIP-0054] 64-Byte Transactions and Potential
> Legitimate Uses
>
> For fun, let's start with a pop-quiz:
>
> Select all that apply: There can exist a transaction of ___ bytes serialized 
> size
> that BIP-0054's 64-byte restriction invalidates:
>
> A) 64 Bytes
> B) 0 Bytes
> C) 1.5MB
> D) 32 Bytes
> E) 5MB
>
>
> The answer is A, 64 Bytes, and -- perhaps surprisingly -- C, 1.5MB.
>
> Why is this the case?
>
> BIP-0054 uses the term 64-byte transaction, but defines it as follows:
>
> > Transactions whose witness-stripped serialized size is exactly 64 bytes are
> invalid.
>
> In a [personally run] straw-poll of devs at a recent conference, no-one knew
> this precise edge condition or that the transactions could have a meaningful
> witness. For clarity, the restriction on bytes is on
> INVALID_TX_NONWITNESS_SIZE, not on the size with Witness.
>
> Therefore, it is more accurate to refer to this in all sentences throughout 
> the
> BIP as:
>
>
> > transactions with exactly 64 bytes of non-witness data,
>
> due to the propensity for confusion.
>
> BIP-0054 also makes a comment that the transactions it invalidates are
> essentially useless:
>
> > 64-byte transactions can only contain a scriptPubKey that lets anyone spend
> the funds, or one that burns them.
>
>
> This is not strictly correct. Here are a few examples of current and future 
> uses
> for 64-byte transactions:
>
> Current Uses:
> - A transaction that donates to a future miner from a segwit (any version)
> output via a spend to something like <512> OP_CSV (-> push2 bytes 512 csv -
> > 0x02 0x00 0x02 0xb2)
> - That same output which is used as a connector output for things that should
> be claimed by a miner at a future time
> - Pay-to-Anchor / ephemeral anchor outputs -- while typically p2a is for txns
> you want to add a subsidy ability, a 64-byte txn could be used to shim a keyed
> anchor to a p2a output after a certain delay.
>
>
> Future Uses:
> - Future work which might use output scripts for e.g. Transaction Sponsor
> encodings
> - Future covenants work which encodes time-of-creation run scripts that e.g.
> quine an input; possibly in conjunction with sponsors
> - Future where we have expensive reusable PQ or Contract public keys that are
> posted once and referred to by index
>
>
> While, in a sense, current uses are much more concerning than future uses,
> with introspection opcodes, it might create substantive additional complexity
> to ensure that there is always a valid way to add a padding byte without
> upsetting a state machine.
>
> As there are now documented use cases for 64-byte transactions that this
> proposal makes more difficult to do, I recommend replacing the text in the BIP
> that says
>
> > 64-byte transactions can only contain a scriptPubKey that lets anyone spend
> the funds, or one that burns them.
>
> With something like:
>
> > There are documented use cases for 64-byte transactions that this proposal
> makes more difficult to cleanly do, but we do not believe these use cases will
> ever be valuable or worth protecting.
>
>
> Or a more accurate reflection of the BIP-0054 authors' opinion.
>
> Jeremy
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Bitcoin Development Mailing List" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected]
> <mailto:[email protected]> .
> To view this discussion visit
> https://groups.google.com/d/msgid/bitcoindev/123e5545-2eda-4eca-9532-
> 4f4cea2b83ecn%40googlegroups.com
> <https://groups.google.com/d/msgid/bitcoindev/123e5545-2eda-4eca-
> 9532-
> 4f4cea2b83ecn%40googlegroups.com?utm_medium=email&utm_source=foo
> ter> .


--
You received this message because you are subscribed to the Google Groups 
"Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/bitcoindev/00a501dcd9b6%2459406560%240bc13020%24%40voskuil.org.

-- 
You received this message because you are subscribed to the Google Groups 
"Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/bitcoindev/MgHn_5awXJ1_23y-bU1gDdEuxICa5pwAthGV4k2H3OHYvpTNLLZvfdXrCUxDvfdOjWAFAgF8KSjyEX2-gB0776yVx8lRI_ztQTO9321HLg4%3D%40protonmail.com.

Reply via email to