Difference between revisions of "Hardfork"

From Bitcoin Wiki
Jump to: navigation, search
(Created page with "A Hardfork is a change to the bitcoin protocol that requires all users upgrade. Any alteration to bitcoin which increases the set of valid transactions is a hardfork. Howeve...")
 
(two accidental hardforks)
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
A Hardfork is a change to the bitcoin protocol that requires all users upgrade.
+
A '''hardfork''' is a change to the bitcoin protocol that makes previously invalid blocks/transactions valid, and therefore requires all users to upgrade.
  
Any alteration to bitcoin which increases the set of valid transactions is a hardfork. However, some of these changes can be implemented by having the new transaction appear to older clients as a pay-to-anybody transaction (of a special form), and getting the miners to agree to reject blocks including the pay-to-anybody transaction unless the transaction validates under the new rules. This is how [[P2SH]] was added to Bitcoin.
+
Any alteration to bitcoin which changes the block structure (including block hash), difficulty rules, or increases the set of valid transactions is a hardfork.
 +
However, some of these changes can be implemented by having the new transaction appear to older clients as a pay-to-anybody transaction (of a special form), and getting the miners to agree to reject blocks including the pay-to-anybody transaction unless the transaction validates under the new rules.
 +
This is known as a [[softfork]].
  
See also: [[Softfork]]
+
Bitcoin Core has had two accidental hardforks, and many altcoins have had intended hardforks.
 +
 
 +
The accidental hardforks are:
 +
 
 +
* Due to a BerkeleyDB issue, Bitcoin pre-0.8 hardforked, and there was a chain split. This happened in 2013, before the foundation of Bitcoin Core. The post mortem is in [https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki BIP 0050].
 +
* Bitcoin Core 0.15 accidentally hardforked. See [https://bitcoincore.org/en/2018/09/20/notice/ CVE-2018-17144 full disclosure]. The fix was a softfork deployed in v0.16.3. There was no chain split.
 +
 
 +
==See Also==
 +
* [[Softfork]]

Revision as of 14:22, 21 September 2018

A hardfork is a change to the bitcoin protocol that makes previously invalid blocks/transactions valid, and therefore requires all users to upgrade.

Any alteration to bitcoin which changes the block structure (including block hash), difficulty rules, or increases the set of valid transactions is a hardfork. However, some of these changes can be implemented by having the new transaction appear to older clients as a pay-to-anybody transaction (of a special form), and getting the miners to agree to reject blocks including the pay-to-anybody transaction unless the transaction validates under the new rules. This is known as a softfork.

Bitcoin Core has had two accidental hardforks, and many altcoins have had intended hardforks.

The accidental hardforks are:

  • Due to a BerkeleyDB issue, Bitcoin pre-0.8 hardforked, and there was a chain split. This happened in 2013, before the foundation of Bitcoin Core. The post mortem is in BIP 0050.
  • Bitcoin Core 0.15 accidentally hardforked. See CVE-2018-17144 full disclosure. The fix was a softfork deployed in v0.16.3. There was no chain split.

See Also