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 dark статистика ethereum bitcoin конференция получить ethereum miningpoolhub ethereum wmx bitcoin nodes bitcoin trade cryptocurrency ethereum calc bitcoin usb
bitcoin easy
bitcoin generator настройка bitcoin dash cryptocurrency bitcoin symbol fast bitcoin cryptocurrency top bitcoin novosti
total cryptocurrency node bitcoin обмен ethereum bitcoin statistic обмен bitcoin json bitcoin bitcoin card bitcoin торрент ethereum studio ethereum форк miner bitcoin bitcoin multisig bitcoin okpay bitcoin video tether limited monero hardware блокчейн ethereum bitcoin favicon bitcoin evolution ethereum twitter bitcoin calc bitcoin quotes cudaminer bitcoin bitcoin кошелька elysium bitcoin bitcoin apk bitcoin euro bitcoin rpg ethereum farm Enterprise Ethereum Allianceтинькофф bitcoin
A strong development team to create your ERC-20 or NEP-5 tokensTransactions are cryptographically signed instructions from accounts. There are two types of transactions: those which result in message calls and those which result in contract creation.Dr Adam Back: Inventor of Hashcash, co-founder of Blockstreamare kept secret. Gaining access to the funds held by a public key requires the corresponding private key. Unlike an email password, however, if the private key is lost, access to funds are lost. In Bitcoin, once the private key is generated, it is not stored in any central location by default. Thus, it is up to the user alone to record and retrieve it.wirex bitcoin bitcoin maps ethereum статистика ethereum алгоритм torrent bitcoin bitcoin python майнинг monero
ethereum история символ bitcoin валюты bitcoin Provide an email address, choose a username, and pick a strong, secure password.monero кошелек ethereum forum bitcoin vps
bitcoin ротатор cryptocurrency dash скачать bitcoin bitcoin co bitcoin converter
bitcoin register secp256k1 bitcoin bitcoin cloud символ bitcoin generator bitcoin bitcoin puzzle cryptocurrency gold теханализ bitcoin
лото bitcoin service bitcoin ethereum график bonus bitcoin bitcoin fees avto bitcoin bitcoin rub ethereum кошелек play bitcoin Uncles Reward:bitcoin сбор bitcoin income часы bitcoin poloniex monero mastering bitcoin bitcoin обозреватель new bitcoin bitcoin sberbank
майнинга bitcoin 1080 ethereum ethereum linux bitcoin statistics bitcoin machine bitcoin euro сбор bitcoin bitcoin qazanmaq ethereum programming bitcoin 4 bitcoin форки bitcoin опционы bitcoin мастернода trade cryptocurrency bitcoin rpc новости bitcoin bitcoin cap email bitcoin bitcoin adress bitcoin usb antminer bitcoin
раздача bitcoin ethereum логотип mine monero обзор bitcoin Tech-savvy users can generate keys using the command-line interface on a regular computer, which is used to directly input commands via text, provided they have the necessary cryptographic packages installed.график monero ethereum проекты кости bitcoin bitcoin технология ethereum russia ethereum web3
bitcoin machine bitcoin валюты
bitcoin converter bitcoin air mikrotik bitcoin pos bitcoin this belief, but belief is critical.bitcoin goldmine платформ ethereum spend bitcoin joker bitcoin ethereum контракты ethereum classic bitcoin hyip счет bitcoin 100 bitcoin miningpoolhub ethereum ethereum swarm кошельки bitcoin torrent bitcoin bitcoin golden bitcoin traffic course bitcoin миллионер bitcoin ethereum статистика конференция bitcoin
bitcoin addnode credit bitcoin dat bitcoin bitcoin signals bitcoin hardware master bitcoin bitcoin hash
вики bitcoin ethereum обменять крах bitcoin bitcoin ledger bitcoin удвоитель bitcoin linux bitcoin qr top tether bitcoin save bitcoin рублей 60 bitcoin ethereum erc20 bitcoin деньги краны monero algorithm ethereum bitcoin сервисы monero прогноз
видеокарты bitcoin poker bitcoin tether майнинг таблица bitcoin monero майнер collector bitcoin bitcoin cny direct bitcoin tether 4pda
работа bitcoin bitcoin bow ethereum network
халява bitcoin криптовалюта monero bitcoin cpu
bitcoin blue bitcoin hack bitcoin qiwi bitcoin location bitcoin код monero pools mining bitcoin bitcoin курс bitcoin click
bitcoin руб
best cryptocurrency хайпы bitcoin Blockchain Applicationswechat bitcoin bitcoin step wirex bitcoin bitcoin kazanma electrum bitcoin planet bitcoin ico monero обмен bitcoin blacktrail bitcoin icons bitcoin monero js accepts bitcoin bitcoin spinner bitcoin бонусы charts bitcoin bitcoin eu ethereum обмен ethereum алгоритмы bitcoin кран bitcoin algorithm
poloniex ethereum bitcoin count monero Bitcoin Mining Hardwarebitcoin hype
лото bitcoin
ethereum coingecko p2pool monero токен bitcoin love bitcoin bitcoin machine bitcoin virus bitcoin etf bitcoin agario bitcoin рост
tracker bitcoin mining cryptocurrency
bitcoin 123 monero обмен trading bitcoin course bitcoin bitcoin 999 bitcoin telegram
bitcoin обмена bitcoin xt лото bitcoin tether обмен банкомат bitcoin bitcoin суть bitcoin evolution компьютер bitcoin bitcoin expanse mindgate bitcoin trade cryptocurrency котировки ethereum смесители bitcoin bitcoin telegram bitcoin rotator wallets cryptocurrency trinity bitcoin скачать tether tether gps bitcoin reddit bitcoin it
super bitcoin bitcoin фильм bitcoin ферма майнер bitcoin bitcoin 4096 bitcoin apple bitcoin save ethereum logo bitcoin dollar терминалы bitcoin collector bitcoin cryptocurrency capitalization happy bitcoin
bitcoin сокращение криптовалюта monero difficulty bitcoin bitcoin group nicehash monero доходность ethereum 4 bitcoin bitcoin скачать 33 bitcoin сайт ethereum скачать ethereum monero краны 0 bitcoin bitcoin играть bitcoin pools poloniex bitcoin ethereum com карты bitcoin tether coin ethereum покупка сложность ethereum daily bitcoin reddit bitcoin bitcoin reddit tether пополнение dark bitcoin продам ethereum bitcoin indonesia film bitcoin bitcoin capital bitcoin poloniex best bitcoin
bistler bitcoin часы bitcoin проекты bitcoin сложность monero акции bitcoin ethereum faucet ethereum plasma стоимость monero ethereum обозначение monero cpuminer алгоритм monero bitcoin froggy bitcoin котировка
bitcoin капча ico bitcoin bitcoin nasdaq
bitcoin перевод bitcoin заработок ethereum core habrahabr bitcoin ethereum купить приложения bitcoin bitcoin торрент ethereum заработок monero logo
bitcoin department
bitcoin инструкция tether приложения bitcoin click clockworkmod tether bitcoin net bitcoin usb ethereum org bitcoin банкнота captcha bitcoin coffee bitcoin bitcoin favicon ninjatrader bitcoin monero pools Ryan Cordellbitcoin com ethereum метрополис