Author

Topic: [Discussion] One Miner Two Forks (Read 209 times)

member
Activity: 350
Merit: 47
July 15, 2018, 05:00:53 AM
#3
As much as i want to understand all these, i just can't comprehend with the terms. Maybe i should go back to the basics and read about blockchains, then i'd go back here. I feel like this thread has the answers to my questions but ahkkk. Nvm. Nice topic btw.
full member
Activity: 434
Merit: 246
July 11, 2018, 05:43:36 AM
#2
I'm not sure that this is the right section for your post. Anyhow:

  • An example is a soft fork that restricts the block size limit from 1MB to 500kB. Even though a 1MB block was previously considered valid, full nodes that upgrade to support this soft fork will reject any blocks larger than 500kB after the soft fork activates.
The above is a good example to illustrate the concept of forks and can help distinguish between a soft and hard fork. To quote Andreas Antonopoulos:
Quote
One aspect of soft forks that is not immediately obvious is that soft fork upgrades can only be used to constrain the consensus rules, not to expand them. In order to be forward compatible, transactions and blocks created under the new rules must be valid under the old rules too, but not vice versa. The new rules can only limit what is valid; otherwise, they will trigger a hard fork when rejected under the old rules.

Source: https://github.com/bitcoinbook/bitcoinbook
So, in your example, blocks of 500 kB restrict the rules and will still be valid under the old rules. Blocks of 500 kB will be still accepted by miners that didn't upgrade their software to the new rules.
But if the new rules were to expand the block size limit from 1 MB to 2MB, it wouldn't be a soft fork any more because the large blocks would be rejected under the old rules.
full member
Activity: 680
Merit: 173
Giggity
July 11, 2018, 02:11:49 AM
#1
First of all let me start with one sentence, one sentence (badum tsssss....) did you get it? start with one sentence so I start with it?......
Okay so this is just a quick summary on what is Soft Fork and What is Hard Fork? I hope you like it






[1] WHAT IS FORKS
  • The blockchain – the technology underlying Bitcoin – is a distributed ledger made up of “blocks” of data that is continuously growing, forming a single chain of blocks (hence block-chain). Since Bitcoin is a decentralized network, participants in the network need to agree on a common set of rules to validate the transactions, in order to achieve consensus. This, therefore, results in a single chain of verified data that everyone agrees is correct, or a single truth.
  • A byproduct of distributed consensus, forks happen anytime two miners find a block at nearly the same time. The ambiguity is resolved when subsequent blocks are added to one, making it the longest chain, while the other block gets "orphaned" (or abandoned) by the network.
  • Forking implies any divergence in Blockchain- temporary or permanent. Very simply, forking is said to happen when a Blockchain splits into two branches. It can happen as a result of a change in the consensus algorithm or other software changes. Depending on the nature of change, the fork can be categorized into Hard Fork and Soft Fork.


[2] CAUSES

A Split in Consensus
As Bitcoin is a distributed and decentralized network, a fork occurs when miners discover a block at the same time, resulting in two split chains. However, this is a temporary fork as the chain that finds the next block first becomes the longest chain and automatically becomes the truth. Therefore, the shorter chain will be abandoned by the network.

A Change in the Underlying Rules of the Protocol
This represents a conscious change of the underlying codes by developers, and are permanent. The reason for changing the codebase can be due to:
  • Adding new features to enhance the network’s functionalities
  • Changing a core rule (such as increasing the block size)
Since the forks occurring in the first category (Split in Consensus) is temporary, the scope of focus (when someone talks about forks) should be in the second category, which is “A Change in the Underlying Rules of the Protocol”. The forks within this category are permanent and require participants within the network to upgrade their Bitcoin software, so as to integrate the new changes into their current software.[/i]


[3] SOFT FORK AND HARD FORK

SOFT FORK
  • A soft fork is a change to the bitcoin protocol that restricts the ruleset enforced by full nodes that upgrade to enforce the soft fork rules. A block that is considered valid before the soft fork activates will be considered invalid by upgraded full nodes if it violates the new soft fork rules after the soft fork activates.
  • An example is a soft fork that restricts the block size limit from 1MB to 500kB. Even though a 1MB block was previously considered valid, full nodes that upgrade to support this soft fork will reject any blocks larger than 500kB after the soft fork activates.
  • New transaction types can often be added as soft forks, requiring only that the participants for e.g. sender and receiver and miners understand the new transaction type. This is done 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 this transaction unless the transaction validates under the new rules. This is how to pay to script hash (P2SH) was added to Bitcoin.


HARD FORK
  • A hard fork is a change to the bitcoin protocol that loosens the ruleset enforced by full nodes that upgrade to enforce the hard fork rules. A block that is considered invalid before the hard fork activates will be considered valid by upgraded full nodes if it follows the new hard fork rules after the hard fork has activated.
  • An example is a hard fork that increases the block size limit from 1MB to 2MB. Even though a 2MB block was previously considered invalid, full nodes that upgrade to support this hard fork will accept any blocks up to 2MB in size after the hard fork has activated.
  • A hard fork is a radical change to the protocol that makes previously valid blocks or transactions invalid. Any transaction on the forked (newer) chain will not be valid on the older chain. All nodes and miners will have to upgrade to the latest version of the protocol software if they wish to be on the new forked chain. This essentially creates a fork in the Blockchain, one path which follows the new, upgraded Blockchain, and one path which continues along the old path.

[4] DIFFERENCE
Hard fork is a consensus rule change that every node/miner must agree to enforce. If I don't update to use the new consensus rules, then any new blocks generated would be rejected by my node.
Soft fork is a consensus rule change implemented in such a way that older nodes will not 'see' the new rule and will continue to process as normal when new blocks are generated (albeit with lessened security since it can't validate the new rule changes itself).


And they live happily ever after

SOURCES:
Source 1
Source 2
Source 3
Source 4
Source 5
Source 6
Source 7
Jump to: