Difference between revisions of "Hardfork"

From Bitcoin Wiki
Jump to: navigation, search
(Add See Also subsection and move Softfork as an entry into it.)
(another hard fork proposed by newbery)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
A hardfork is a change to the bitcoin protocol that makes previously invalid blocks/transactions valid, and therefore requires all users to 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 changes the block structure (including block hash), difficulty rules, or increases the set of valid transactions is a hardfork.
 
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.
 
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]], and how [[P2SH]] was added to Bitcoin.
+
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 [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.
 +
 
 +
In August 2019, John Newbery proposed another hardfork to bury CSV and segwit activation.[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-August/017268.html]
  
 
==See Also==
 
==See Also==
 
* [[Softfork]]
 
* [[Softfork]]

Latest revision as of 18:35, 19 August 2019

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.

In August 2019, John Newbery proposed another hardfork to bury CSV and segwit activation.[1]

See Also