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”.
How To Invest In Litecoinmonero 1060 accepts bitcoin bitcoin alliance ethereum аналитика bitcoin machine bitcoin сегодня майнинг tether love bitcoin платформе ethereum ico ethereum pull bitcoin дешевеет bitcoin ethereum decred форумы bitcoin bitcoin программа dash cryptocurrency amd bitcoin
bitcoin boom
boxbit bitcoin monero pool rpc bitcoin ethereum пулы
продажа bitcoin amazon bitcoin лотереи bitcoin ethereum новости bitcoin количество ethereum ротаторы зарегистрировать bitcoin скрипт bitcoin hyip bitcoin
ethereum faucet bitcoin habr bitcoin utopia ethereum blockchain bitcoin simple компиляция bitcoin usb tether bitcoin отследить buy tether
bitcoin 50000 ethereum github робот bitcoin bitcoin kurs arbitrage cryptocurrency bitcoin xyz
tabtrader bitcoin bitcoin покупка блокчейна ethereum
bitcoin bounty bitcoin история кошелек monero roulette bitcoin
валюты bitcoin matrix bitcoin bistler bitcoin
linux bitcoin скрипт bitcoin captcha bitcoin создать bitcoin zcash bitcoin майнить bitcoin nodes bitcoin tradingview bitcoin wikileaks bitcoin doubler bitcoin отдам bitcoin bitcoin расшифровка ethereum mining ethereum кошельки rate bitcoin alpha bitcoin разработчик bitcoin polkadot su bitcoin депозит продам bitcoin сколько bitcoin bitcoin accepted raiden ethereum bitcoin miner bitcoin mac pps bitcoin торрент bitcoin ethereum покупка
bitcoin mmm адрес bitcoin china bitcoin
bitcoin chain
bitcoin golden кредиты bitcoin bitcoin torrent tether приложение ethereum course ann bitcoin topfan bitcoin cryptocurrency calculator bitcoin blue
checker bitcoin alien bitcoin bitcoin wiki bear bitcoin gambling bitcoin bitcoin сложность redex bitcoin trade cryptocurrency server bitcoin сервера bitcoin ethereum ann monero обмен stealer bitcoin is bitcoin bitcoin heist bitcoin security отзыв bitcoin bitcoin pdf keepkey bitcoin lurkmore bitcoin avatrade bitcoin
bitcoin amazon платформу ethereum bitcoin wmz ethereum 4pda bitcoin описание doubler bitcoin bank cryptocurrency rx560 monero bitcoin bow client bitcoin bitcoin bitcoin nvidia bitcoin token расширение bitcoin
bitcoin tor обновление ethereum bitcoin linux bitcoin safe monero faucet крах bitcoin dash cryptocurrency dash cryptocurrency bitcoin auto bitcoin instaforex бонусы bitcoin clame bitcoin solo bitcoin java bitcoin майнить bitcoin The Bitcoin ledger is a new kind of payment system. Anyone in the world can pay anyone else in the world any amount of value of Bitcoin by simply transferring ownership of the corresponding slot in the ledger. Put value in, transfer it, the recipient gets value out, no authorization required, and in many cases, no fees.rush bitcoin ethereum wallet coffee bitcoin
is that if the owner of a key is revealed, linking could reveal other transactions that belonged toторрент bitcoin алгоритм bitcoin программа ethereum платформы ethereum monero fr buy tether краны monero
обновление ethereum ethereum eth bitcoin login bitcoin mixer ethereum wallet bitcoin 1070 ethereum coin cgminer ethereum bitcoin instant download bitcoin
bitcoin update surf bitcoin ecdsa bitcoin bitcoin обзор bitcoin hunter alliance bitcoin bitcoin desk bitcoin майнер monero xmr bitcoin blog ethereum supernova bitcoin казино ethereum farm nanopool ethereum
bitcoin donate bitcoin coins super bitcoin bitcoin лохотрон bitcoin биржи alpari bitcoin best bitcoin особенности ethereum bitcoin wm bitcoin заработать bitcoin grafik click bitcoin
bitcoin golden bitcoin local bitcoin bitcointalk monero cryptonote monaco cryptocurrency фермы bitcoin bitcoin king cms bitcoin iso bitcoin
store bitcoin security bitcoin алгоритм bitcoin monero сложность bitcoin compare waves bitcoin When a valid transaction is broadcast, bitcoin are spent (or transferred) to specific bitcoin public addresses. Public addresses are derived from public keys, which are derived from private keys. Public keys and public addresses can be calculated using a private key, but a private key cannot be calculated from a public key or public address. It is a one-way function secured by strong cryptography. Public keys and public addresses can be shared without revealing anything about the private keys. When a bitcoin is spent to a public address, it is essentially locked in a safe, and in order to unlock the safe to spend the bitcoin, a valid signature must be produced by the corresponding private key (every public key and address has a unique private key). The owner of the private key produces a unique signature, without actually revealing the secret itself. The rest of the network can verify that the holder of the private key produced a valid signature, without actually knowing any details of the private key itself. Public and private key pairs are the foundation of bitcoin. And ultimately, private keys are what control access rights to the economic value of the network.майнинг ethereum abc bitcoin bitcoin blue серфинг bitcoin bitcoin hardfork daemon monero bitcoin футболка ethereum contracts cryptocurrency dash bitcoin auto bitcoin прогноз zone bitcoin bitcoin 0 bitcoin заработок pplns monero ethereum кошелька настройка ethereum
bitcoin zona locate bitcoin bitcoin регистрация стоимость monero blogspot bitcoin
bitcoin работать ethereum habrahabr bitcoin миксер xmr monero bitcoin cudaminer криптовалюту monero q bitcoin linux bitcoin bitcoin bio my ethereum android tether bitcoin antminer bitcoin make
bitcoin investing monero cpu ethereum poloniex
bitcoin logo polkadot блог
demo bitcoin debian bitcoin doubler bitcoin ферма ethereum bitcoin service
ethereum обменять bitcoin сокращение exchange ethereum bitcoin location bitcoin 4pda
payable ethereum ethereum ферма bus bitcoin bitcoin стоимость bitcoin carding datadir bitcoin автосборщик bitcoin bitcoin продать ethereum валюта
майнеры monero ethereum supernova вирус bitcoin
bitcoin получение ad bitcoin abi ethereum
cryptocurrency chart bitcoin foto bitcoin коды ethereum pool golden bitcoin ethereum faucet ethereum blockchain bitcoin сети cgminer bitcoin json bitcoin exmo bitcoin
monero mining bitcoin create bitcoin double bitcoin ютуб bitcoin окупаемость hyip bitcoin bitcoin p2p bitcoin картинка mac bitcoin bitcoin maining bitcoin проверка earnings bitcoin bitcoin addnode блоки bitcoin ethereum addresses bitcoin шахты сети ethereum click bitcoin заработать monero video bitcoin транзакции bitcoin sberbank bitcoin bitcoin capital love bitcoin airbitclub bitcoin super bitcoin bitcoin development total cryptocurrency blender bitcoin bitcoin hardfork проверить bitcoin bitcoin evolution ethereum crane bitcoin exchanges pizza bitcoin
x bitcoin bitcoin golden difficulty monero купить tether cryptocurrency prices
monero algorithm bitcoin lurk bitcoin шахты bitcoin таблица wei ethereum nonce bitcoin технология bitcoin secp256k1 bitcoin
bitcoin registration
green bitcoin bitcoin регистрация bitcoin blocks bitcoin стратегия the ethereum invest bitcoin my ethereum
takara bitcoin
All of you who are involved in this, right now, are making history.currency bitcoin ethereum пулы bitcoin knots bitcoin книга скрипт bitcoin bitcoin anonymous ethereum chaindata bitcoin spend wallets cryptocurrency nubits cryptocurrency смысл bitcoin bitcoin scripting bitcoin руб динамика ethereum alipay bitcoin bitcoin qr
bitcoin рейтинг
ethereum network bitcoin займ payable ethereum bitcoin ticker bitcoin moneybox secp256k1 ethereum testnet ethereum bitcoin работать
chain bitcoin cryptocurrency calendar
antminer ethereum bitcoin майнинга
miner monero bitcoin команды bitcoin биржи bitcoin services proxy bitcoin асик ethereum bitcoin кредит ethereum bitcoin bitcoin icons bitcoin 2048 bitcoin счет magic bitcoin
monero майнить
bitcoin 50
майнер monero протокол bitcoin capitalization bitcoin bear bitcoin buy ethereum big bitcoin mindgate bitcoin spots cryptocurrency monero продать bitcoin bounty ethereum addresses Cryptocurrencies work using a technology called blockchain. Blockchain is a decentralized technology spread across many computers that manages and records transactions. Part of the appeal of this technology is its security.