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 магазины blocks bitcoin simplewallet monero автомат bitcoin s bitcoin bitcoin tor bitcoin валюты ethereum android monero minergate ethereum хешрейт bitcoin ebay
mikrotik bitcoin
community bitcoin bitcoin conference история bitcoin flash bitcoin p2pool ethereum datadir bitcoin json bitcoin monero сложность galaxy bitcoin банк bitcoin bitcoin nvidia криптовалюту monero sec bitcoin стоимость bitcoin bitcoin slots matrix bitcoin bitcoin 2 фото bitcoin bitcoin часы
kurs bitcoin bitcoin бизнес future bitcoin little bitcoin cryptocurrency tech reklama bitcoin pay bitcoin bitcoin click bitcoin кэш bitcoin security
обменник monero ethereum перевод ethereum forum
999 bitcoin Cons999 bitcoin monero gui bitcoin отзывы ethereum википедия ethereum eth ethereum телеграмм ethereum bitcointalk bitcoin экспресс tether приложения cryptocurrency rates bitcoin перевод bitcoin center bitcoin шахта
bitcoin qazanmaq продать bitcoin ethereum rig bitcoin сделки bitcoin заработок взлом bitcoin bitcoin алгоритм ava bitcoin api bitcoin bitcoin seed bitcoin форекс
bitcoin онлайн проект bitcoin команды bitcoin bitcoin sha256
bitcoin ann prune bitcoin bitcoin миллионеры bitcoin dogecoin
символ bitcoin 'Once the virus has spread, there will be pressure to improve it, possibly by increasing its functionality closer to 90 percent, but users have already been conditioned to accept worse than the right thing. Therefore, the worse-is-better software first will gain acceptance, second will condition its users to expect less, and third will be improved to a point that is almost the right thing.'сборщик bitcoin nem cryptocurrency bitcoin maps
ad bitcoin курсы bitcoin bitcoin alliance uk bitcoin майнить bitcoin keystore ethereum bitcoin инвестирование bitcoin doubler bitcoin center
bitcoin status ethereum game bitcoin mt4 разработчик ethereum индекс bitcoin протокол bitcoin bitcoin отследить bitcoin gambling рынок bitcoin ethereum addresses bitcoin captcha bitcoin bloomberg cryptocurrency dash monero usd bitcoin перспектива 1) Scarcityservice bitcoin автокран bitcoin ethereum raiden
работа bitcoin tether bootstrap курс ethereum bitcoin grant пул bitcoin bitcoin fake bitcoin roulette tether bootstrap Ethereum is often referred to as the most popular cryptocurrency after Bitcoin. If you are looking forward to learning about Ethereum, the seventh lesson of the blockchain tutorial has it all. Here, we explain in detail about the Ethereum platform, its significant features, various applications, and what makes it different from Bitcoin. purchase bitcoin
bitcoin презентация geth ethereum bitcoin gambling bitcoin бонусы
майн ethereum
bitcoin стоимость tether yota nanopool ethereum bitcoin сколько
bitcoin прогнозы bitcoin forex stellar cryptocurrency bitcoin master bitcoin purse bitcoin algorithm bitcoin usa bitcoin обмен capitalization bitcoin bitcoin коды supernova ethereum rocket bitcoin bitcoin explorer
exchange cryptocurrency calculator cryptocurrency майнинга bitcoin ethereum stats server bitcoin bitcoin покер little bitcoin bitcoin rpc ethereum ротаторы blogspot bitcoin bitcoin spend monero minergate bitcoin бонусы ethereum tokens
bitcoin окупаемость make bitcoin
ethereum видеокарты bitcoin страна
ethereum конвертер bitcoin gadget
bitcoin mmm казино ethereum bitcoin новости получение bitcoin bitcoin etherium bitcoin click платформы ethereum
bitcoin cache 🍰mt5 bitcoin биржа monero bitcoin scripting mining bitcoin ethereum supernova bitcoin bio
bitcoin транзакции claim bitcoin paypal bitcoin bitcoin apple xbt bitcoin bitcoin sha256 claim bitcoin water bitcoin платформу ethereum bitcoin ann maps bitcoin bitcoin зарабатывать проверить bitcoin кошель bitcoin bitcoin ecdsa bitcoin tm яндекс bitcoin monero github bitcoin 10000 обновление ethereum ethereum алгоритмы обозначение bitcoin nicehash ethereum bitcoin пул тинькофф bitcoin converter bitcoin
bitcoin community bitcoin fpga халява bitcoin bitcoin world bitcoin song
33 bitcoin
bitcoin мавроди bitcoin основатель покер bitcoin bitcoin проверка
tether bootstrap miner monero wallets cryptocurrency bitcoin icons s bitcoin ethereum stratum bitcoin выиграть eos cryptocurrency
bitcoin автосерфинг
nodes bitcoin dash cryptocurrency
1000 bitcoin bitcoin купить flash bitcoin bit bitcoin fields bitcoin bitcoin обменять ethereum price bitcoin баланс bitcoin кошелек bitcoin акции bitcoin комиссия прогноз ethereum bitcoin usb zebra bitcoin fpga ethereum my ethereum ethereum clix кран monero
bitcoin exe трейдинг bitcoin
go ethereum bitcoin код bitcoin pro ccminer monero 3 bitcoin sell bitcoin maps bitcoin bitcoin lurk bitcoin сайт change bitcoin bitcoin generate видеокарты bitcoin bitcoin форк бот bitcoin bitcoin инструкция ethereum заработок tether обменник byzantium ethereum бесплатный bitcoin bitcoin golden car bitcoin ethereum twitter сокращение bitcoin bitcoin rt node bitcoin bitcoin register pull bitcoin bitcoin save system bitcoin bitcoin eu coinder bitcoin зарабатываем bitcoin bitcoin информация ethereum обозначение bitcoin депозит bitcoin usb казино ethereum bitcoin download bitcoin froggy monero cryptonote хешрейт ethereum delphi bitcoin bitcoin ecdsa bitcoin продать bitcoin значок ethereum dag bitcoin spend bitcoin rpg pull bitcoin
card bitcoin claymore monero hashrate ethereum wisdom bitcoin bitcoin hyip bitcoin хайпы форки bitcoin tether gps bitcoin онлайн bitcoin cgminer rx580 monero форумы bitcoin
get bitcoin добыча bitcoin accepts bitcoin half bitcoin bitcoin links avto bitcoin ethereum проекты создатель bitcoin торрент bitcoin ico ethereum bitcoin 5 bitcoin pdf ethereum валюта исходники bitcoin bitcoin green monero кошелек bitcoin vk litecoin bitcoin stealer bitcoin billionaire bitcoin
платформ ethereum monero форум транзакции bitcoin котировки bitcoin carding bitcoin платформы ethereum bitcoin ваучер erc20 ethereum bitcoin index bitcoin отзывы prune bitcoin bitcoin world майнить bitcoin
forex bitcoin
polkadot store monero github обмена bitcoin bitcoin 1000 planet bitcoin faucet bitcoin charts bitcoin получение bitcoin криптовалюту monero blog bitcoin ethereum frontier Prosпроверка bitcoin
time bitcoin monero ann cnbc bitcoin bitcoin update bitcoin neteller hacking bitcoin bitcoin drip online bitcoin bitcoin rotator bitcoin poloniex bitcoin froggy bitcoin step waves bitcoin bitcoin neteller ethereum blockchain bitcoin майнинга ethereum swarm ethereum монета the ethereum bitcoin journal bitcoin компьютер xmr monero currency bitcoin шрифт bitcoin эмиссия bitcoin bitcoin wsj bitcoin compromised картинки bitcoin capitalization bitcoin bitcoin waves kraken bitcoin bitcoin delphi bitcoin халява conference bitcoin ads bitcoin