<p>I found the best <strong>exact</strong> definition in the First three paragraphs here: <a href="https://gist.github.com/gavinandresen/2355445">gavinandresen / BitcoinVersioning</a></p>

<blockquote>
  <p>We recently rolled out two changes to the Bitcoin block acceptance
  rules (BIP16 and BIP30); this document records the lessons learned and
  makes recommendations for handling future blockchain rule changes.</p>
  
  <p>Note: there are "soft" rule changes and "hard" rule changes. "Soft"
  changes tighten up the rules-- old software will accept all the blocks
  and transactions created by new software, but the opposite may not be
  true. "Soft" changes do not require the entire network of miners and
  merchants and users to upgrade or be left behind.</p>
  
  <p>"Hard" changes modify the rules in a way that old, un-upgraded
  software consider illegal. At this point it is much, much more
  difficult (some might say impossible) to roll out "hard" changes,
  because they require every miner and merchant and user to upgrade.</p>
</blockquote>

CC BY-SA 3.0
2015-04-24T17:15:46.143Z
2015-04-24T17:29:34.717Z
2015-04-24T17:29:34.717Z
honzajde
<p><strong>Softforks are forwards-compatible</strong></p>

<p>Old nodes will accept blocks created by new nodes.</p>

<p>With a softfork, only miners will have to upgrade, or else they will end up on the losing fork. Users and merchants can keep running older nodes, which will accept the newer blocks.</p>

<p><strong>Hardforks are not forwards-compatible</strong></p>

<p>Old nodes may not accept blocks created by new nodes.</p>

<p>With a hardfork, everyone (miners, users, and merchants) will need to upgrade to the new code.</p>

CC BY-SA 4.0
2018-08-15T19:38:46.693Z
Currently miners do always mine both ty-types(segwit and non-segwit) right? Is this intended to continue to be like that forever or will miners at some point stop lets say mining non-segwit txs? Because if they stop at some point, non-segwit funds are in danger.
Ini
CC BY-SA 3.0
2015-08-18T23:43:18.913Z
2015-08-18T23:43:18.913Z
Charlie Lee
<p>To quote Andreas Antonopulous:</p>

<p>you run a vegetarian only restaurant and if you change it to be an only-vegan restaurant then you are soft forking it, if you change it to include meat you are hard forking it</p>

<p><a href="https://www.youtube.com/watch?v=rpeceXY1QBM" rel="noreferrer">https://www.youtube.com/watch?v=rpeceXY1QBM</a> </p>

CC BY-SA 3.0
2017-10-26T15:58:31.900Z
2017-10-26T15:58:31.900Z
Gianluca Ghettini
<p>On a fork new nodes are introduced into the network, creating a 'dirty' network. I like to imagine green(old) and red(new) nodes maintaining a single blockchain at the launch time. </p>

<p>In a soft fork:</p>

<ul>
<li>If a new red block is mined it is accepted by all nodes, the network bchain grows normally.</li>
<li>If an old green block is mined it is rejected by the new nodes, creating a do-or-die chain split. Unlike a normal chain split the new nodes will never accept the version with the old block.</li>
</ul>

<p>As with each chain split the miners decide where they put their hashes. Since the hash difficulty doesn't change immediately the chain backed with most hashpower will grow the fastest.
If the 'redblock' chain has enough mining support they win the race and old nodes adopt their chain, and the process repeats every time an old block gets mined.</p>

<p>Eventually one of the following happens:</p>

<ul>
<li>green blocks are no longer mined and the chain continues red. The fork was a successful upgrade.</li>
<li>two different chains stabilize, the green-red chain has become too long to be rejected by a longer all-red one. </li>
</ul>

<p>In the case of the latter, brand confusion may ensue, two chains means one is an altcoin. When this happens good quality wallet software should be able to make transactions on one particular chain. Each user, exchange and wallet maker will decide on which chain gets the original brand name (if any), typically this is related to philosophical or political choices. E.g. the chain with the most nodes and users vs. the chain with the most hashpower.  </p>

<p>If the original brand is agreed (~consensus) to be the red chain it is expected much of the hold-out hashpower will migrate to that chain, as the market value is strongly correlated to the name and not the underlying technology. The altcoin technology would have to be <em>significantly</em> better to avoid this brand-drain. When a fork does not include replay protection it promotes confusion and prevents separating transactions; this is seen as a hostile brand-takeover attempt.</p>

<p>The backwards-compatible nature of soft forks means they can <strong>succeed on hashpower alone</strong>. A single node producing enough blocks (51%) can dominate an older network. To avoid hash-domination the older network must separate. This can be done by introducing an unpatchable incompatibility (i.e. a new software version) turning the SF into a hardfork.
Note that the opposite does not follow: just because a SF with enough hashpower is guaranteed success, it doesn't mean a SF with little hashpower is doomed to fail. This is the theory behind the user activated soft fork (UASF) concept. The success of the UASF theory merely depends on:</p>

<ol>
<li>a minimum threshold of miners to keep the transactions reasonably usable until the difficulty adjusts.</li>
<li>the original brand being transferred based on the (perceived) 'user support'.</li>
</ol>

CC BY-SA 3.0
2017-10-26T09:22:03.013Z
2017-10-26T09:22:03.013Z
jiggunjer
<h2>What is a Project Fork?</h2>

<p>A <a href="http://en.wikipedia.org/wiki/Fork_%28software_development%29" rel="noreferrer"><em>fork</em></a> in software development refers to the event of an independent project spinning off from a software project. Such forks sometimes occur in the opensource sphere, when there are irreconcilable plans/goals within a project's community, then <a href="http://en.wikipedia.org/wiki/List_of_software_forks" rel="noreferrer">often leading to a split in the community and two distinct projects thereafter</a>.  In practice this takes form in the sourcecode being copied and henceforth being developed in a different direction independently by the forkers. For example in this conventional sense of fork, Litecoin is a fork of Bitcoin: Litecoin started as a copy of Bitcoin's code-base, but developed into an independent project (although still closely related).</p>

<h2>Softfork and Hardfork in Bitcoin terminology</h2>

<p>The terms <em>softfork</em> and <em>hardfork</em> in Bitcoin describe compatibility breaking changes in the Bitcoin protocol: Should the community be irreconcilably divided about such an issue, the old version and the new version of Bitcoin could emerge as distinct projects thereafter. While both versions of the Bitcoin protocol are in use, the differences in acceptance may cause a lasting blockchain-fork, i.e. two distinct longest chains which are both considered valid by part of the network.</p>

<h2>Softforks are <a href="https://en.wikipedia.org/wiki/Forward_compatibility" rel="noreferrer">forward compatible</a></h2>

<p><strong>Softforks restrict block acceptance rules</strong> in comparison to earlier versions.</p>

<p><img src="https://i.sstatic.net/axBEr.png" alt="New valid blocks are a subset of old valid blocks"></p>

<p>The new rules allow a <a href="http://en.wikipedia.org/wiki/Subset" rel="noreferrer">subset</a> of the previous valid blocks, therefore  all blocks considered valid by the newer version are also valid in the old version. If at least 51% of the mining power shifts to the new version, the system self-corrects:<br>
Blocks created by old versions of Bitcoin Core that are invalid under the new paradigm might commence a short-term "old-only blockchain-fork", but eventually, they would be overtaken by the chain fork created under the new paradigm, as the hashing power working on the old paradigm would be smaller ("only old versions") than on the new paradigm ("accepted by all versions").  </p>

<p>However, if less than 51% of the hashing power switches to the new version,  the blockchain-fork will not mend automatically as the chain created under the old rules has more hashing power and is incompatible to the new rules. This can either be remedied by the adopters of the softfork giving up their chain, or more hashing power switching to the softfork chain. The latter would cause the softfork chain to eventually overtake and reorganize the other chaintip.</p>

<h2>Hardforks are not forward compatible</h2>

<p><img src="https://i.sstatic.net/v9Cme.png" alt="Hardforks extend set of valid blocks"></p>

<p><strong>Hardforks ease block acceptance rules</strong> making previously invalid blocks valid in the new version. Obviously, this is not forward compatible as older versions will not accept the new blocks, causing the users of the old paradigm to remain on their own blockchain-fork indefinitely. To implement a hardfork, without a blockchain-fork, all users must switch to the new protocol consensually.</p>

<h2>HF != blockchain-forks</h2>

<p>Lately, I've seen "hardfork" being used interchangeably with "chain split". They refer to different things. <strong>A chain split is the state of the network when mining is based on more than one chaintip at the same time.</strong> This can happen for various reasons, including hardforks, softforks, buggy node software, and simply two miners discovering a block at the same height.</p>

CC BY-SA 3.0
2015-05-27T05:26:35.020Z
Would be great if "fork" was defined. This question and answer seems to be about "software forks", which are completely different than "blockchain forks", correct?  I was under the impression blockchain forks happen on the daily, whenever two miners mine blocks nearly-simultaneously. http://bitcoin.stackexchange.com/questions/3343/what-is-the-longest-blockchain-fork-that-has-been-orphaned-to-date
Alex Millar
CC BY-SA 3.0
2015-05-27T06:53:51.207Z
@AlexMillar: Great point, I hadn't even thought about needing to define that. :)
Murch
CC BY-SA 3.0
2015-08-18T23:18:29.370Z
Great answer. One thing I'm still confused on: if a soft fork can actually become a hard fork if it doesn't get 51% of hashing power, as you state - then what actually is a soft fork? It seems like there is no such thing as a soft fork and everything is a hard fork. What am I missing?
Brian Armstrong
CC BY-SA 3.0
2015-08-19T09:27:11.943Z
@BrianArmstrong: Successful soft forks auto correct: users that still run the old version are still on the valid chain. Just when the soft fork fails, it *behaves* like a hard fork: the ones running the new version are on a shorter chain,  but can't process the longer chain unless they switch to the old version.
Murch
CC BY-SA 3.0
2017-06-16T15:18:33.537Z
What I meant there when I wrote this two years ago was that a soft fork with minority hash support would lead to a persistent chain split. However, it can still self-mend if more hashrate converges on the soft fork chain. It is still distinctly different from a hard fork as the software is forwards compatible.
Murch
CC BY-SA 3.0
2017-08-07T04:08:56.710Z
Where can I find a list of cryptocurrency that support soft fork?
Anthony Kong
CC BY-SA 3.0
2017-12-05T13:56:45.677Z
In a soft fork the old nodes can accept a tx that is now invalid, and they will split off the main chain, so I don't see why it's much better than a hard fork.
relG
CC BY-SA 3.0
2017-12-05T18:21:37.553Z
@relG: I cover that in my answer. The relevant section is "However, if less than 51% of the hashing power switches to the new version, the blockchain-fork will not mend automatically as the chain created under the old rules has more hashing power and is incompatible to the new rules." If more than 50% of the hashrate *does* switch to the new rules, all nods will converge on the new rules, though.
Murch
CC BY-SA 3.0
2017-08-13T17:46:10.097Z
why only Bitcoin knows the term hard vs. soft fork? I never saw it for other open source projects.
Sybil
CC BY-SA 3.0
2017-08-14T16:25:21.280Z
@FyodorGlebov: Other projects usually don't rely on the whole network running exactly the same protocol rules.
Murch
CC BY-SA 4.0
2018-08-15T19:37:37.000Z
Currently miners do always mine both ty-types(segwit and non-segwit) right? Is this intended to continue to be like that forever or will miners at some point stop lets say mining non-segwit txs? Because if they stop at some point, non-segwit funds are in danger.
Ini
CC BY-SA 4.0
2018-08-16T09:16:41.803Z
@Invader: Most funds are still stored in non-segwit UTXOs. Hopefully, this will slowly diminish. However, even if a few miners may eventually stop to mine non-segwit transactions, others could continue to do so. It would then merely take longer for non-segwit transactions to be included. As long as non-segwit transactions pay competitive fee rates, miners have an economic incentive to include them.
Murch
CC BY-SA 4.0
2018-08-18T17:26:15.733Z
@Much: My question was the result of lack of knowledge. It may sounded a little bit confusing...
Ini
CC BY-SA 3.0
2014-10-04T09:41:09.853Z
2017-07-18T20:13:32.467Z
2017-07-18T20:13:32.467Z
Murch
<p>When people talk about possible changes to how Bitcoin works they sometimes say a particular change can be implemented as a soft fork. What does that mean? How does this compare to a hard fork?</p>

CC BY-SA 3.0
2014-10-04T09:42:47.793Z
related: [What is a hard fork?](http://bitcoin.stackexchange.com/q/9173/5406)
Murch
<blockchain-fork><terminology>
What is a soft fork? What is a hard fork? What are their differences?
Dr.Haribo
# What is a soft fork? What is a hard fork? What are their differences?

(Asked by: username_0 on 2014-10-04)

When people talk about possible changes to how Bitcoin works they sometimes say a particular change can be implemented as a soft fork. What does that mean? How does this compare to a hard fork?

**Tags:** blockchain-fork, terminology

> **Comments:**
> **username_1**: related: [What is a hard fork?](http://bitcoin.stackexchange.com/q/9173/5406)  

---

## 5 answers

### Answer by username_1 on 2014-10-04. Score: 66 | Accepted answer

## What is a Project Fork?

A [*fork*](http://en.wikipedia.org/wiki/Fork_%28software_development%29) in software development refers to the event of an independent project spinning off from a software project. Such forks sometimes occur in the opensource sphere, when there are irreconcilable plans/goals within a project's community, then [often leading to a split in the community and two distinct projects thereafter](http://en.wikipedia.org/wiki/List_of_software_forks). In practice this takes form in the sourcecode being copied and henceforth being developed in a different direction independently by the forkers. For example in this conventional sense of fork, Litecoin is a fork of Bitcoin: Litecoin started as a copy of Bitcoin's code-base, but developed into an independent project (although still closely related).

## Softfork and Hardfork in Bitcoin terminology

The terms *softfork* and *hardfork* in Bitcoin describe compatibility breaking changes in the Bitcoin protocol: Should the community be irreconcilably divided about such an issue, the old version and the new version of Bitcoin could emerge as distinct projects thereafter. While both versions of the Bitcoin protocol are in use, the differences in acceptance may cause a lasting blockchain-fork, i.e. two distinct longest chains which are both considered valid by part of the network.

## Softforks are [forward compatible](https://en.wikipedia.org/wiki/Forward_compatibility)

**Softforks restrict block acceptance rules** in comparison to earlier versions.

![New valid blocks are a subset of old valid blocks](https://i.sstatic.net/axBEr.png)

The new rules allow a [subset](http://en.wikipedia.org/wiki/Subset) of the previous valid blocks, therefore all blocks considered valid by the newer version are also valid in the old version. If at least 51% of the mining power shifts to the new version, the system self-corrects:  
Blocks created by old versions of Bitcoin Core that are invalid under the new paradigm might commence a short-term "old-only blockchain-fork", but eventually, they would be overtaken by the chain fork created under the new paradigm, as the hashing power working on the old paradigm would be smaller ("only old versions") than on the new paradigm ("accepted by all versions").

However, if less than 51% of the hashing power switches to the new version, the blockchain-fork will not mend automatically as the chain created under the old rules has more hashing power and is incompatible to the new rules. This can either be remedied by the adopters of the softfork giving up their chain, or more hashing power switching to the softfork chain. The latter would cause the softfork chain to eventually overtake and reorganize the other chaintip.

## Hardforks are not forward compatible

![Hardforks extend set of valid blocks](https://i.sstatic.net/v9Cme.png)

**Hardforks ease block acceptance rules** making previously invalid blocks valid in the new version. Obviously, this is not forward compatible as older versions will not accept the new blocks, causing the users of the old paradigm to remain on their own blockchain-fork indefinitely. To implement a hardfork, without a blockchain-fork, all users must switch to the new protocol consensually.

## HF != blockchain-forks

Lately, I've seen "hardfork" being used interchangeably with "chain split". They refer to different things. **A chain split is the state of the network when mining is based on more than one chaintip at the same time.** This can happen for various reasons, including hardforks, softforks, buggy node software, and simply two miners discovering a block at the same height.

> **Comments:**
> **username_7**: Would be great if "fork" was defined. This question and answer seems to be about "software forks", which are completely different than "blockchain forks", correct?  I was under the impression blockchain forks happen on the daily, whenever two miners mine blocks nearly-simultaneously. http://bitcoin.stackexchange.com/questions/3343/what-is-the-longest-blockchain-fork-that-has-been-orphaned-to-date  
> **username_1**: @username_7: Great point, I hadn't even thought about needing to define that. :)  
> **username_8**: Great answer. One thing I'm still confused on: if a soft fork can actually become a hard fork if it doesn't get 51% of hashing power, as you state - then what actually is a soft fork? It seems like there is no such thing as a soft fork and everything is a hard fork. What am I missing?  
> **username_1**: @username_8: Successful soft forks auto correct: users that still run the old version are still on the valid chain. Just when the soft fork fails, it *behaves* like a hard fork: the ones running the new version are on a shorter chain,  but can't process the longer chain unless they switch to the old version.  
> **username_1**: What I meant there when I wrote this two years ago was that a soft fork with minority hash support would lead to a persistent chain split. However, it can still self-mend if more hashrate converges on the soft fork chain. It is still distinctly different from a hard fork as the software is forwards compatible.  
> **username_9**: Where can I find a list of cryptocurrency that support soft fork?  
> **username_11**: why only Bitcoin knows the term hard vs. soft fork? I never saw it for other open source projects.  
> **username_1**: @FyodorGlebov: Other projects usually don't rely on the whole network running exactly the same protocol rules.  
> **username_10**: In a soft fork the old nodes can accept a tx that is now invalid, and they will split off the main chain, so I don't see why it's much better than a hard fork.  
> **username_1**: @username_10: I cover that in my answer. The relevant section is "However, if less than 51% of the hashing power switches to the new version, the blockchain-fork will not mend automatically as the chain created under the old rules has more hashing power and is incompatible to the new rules." If more than 50% of the hashrate *does* switch to the new rules, all nods will converge on the new rules, though.  
> **username_4**: Currently miners do always mine both ty-types(segwit and non-segwit) right? Is this intended to continue to be like that forever or will miners at some point stop lets say mining non-segwit txs? Because if they stop at some point, non-segwit funds are in danger.  
> **username_1**: @Invader: Most funds are still stored in non-segwit UTXOs. Hopefully, this will slowly diminish. However, even if a few miners may eventually stop to mine non-segwit transactions, others could continue to do so. It would then merely take longer for non-segwit transactions to be included. As long as non-segwit transactions pay competitive fee rates, miners have an economic incentive to include them.  
> **username_4**: @Much: My question was the result of lack of knowledge. It may sounded a little bit confusing...  

---

### Answer by username_3 on 2015-08-18. Score: 32

**Softforks are forwards-compatible**

Old nodes will accept blocks created by new nodes.

With a softfork, only miners will have to upgrade, or else they will end up on the losing fork. Users and merchants can keep running older nodes, which will accept the newer blocks.

**Hardforks are not forwards-compatible**

Old nodes may not accept blocks created by new nodes.

With a hardfork, everyone (miners, users, and merchants) will need to upgrade to the new code.

> **Comments:**
> **username_4**: Currently miners do always mine both ty-types(segwit and non-segwit) right? Is this intended to continue to be like that forever or will miners at some point stop lets say mining non-segwit txs? Because if they stop at some point, non-segwit funds are in danger.  

---

### Answer by username_2 on 2015-04-24. Score: 19

I found the best **exact** definition in the First three paragraphs here: [gavinandresen / BitcoinVersioning](https://gist.github.com/gavinandresen/2355445)

> We recently rolled out two changes to the Bitcoin block acceptance
> rules (BIP16 and BIP30); this document records the lessons learned and
> makes recommendations for handling future blockchain rule changes.
>
> Note: there are "soft" rule changes and "hard" rule changes. "Soft"
> changes tighten up the rules-- old software will accept all the blocks
> and transactions created by new software, but the opposite may not be
> true. "Soft" changes do not require the entire network of miners and
> merchants and users to upgrade or be left behind.
>
> "Hard" changes modify the rules in a way that old, un-upgraded
> software consider illegal. At this point it is much, much more
> difficult (some might say impossible) to roll out "hard" changes,
> because they require every miner and merchant and user to upgrade.


---

### Answer by username_5 on 2017-10-26. Score: 5

To quote Andreas Antonopulous:

you run a vegetarian only restaurant and if you change it to be an only-vegan restaurant then you are soft forking it, if you change it to include meat you are hard forking it

<https://www.youtube.com/watch?v=rpeceXY1QBM>


---

### Answer by username_6 on 2017-10-26. Score: 0

On a fork new nodes are introduced into the network, creating a 'dirty' network. I like to imagine green(old) and red(new) nodes maintaining a single blockchain at the launch time.

In a soft fork:

* If a new red block is mined it is accepted by all nodes, the network bchain grows normally.
* If an old green block is mined it is rejected by the new nodes, creating a do-or-die chain split. Unlike a normal chain split the new nodes will never accept the version with the old block.

As with each chain split the miners decide where they put their hashes. Since the hash difficulty doesn't change immediately the chain backed with most hashpower will grow the fastest.
If the 'redblock' chain has enough mining support they win the race and old nodes adopt their chain, and the process repeats every time an old block gets mined.

Eventually one of the following happens:

* green blocks are no longer mined and the chain continues red. The fork was a successful upgrade.
* two different chains stabilize, the green-red chain has become too long to be rejected by a longer all-red one.

In the case of the latter, brand confusion may ensue, two chains means one is an altcoin. When this happens good quality wallet software should be able to make transactions on one particular chain. Each user, exchange and wallet maker will decide on which chain gets the original brand name (if any), typically this is related to philosophical or political choices. E.g. the chain with the most nodes and users vs. the chain with the most hashpower.

If the original brand is agreed (~consensus) to be the red chain it is expected much of the hold-out hashpower will migrate to that chain, as the market value is strongly correlated to the name and not the underlying technology. The altcoin technology would have to be *significantly* better to avoid this brand-drain. When a fork does not include replay protection it promotes confusion and prevents separating transactions; this is seen as a hostile brand-takeover attempt.

The backwards-compatible nature of soft forks means they can **succeed on hashpower alone**. A single node producing enough blocks (51%) can dominate an older network. To avoid hash-domination the older network must separate. This can be done by introducing an unpatchable incompatibility (i.e. a new software version) turning the SF into a hardfork.
Note that the opposite does not follow: just because a SF with enough hashpower is guaranteed success, it doesn't mean a SF with little hashpower is doomed to fail. This is the theory behind the user activated soft fork (UASF) concept. The success of the UASF theory merely depends on:

1. a minimum threshold of miners to keep the transactions reasonably usable until the difficulty adjusts.
2. the original brand being transferred based on the (perceived) 'user support'.


---

