Files
2021-CHIPs/CHIP-2021-01-Restrict Transaction Versions.md
T

56 lines
2.3 KiB
Markdown
Raw Normal View History

2021-03-11 13:50:04 +01:00
# CHIP 2021-01 Restrict Transaction Version
2021-01-22 21:59:13 +01:00
2021-03-11 13:50:04 +01:00
## Summary
2021-01-22 21:59:13 +01:00
2021-03-11 13:50:04 +01:00
This proposal forbids transactions to be mined if they lie about their version number.
2021-01-22 21:59:13 +01:00
2021-03-11 13:50:04 +01:00
> Title: Restrict Transaction Version
> Date: 2021-01
> Type: Consensus
> Status: Draft
2021-03-11 15:58:35 +01:00
> Version: 0.3
2021-03-11 13:50:04 +01:00
> Last edit: 2021-03-11
> Owner: Tom Zander
> History: https://gitlab.com/bitcoin.cash/chips
## Motivation and Benefits
2021-01-22 21:59:13 +01:00
The transaction-version field in the transaction object has at this time no consensus rule on its correctness.
The transaction version has mostly been kept unused and the version of an incoming transaction has not had much of an effect on selection of code-paths.
Should in the future we decide to introduce a new transaction format, deciding how to parse in incoming transaction will best be done based on the transaction version. At such a time it then would be required to reject transactions that are advertising the wrong transaction number.
To allow for less complex software during such a transition it will be highly beneficial to ensure correct transaction versioning earlier.
2021-03-11 13:50:04 +01:00
## Impact / Costs and Risks
2021-01-22 21:59:13 +01:00
The new rule does not restrict transactions that currently comply with the standardness rules. As a result the only change would be in full nodes and specifically the block-validation technology.
The impact on the rest of the ecosystem is expected to be zero.
This is a tightening of allowed transactions in a block and therefore can be a soft-fork. Author(s) recommend this to be scheduled for a future protocol upgrade.
2021-03-11 13:50:04 +01:00
## Proposal Description
2021-03-11 15:58:35 +01:00
Transactions choose their version based on capabilties and, in future, on how the transaction is structured. Transactions shall state in the version field the correct version for that choice. At the time of writing this CHIP that limits the allowed version numbers to 1 or 2.
2021-03-11 13:50:04 +01:00
Blocks that have transactions which violate this rule shall be deemed invalid.
2021-01-22 21:59:13 +01:00
# References:
Discussion on [bitcoincashresearch](https://bitcoincashresearch.org/t/restrict-transaction-version-numbers/173)
2021-03-11 13:50:04 +01:00
## Statements
2021-01-22 21:59:13 +01:00
2021-03-11 13:50:04 +01:00
## Copyright Notice
2021-01-22 21:59:13 +01:00
Copyright (C) 2021 Tom Zander
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.