75%/95% threshold for transaction versions [combined summary]



Individual post summaries: Click here to read the original discussion on the bitcoin-dev mailing list

Published on: 2015-04-28T10:17:27+00:00


Summary:

In an email exchange between s7r and Pieter Wuille, the issue of transaction malleability in Bitcoin is discussed. S7r expresses his intention to build a Bitcoin contract that relies on non-malleable transactions through coinjoin, pre-signed transactions with nLockTime, and Pay-to-Script-Hash (P2SH). However, he is confused about who has the ability to alter a txid without invalidating the transaction and whether these three pieces of the Bitcoin protocol will be supported in future transaction or block versions.Pieter responds by asking s7r what problem he is trying to solve, pointing out that BIP62's approach to protecting v1 transactions from malleability would require changing every wallet software if v3 transactions were forced. S7r eventually acknowledges that his suggestion may complicate things and recognizes that there may be a valid reason why BIP62 does not touch v1 transactions.The email conversation also touches on the idea of adding a consensus rule for transaction versions in Bitcoin. The proposed rule would mark previous transaction versions as non-standard or invalid if a certain version appears in at least 75% or 95% of the latest 1000 blocks. Currently, there is no enforcement related to transaction versions in the network. BIP62 introduces a newer optional transaction version but does not deem previous v1 versions as non-standard or invalid. This means that bitcoin core treats both v1 and v2/v3 transactions as standard and relays/mines them with the same priority, regardless of the transaction version.The discussion further explores the possibility of skipping version 2 and directly transitioning to version 3 for transactions and blocks. The provided link leads to a Bitcoin StackExchange post regarding BIP62 and its implementation status. The author of the post proposes adding a consensus rule similar to the one for blocks to transaction versions. This rule would label previous transaction versions as non-standard or invalid if a certain version appears in more than 75% or 95% of transactions in the latest 1000 blocks. Currently, the consensus standard is v1 with no enforcement related to transaction versions. BIP62 requires v2 transactions but does not consider previous v1 transactions as non-standard or invalid. Bitcoin core treats both v1 and v2/v3 transactions as standard and relays/mines them with equal priority, regardless of the transaction version. The author poses the question of whether adding this proposed rule could cause any issues or affect functionality. Additionally, it is mentioned that BIP62 introduces a newer transaction version that directly jumps to v3, bypassing v2.


Updated on: 2023-08-01T12:15:01.226168+00:00