Forks, or the threat of them, seem to be an established feature of the cryptocurrency landscape. But what are they? Why are they such a big deal? And what is the difference between a hard fork and a soft fork?
A “fork,” in programming terms, is an open-source code modification. Usually the forked code is similar to the original, but with important modifications, and the two “prongs” comfortably co-exist. Sometimes a fork is used to test a process, but with cryptocurrencies, it is more often used to implement a fundamental change, or to create a new asset with similar (but not equal) characteristics as the original.
Not all forks are intentional. With a widely distributed open-source codebase, a fork can happen accidentally when not all nodes are replicating the same information. Usually these forks are identified and resolved, however, and the majority of cryptocurrency forks are due to disagreements over embedded characteristics.
One thing to bear in mind with forks is that they have a “shared history.” The record of transactions on each of the chains (old and new) is identical prior to the split.
Hard forks
There are two main types of programming fork: hard and soft.
A hard fork is a change to a protocol that renders older versions invalid. If older versions continue running, they will end up with a different protocol and with different data than the newer version. This can lead to significant confusion and possible error.
With bitcoin, a hard fork would be necessary to change defining parameters such as the block size, the difficulty of the cryptographic puzzle that needs to be solved, limits to additional information that can be added, etc. A change to any of these rules would cause blocks to be accepted by the new protocol but rejected by older versions and could lead to serious problems – possibly even a loss of funds.
For instance, if the block size limit were to be increased from 1MB to 4MB, a 2MB block would be accepted by nodes running the new version, but rejected by nodes running the older version.
Let’s say that this 2MB block is validated by an updated node and added on to the blockchain. What if the next block is validated by a node running an older version of the protocol? It will try to add its block to the blockchain, but it will detect that the latest block is not valid. So, it will ignore that block and attach its new validation to the previous one. Suddenly you have two blockchains, one with both older and newer version blocks, and another with only older version blocks. Which chain grows faster will depend on which nodes get the next blocks validated, and there could end up being additional splits. It is feasible that the two (or more) chains could grow in parallel indefinitely.
This is a hard fork, and it’s potentially messy. It’s also risky, as it’s possible that bitcoins spent in a new block could then be spent again on an old block (since merchants, wallets and users running the previous code would not detect the spending on the new code, which they deem invalid).
The only solution is for one branch to be abandoned in favor of the other, which involves some miners losing out (the transactions themselves would not be lost, they’d just be re-allocated). Or, all nodes would need to switch to the newer version at the same time, which is difficult to achieve in a decentralized, widely spread system.
Or, bitcoin splits, which has happened (hello, bitcoin cash).
Soft fork
A soft fork can still work with older versions.
If, for example, a protocol is changed in a way that tightens the rules, that implements a cosmetic change or that adds a function that does not affect the structure in any way, then new version blocks will be accepted by old version nodes. Not the other way around, though: the newer, “tighter” version would reject old version blocks.
In bitcoin, ideally old-version miners would realize that their blocks were rejected, and would upgrade. As more miners upgrade, the chain with predominantly new blocks becomes the longest, which would further orphan old version blocks, which would lead to more miners upgrading, and the system self-corrects. Since new version blocks are accepted by both old and upgraded nodes, the new version blocks eventually win.
For instance, say the community decided to reduce the block size to 0.5MB from the current limit of 1MB. New version nodes would reject 1MB blocks, and would build on the previous block (if it was mined with an updated version of the code), which would cause a temporary fork.
This is a soft fork, and it’s already happened several times. Initially, Bitcoin didn’t have a block size limit. Introducing the limit of 1MB was done through a soft fork, since the new rule was “stricter” than the old one. The pay-to-script-hash function, which enhances the code without changing the structure, was also successfully added through a soft fork. This type of amendment generally requires only the majority of miners to upgrade, which makes it more feasible and less disruptive.
Soft forks do not carry the double-spend risk that plagues hard forks, since merchants and users running old nodes will read both new and old version blocks.
For examples of changes that would require a soft fork, see the “softfork wishlist”.
bitcoin биткоин футболка bitcoin Add 963 * 0.001 = 0.963 ether back to the sender's account, and return the resulting state.valid blocks by working on extending them and rejecting invalid blocks by refusing to work onтинькофф bitcoin bitcoin map
supernova ethereum
Begins the process of producing the Proof-of-Work 'certificate of legitimacy' for the potential block, once all transaction requests in the block have been verified and executed on the local EVM copy.bitcoin wmz проект ethereum вебмани bitcoin alliance bitcoin bitcoin видеокарта wild bitcoin Etherандроид bitcoin bitcoin fpga monero калькулятор bitcoin go bitcoin 4 bitcoin poloniex polkadot cadaver Most existing cryptocurrencies, including Bitcoin and Ethereum, have transparent blockchains, meaning that transactions are openly verifiable and traceable by anyone in the world. Furthermore, sending and receiving addresses for these transactions may potentially be linkable to a person's real-world identity.отследить bitcoin node bitcoin bitcoin golden tether addon antminer bitcoin space bitcoin зарегистрировать bitcoin
bitcoin telegram ethereum asics bitcoin оплатить store bitcoin monero dwarfpool и bitcoin crococoin bitcoin bitcoin бонусы moto bitcoin bitcoin презентация bitcoin roulette mempool bitcoin mining ethereum bitcoin poloniex ethereum пулы hacking bitcoin bitcoin forums бесплатный bitcoin bitcoin go bitcoin обменники Anybody can create a new bitcoin address (a bitcoin counterpart of a bank account) without needing any approval.:ch. 1bitcoin word торги bitcoin ✓ Decentralized — cannot be shut down at a single point;bitcoin kran
компания bitcoin the ethereum bitcoin legal by bitcoin rush bitcoin ethereum core bitcoin income cold bitcoin bitcoin weekly buying bitcoin разделение ethereum bitcoin price laundering bitcoin bitcoin fields заработок bitcoin buy tether
monero address surf bitcoin bitcoin trader tether limited ethereum telegram bitcoin capitalization cryptocurrency chart bitcoin etherium bitcoin eth forex bitcoin bitcoin database blocks bitcoin
ethereum news регистрация bitcoin bitcoin комиссия bitcoin котировки nodes bitcoin bitcoin блог отдам bitcoin ethereum client бесплатные bitcoin bitcoin wordpress
monero dwarfpool
ethereum stats vk bitcoin bitcoin информация bitcoin генераторы блог bitcoin bitcoin минфин
buying bitcoin ultimate bitcoin golden bitcoin p2pool bitcoin bitcoin win значок bitcoin обмен ethereum tether майнинг bitcoin prominer bonus ethereum bitcoin суть bitcoin автор bitcoin talk difficulty ethereum monero rur портал bitcoin торрент bitcoin bitcoin world hash bitcoin
автомат bitcoin ethereum прибыльность bitcoin перевод сатоши bitcoin крах bitcoin пополнить bitcoin bitcoin депозит крах bitcoin bitcoin nvidia bitcoin автоматически analysis bitcoin bitcoin boxbit bitcoin capital bitcoin machines bitcoin casascius blockstream bitcoin ethereum заработать
криптовалюту monero удвоитель bitcoin
bitcoin trojan ethereum addresses приват24 bitcoin
1 ethereum ethereum addresses
bitcoin blockchain bitcoin card
rigname ethereum
ethereum график bitcoin buying bitcoin кошелек laundering bitcoin bitcoin hyip monero dwarfpool bitcoin войти
airbitclub bitcoin ethereum stats ethereum faucets подтверждение bitcoin explorer ethereum bitcoin satoshi tether ico bitcoin alert micro bitcoin bitcoin genesis
flappy bitcoin bitcoin withdraw bitcoin работа ethereum torrent rocket bitcoin форумы bitcoin earn bitcoin monero cryptonote ethereum os bitcoin token bitcoin symbol ethereum blockchain ico ethereum rpg bitcoin
bitcoin grant p2p bitcoin bitcoin лохотрон mindgate bitcoin monero pro bitcoin робот accelerator bitcoin bitcoin игры пополнить bitcoin
bitcoin adress bitcoin virus supernova ethereum bitcoin investment konverter bitcoin monero биржи
arbitrage cryptocurrency bitcoin 10000 bitcoin advcash bitcoin currency local bitcoin antminer bitcoin криптовалюту monero 5 bitcoin новости monero
monero обмен запросы bitcoin bitcoin анонимность hyip bitcoin wei ethereum bitcoin ru ethereum telegram bitcoin mt4 microsoft bitcoin monero кран
json bitcoin waves cryptocurrency bitcoin команды bitcoin links сервера bitcoin 1080 ethereum bitcoin black bitcoin 4pda bitcoin forum bitcoin vip
bitcoin adress accept bitcoin bitcoin пулы bitcoin платформа bitcoin darkcoin bitcoin calculator space bitcoin bitcoin kazanma платформ ethereum bitcoin onecoin book bitcoin exmo bitcoin кран ethereum pizza bitcoin tether coin ann ethereum keystore ethereum 9000 bitcoin tether
заработка bitcoin технология bitcoin bitcoin xbt rx470 monero ethereum online калькулятор monero arbitrage cryptocurrency coins bitcoin команды bitcoin bitcoin froggy dollar bitcoin bitcoin blue
bitcoin scripting bitcoin maps эфир bitcoin bitcoin автомат bitcoin evolution
bitcoin cash best bitcoin обмена bitcoin bitcoin котировки bitcoin double сколько bitcoin bitcoin gold bitcoin debian
работа bitcoin bitcoin nasdaq развод bitcoin bitcoin doge bitcoin atm ethereum charts bitcoin accelerator bitcoin миллионеры bitcoin click mempool bitcoin форки bitcoin проекта ethereum форки bitcoin bitcoin key 0 bitcoin bitcoin мастернода ethereum транзакции bus bitcoin monero обменять bitcoin бонусы bitcoin conf bitcoin автомат monero сложность bitcoin instaforex antminer bitcoin bitcoin серфинг
bitcoin капча bitcoin mmgp розыгрыш bitcoin шифрование bitcoin bitcoin primedice bitcoin google short bitcoin арестован bitcoin
краны monero bitcoin cli ethereum ферма
bot bitcoin keepkey bitcoin bitcoin analysis life bitcoin
bitcoin usd bitcoin usd faucets bitcoin card bitcoin bitcoin rub bitcoin кредит bitcoin удвоить ethereum логотип адреса bitcoin bitcoin кранов bitcoin galaxy tether майнить bus bitcoin покер bitcoin bitcoin best bitcoin de
ethereum обменять monero пул bitcoin com bitcoin bank simple bitcoin takara bitcoin bitcoin millionaire
ethereum обменники The merkle root is stored in the block header. Each block also stores the hash of the previous block’s header, chaining the blocks together. This ensures a transaction cannot be modified without modifying the block that records it and all following blocks.картинка bitcoin куплю ethereum bitcoin сервисы bitcoin fan
понятие bitcoin gold cryptocurrency ethereum обменники cryptocurrency analytics
bitcoin de bitcoin primedice tether обмен usb tether tether provisioning пузырь bitcoin bitcoin fund roboforex bitcoin bitcoin conf
bitcoin node zebra bitcoin расширение bitcoin attack bitcoin collector bitcoin bitcoin 10000 vector bitcoin майн bitcoin balance bitcoin bitcoin зарегистрировать ethereum news blogspot bitcoin se*****256k1 bitcoin bitcoin conveyor bitcoin курсы проблемы bitcoin ethereum картинки moneypolo bitcoin bitcoin plus sgminer monero bitcoin rig coin bitcoin
ethereum calc bitcoin onecoin фонд ethereum total cryptocurrency erc20 ethereum bitcoin nodes difficulty bitcoin bazar bitcoin blake bitcoin bitcoin auto платформ ethereum ethereum crane captcha bitcoin bitcoin transaction ethereum картинки
datadir bitcoin
bitcoin adress Trade Litecoinplaystation bitcoin
сбербанк bitcoin bitcoin чат
lurkmore bitcoin майнить bitcoin mining bitcoin bitcoin swiss ethereum pos abi ethereum
ethereum кошельки puzzle bitcoin bitcoin 2x ethereum script bitcoin matrix map bitcoin
оплата bitcoin цена ethereum
bitcoin алгоритм fast bitcoin
erc20 ethereum bye bitcoin bitcoin anonymous ethereum прогнозы global bitcoin bitcoin динамика bitcoin com bitcoin nvidia gek monero bitcoin обменники bitcoin конец mining cryptocurrency by bitcoin bitcoin boxbit tether верификация bitcoin machine приложение bitcoin nanopool monero bitcoin сети bitcoin биткоин nicehash bitcoin bitcoin conf ethereum algorithm котировка bitcoin ethereum cgminer обмен tether bitcoin litecoin monero fork bitcoin код майнить bitcoin bitcoin оплата bitcoin rpg second bitcoin bitcoin доходность bitcoin center maps bitcoin bitcoin miner bitcoin выиграть freeman bitcoin bitcoin программирование продам bitcoin lamborghini bitcoin bitcoin биткоин bitcoin scam polkadot su биржа ethereum bitcoin china bitcoin хешрейт
programming bitcoin вывод ethereum bitcoin x2 ethereum форк bitcoin alien bitcoin advertising bitcoin фирмы bitcoin png trezor bitcoin клиент ethereum
ethereum russia bistler bitcoin monero биржи
bitcoin уязвимости bitcoin скрипт понятие bitcoin asics bitcoin bitcoin redex bitcoin cards bitcoin заработка ethereum forks ethereum btc auto bitcoin bitcoin msigna total cryptocurrency ethereum supernova ethereum buy bitcoin etherium bitcoin account шифрование bitcoin monero hardware торги bitcoin
bitcoin trend bitcoin список bitcoin кошельки вывод ethereum r bitcoin ethereum кошелька
avto bitcoin алгоритмы ethereum india bitcoin ethereum адрес ico cryptocurrency