BIP 0034: Difference between revisions
Jump to navigation
Jump to search
→Implementation: remove outdated URL |
→Abstract: do not call it a "nonce" value |
||
Line 12: | Line 12: | ||
==Abstract== | ==Abstract== | ||
Bitcoin blocks and transactions are versioned binary structures. Both currently use version 1. This BIP introduces an upgrade path for versioned transactions and blocks. A unique | Bitcoin blocks and transactions are versioned binary structures. Both currently use version 1. This BIP introduces an upgrade path for versioned transactions and blocks. A unique value is added to newly produced coinbase transactions, and blocks are updated to version 2. | ||
==Motivation== | ==Motivation== |
Revision as of 15:57, 6 July 2012
This page describes a BIP (Bitcoin Improvement Proposal). |
BIP: 34 Title: Block v2, Height in Coinbase Author: Gavin Andresen <gavinandresen@gmail.com> Status: Draft Type: Standards Track Created: 2012-07-06
Abstract
Bitcoin blocks and transactions are versioned binary structures. Both currently use version 1. This BIP introduces an upgrade path for versioned transactions and blocks. A unique value is added to newly produced coinbase transactions, and blocks are updated to version 2.
Motivation
- Clarify and exercise the mechanism whereby the bitcoin network collectively consents to upgrade transaction or block binary structures, rules and behaviors.
- Enforce block and transaction uniqueness, and assist unconnected block validation.
Specification
- Treat transactions with a version greater than 1 as non-standard (official Satoshi client will not mine or relay them).
- Add height as the first item in the coinbase transaction's scriptSig, and increase block version to 2. The format of the height is "serialized CScript" -- first byte is number of bytes in the number (will be 0x03 on main net for the next 300 or so years), following bytes are little-endian representation of the number.
- 75% rule: If 750 of the last 1,000 blocks are version 2 or greater, reject invalid version 2 blocks. (testnet3: 51 of last 100)
- 95% rule ("Point of no return"): If 950 of the last 1,000 blocks are version 2 or greater, reject all version 1 blocks. (testnet3: 75 of last 100)
Backward compatibility
All older clients are compatible with this change. Users and merchants should not be impacted. Miners are strongly recommended to upgrade to version 2 blocks. Once 95% of the miners have upgraded to version 2, the remainder will be orphaned if they fail to upgrade.