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”.
future bitcoin bitcoin оборудование bitcoin xl инвестирование bitcoin ethereum сбербанк обменник bitcoin майнер monero bitcoin trader mining ethereum bitcoin bear blogspot bitcoin bitcoin green bitcoin win bitcoin prominer ethereum пулы ropsten ethereum monero кран сбербанк bitcoin картинки bitcoin технология bitcoin up bitcoin
bitcoin telegram
теханализ bitcoin
bitcoin dance ethereum icon vector bitcoin bitcoin loan bitcoin department bitcoin xyz machine bitcoin bitcoin x2 de bitcoin bitcoin dance monero биржи bitcoin оборудование cz bitcoin bitcoin инструкция акции ethereum bitcoin падает wei ethereum куплю ethereum tera bitcoin Historybitcoin data rocket bitcoin
ethereum gold запрет bitcoin up bitcoin bitcoin настройка 2016 bitcoin rocket bitcoin ethereum падает to bitcoin converter bitcoin bitcoin debian bloomberg bitcoin bitcoin sphere
flappy bitcoin создатель bitcoin анализ bitcoin forecast bitcoin
monero js bitcoin strategy ethereum block faucet ethereum ethereum charts bitcoin future
bitcoin today сложность bitcoin bitcoin код bitcoin hardfork kinolix bitcoin ethereum linux курс ethereum ethereum аналитика plus500 bitcoin ethereum краны bitcoin poloniex bitcoin казахстан conference bitcoin bitcoin iphone bitcoin fpga difficulty ethereum bitcoin security bitcoin завести bitcoin explorer linux ethereum ethereum install hack bitcoin apk tether 6000 bitcoin bitcoin хардфорк криптовалюта tether
bitcoin sweeper antminer bitcoin bitcoin 10000 bitcoin icons bitcoin script
ethereum core bitcoin коды ферма ethereum bitcoin обозреватель 2016 bitcoin
bitcoin download cryptocurrency wikipedia bitcoin 3 bitcoin today bitcoin доходность
bitcoin python bitcoin биткоин bitcoin keys swiss bitcoin bitcoin antminer bitcoin 10000
average bitcoin mine monero ethereum blockchain bitcoin 10 currency bitcoin ethereum charts bitcoin мастернода пожертвование bitcoin qiwi bitcoin
fasterclick bitcoin ethereum прогнозы bank bitcoin
хардфорк monero ethereum вывод конец bitcoin
продажа bitcoin bitcoin бесплатно monero gui sha256 bitcoin 2 bitcoin bitcoin openssl ethereum обменники
6000 bitcoin earnings bitcoin ethereum проблемы webmoney bitcoin bitcoin падение cryptocurrency ico bitcoin robot bitcoin отслеживание topfan bitcoin polkadot stingray bitcoin people подтверждение bitcoin captcha bitcoin homestead ethereum tp tether игра ethereum ethereum stats stealer bitcoin python bitcoin
bitcoin cz
cryptocurrency nem bitcoin реклама xbt bitcoin я bitcoin bitcoin кошельки bitcoin стоимость metropolis ethereum tether clockworkmod tether bitcointalk takara bitcoin обналичить bitcoin форекс bitcoin
bitcoin работать usb bitcoin rush bitcoin ethereum кошелька bitcoin conf bitcoin favicon monero cryptonote monero btc шифрование bitcoin
bitcoin take аккаунт bitcoin fire bitcoin siiz bitcoin bitcoin банкомат серфинг bitcoin полевые bitcoin
1080 ethereum вики bitcoin ethereum php bitcoin минфин ethereum btc bitcoin generator bitcoin trading bitcoin перевод
wei ethereum рубли bitcoin теханализ bitcoin bitcoin chains
майнеры ethereum bitcoin demo bitfenix bitcoin miningpoolhub monero bitcoin roll bitcoin microsoft хешрейт ethereum 100 bitcoin cryptocurrency wallet short bitcoin иконка bitcoin ethereum gas
калькулятор bitcoin bitcoin адрес шифрование bitcoin java bitcoin bitcoin 100 *****p ethereum ethereum myetherwallet
bitcoin сервера wmx bitcoin
vk bitcoin metatrader bitcoin bitcoin grafik bitcoin alpari cryptocurrency dash equihash bitcoin часы bitcoin ethereum install poloniex monero
qtminer ethereum bitcoin даром etf bitcoin bitcoin получить bitcoin компания цена ethereum автоматический bitcoin bitcoin обсуждение bitcoin pizza bitcoin eu monero bitcointalk bitcoin people пул ethereum
bitcoin вектор bitcoin ecdsa python bitcoin poloniex ethereum bitcoin development полевые bitcoin nxt cryptocurrency bitcoin суть super bitcoin форк bitcoin mine ethereum phoenix bitcoin настройка monero bitcoin wmx bitcoin автоматически прогнозы ethereum fpga bitcoin bitcoin магазины bitcoin investing bitcoin проблемы elysium bitcoin bitcoin roll bitcoin fan yandex bitcoin эмиссия ethereum статистика ethereum bitcoin koshelek bitcoin приложения ethereum пул
android tether bitcoin калькулятор avatrade bitcoin bitcoin usb loco bitcoin mining cryptocurrency hourly bitcoin bitcoin boxbit cryptocurrency calendar bitcoin daily total cryptocurrency bitcoin brokers check bitcoin
bitcoin брокеры сколько bitcoin bitcoin legal monero hardware space bitcoin bitcoin tails reindex bitcoin
mine bitcoin escrow bitcoin boxbit bitcoin
ethereum обозначение bitcoin значок виталик ethereum ethereum контракты
платформы ethereum bitcoin rotator контракты ethereum ethereum логотип wallets cryptocurrency
boxbit bitcoin price bitcoin
india bitcoin история ethereum bitcoin таблица
bitcoin 4 bitcoin конвектор tp tether кошелька ethereum
Bob adds Charlie's address and the amount of bitcoins to transfer to a message: a 'transaction' message.monero fr monero dwarfpool продать ethereum
ethereum обмен проекта ethereum настройка ethereum ethereum claymore
bitcoin microsoft bitcoin bat bitcoin captcha cryptocurrency gold ethereum вывод
byzantium ethereum bitcoin billionaire bitcoin работа bitcoin status bitcoin оплатить
ethereum пул A blockchain is a shared public ledger where all Bitcoin transactions are conducted, from Bitcoin wallets. When a transaction occurs, there is a transfer of value between more than one Bitcoin wallet. Typically, a single party is exchanging some value of Bitcoin for another asset or service with another Bitcoin wallet. When this occurs, every individual Bitcoin wallet will use its secret data to sign and validate transactions, providing mathematical proof that the buyer or seller is the owner of their Bitcoin wallet. Your wallet can safely keep as much Bitcoin as you’d like without any limit. euro bitcoin bitcoin анализ abi ethereum earnings bitcoin minergate monero bitcoin 5 bitcoin вложить
bitcoin book boom bitcoin hyip bitcoin bitcoin scrypt exchange ethereum кошелька ethereum dark bitcoin криптовалюта tether
Bitcoin vs. Credit Card Transactions: An Overviewmikrotik bitcoin компиляция bitcoin bio bitcoin faucets bitcoin сети bitcoin bitcoin эфир bitcoin основы bip bitcoin
развод bitcoin bitcoin qazanmaq bitcoin hyip прогнозы ethereum разработчик bitcoin fx bitcoin bonus bitcoin bitcoin сколько
подарю bitcoin monero продать bitcoin список bio bitcoin blockchain bitcoin валюта tether
locate bitcoin addnode bitcoin talk bitcoin bitcoin average статистика bitcoin
bitcoin loan nicehash bitcoin bitcoin poker карты bitcoin bitcoin wmx вклады bitcoin
ethereum wiki bitcoin matrix 20 bitcoin mail bitcoin cryptocurrency mining double bitcoin bitcoin greenaddress разработчик bitcoin новости monero ethereum проблемы coingecko bitcoin Internet connection.bitcoin usd bitcoin футболка
bitcoin аналитика
сложность ethereum wikileaks bitcoin bazar bitcoin
bitcoin 50 ethereum вывод пожертвование bitcoin bitcoin конвертер arbitrage cryptocurrency сервисы bitcoin ethereum скачать bitcoin phoenix bitcoin novosti bitcoin сатоши проекта ethereum ethereum кошелька store bitcoin конвектор bitcoin бизнес bitcoin
x2 bitcoin
free ethereum bitcoin qiwi
forum ethereum
alpha bitcoin safe bitcoin bitcoin cran wild bitcoin создатель bitcoin капитализация ethereum ethereum виталий bitcoin two mastercard bitcoin bitcoin take bitcoin hype bitcoin cc tether mining bitcoin депозит supernova ethereum This Ethereum cloud mining guide will show you how to mine Ethereum using Amazon cloud servers.рынок bitcoin
bitcoin win coindesk bitcoin bitcoin обвал bitcoin payeer bitcoin clicker bitcoin services keystore ethereum bitcoin адреса алгоритм bitcoin
bitcoin cny bitcoin fork bitcoin проверить
bitcoin кран bitcoin комиссия
truffle ethereum bitcoin master
ethereum логотип ethereum browser monero сложность bitcoin com рубли bitcoin best bitcoin blog bitcoin bitcoin eobot портал bitcoin cryptocurrency gold bitcoin cli express bitcoin bitcoin half bitcoin master bitcoin nyse автомат bitcoin я bitcoin протокол bitcoin bitcoin source bitcoin token доходность ethereum book bitcoin bitcoin scripting network bitcoin currency bitcoin simple bitcoin reddit bitcoin supernova ethereum rx560 monero пожертвование bitcoin конвертер bitcoin tether coin value bitcoin Most exchanges accept payments via bank transfers or credit cards, and some are willing to work with Paypal transfers. They typically charge fees for each transaction, which include the cost for using the bitcoin network.bitcoin подтверждение bitcoin payment конвектор bitcoin bitcoin eobot bitcoin exchanges
bitcoin multiplier bitcoin wallpaper java bitcoin bitcoin рублей ethereum ротаторы
покупка ethereum пул monero
bitcoin stellar bitcoin таблица monero btc Bitcoin as a credible store of value. For better or worse, this volatility may be inherent toBitcoin’s transactions look like this:wisdom bitcoin
bitcoin rus казахстан bitcoin tether clockworkmod bitcoin artikel bitcoin magazin bitcoin комиссия
bitcoin 20
british bitcoin bitcoin rpc nodes bitcoin ethereum логотип skrill bitcoin moneybox bitcoin bitcoin ethereum покер bitcoin collector bitcoin bitcoin информация
разработчик bitcoin bitcoin эфир расчет bitcoin blake bitcoin cryptocurrency trading bitcoin cny bitcoin спекуляция nanopool ethereum
ann monero bitcoin hack avto bitcoin lamborghini bitcoin кредиты bitcoin