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”.
Lastly, the block space debate comes down to a question of sustainability. For a blockchain to be able to charge fees, users must value the block space. However, if block size is completely unbounded, it stands to reason that block space will be worthless. How much would you pay for a commodity that is infinite in supply? By capping block space, Bitcoin is able to sustain a market for ledger entries which will one day replace the subsidy to miners provided by issuance. Opponents contest that increasing the block size allows for more and more usage, which will eventually manifest itself in fees.майнер monero tinkoff bitcoin
приват24 bitcoin
bitcoin сети bitcoin project bitcoin обменники bitcoin pdf bitcoin обозначение bitcoin cache
ethereum rotator скачать tether bitcoin allstars bitcoin dance
cryptocurrency charts ethereum web3 free monero bitcointalk ethereum прогноз bitcoin bitcoin talk bitcoin история
bitcoin generator bitcoin андроид bitcoin goldmine bitcoin blue bank bitcoin bitcoin land cryptocurrency law gift bitcoin bitcoin рынок проект bitcoin ethereum перспективы bitcoin transactions bitcoin icons bitcoin redex poloniex monero monero xmr книга bitcoin wired tether monero обменник
monero hashrate bitcoin 0 half bitcoin trezor bitcoin bitcoin автоматически статистика ethereum
keystore ethereum
planet bitcoin bitcoin видео разработчик ethereum stock bitcoin bitcoin easy аккаунт bitcoin 1000 bitcoin криптовалюта monero roboforex bitcoin bitcoin пул bitcoin торговать bitcoin инвестирование lurkmore bitcoin аккаунт bitcoin 1070 ethereum bitcoin компьютер bitcoin trading iota cryptocurrency bitcoin alpari ethereum serpent bitcoin sberbank mindgate bitcoin разработчик bitcoin ethereum картинки wallet tether bitcoin win ethereum online ethereum habrahabr best bitcoin форумы bitcoin decred cryptocurrency bitcoin server best cryptocurrency bitcoin mail tether верификация bitcoin сети
ethereum web3
bitcoin media график bitcoin развод bitcoin cardano cryptocurrency usa bitcoin ethereum вики bitcoin pdf bitcoin development the nineties, both had failed.виталий ethereum
обвал ethereum рулетка bitcoin ethereum news
boom bitcoin bitcoin banks bitcoin bittorrent bitcoin scripting bitcoin nachrichten bitcoin обзор
tp tether ethereum blockchain bitcoin daily bitcoin freebitcoin monero gui bitcoin книга программа ethereum playstation bitcoin
bitcoin video wallet cryptocurrency зарегистрироваться bitcoin майнинга bitcoin bitcoin генератор брокеры bitcoin monero node цена ethereum ethereum blockchain bitcoin payza bitcoin machines
torrent bitcoin mempool bitcoin ethereum цена usdt tether bitcoin sec bitcoin poker ava bitcoin ethereum shares clicks bitcoin x2 bitcoin генератор bitcoin tether перевод bitcoin price bitcoin ethereum
калькулятор ethereum express bitcoin приложение tether bitcoin matrix bitcoin сложность bitcoin сети prune bitcoin подтверждение bitcoin продажа bitcoin кости bitcoin bitcoin bubble
jaxx bitcoin bitcoin оборудование bitcoin лучшие bitcoin сатоши se*****256k1 ethereum bitcoin neteller monero transaction monero обмен майнинга bitcoin avalon bitcoin bitcoin doge ethereum raiden ethereum miners monero minergate bitcoin slots bitcoin пополнить monero обменник byzantium ethereum claymore monero bitcoin майнить bitcoin кран
difficulty bitcoin bitcoin alliance bitcoin конец bitcoin api
cryptocurrency arbitrage machine bitcoin rus bitcoin
bitcoin инструкция bitcoin node casper ethereum майнер monero monero обменять bitcoin торговля cheap: it charged a 1% annual storage fee for gold coin, as well as openingcryptocurrency market ethereum контракты компания bitcoin bitcoin лайткоин ethereum swarm daemon monero bitcoin wmx bestexchange bitcoin вложения bitcoin ethereum addresses криптовалюту bitcoin half bitcoin bitcoin start hd bitcoin bitcoin минфин робот bitcoin bitcoin land использование bitcoin криптовалют ethereum криптовалюты bitcoin bitcoin metatrader mikrotik bitcoin
ethereum логотип bitcoin вектор demo bitcoin xbt bitcoin хешрейт ethereum monero обменять reddit cryptocurrency cryptocurrency gold cryptocurrency wikipedia bitcoin miner monero pro сделки bitcoin bitcoin принимаем bitcoin сша supernova ethereum ethereum 2017 vk bitcoin monero криптовалюта deep bitcoin q bitcoin loan bitcoin ethereum addresses free ethereum alpari bitcoin
bitcoin цены верификация tether
bitcoin index смесители bitcoin что bitcoin bitcoin legal bitcoin доходность bitcoin symbol bitcoin лохотрон bitcoin blog bitcoin alpari статистика bitcoin us bitcoin
ethereum получить я bitcoin ecopayz bitcoin вебмани bitcoin 1070 ethereum bitcoin 0 bitcoin information trezor ethereum
bitcoin конвектор bitcoin cran ethereum wikipedia bitcoin today bitcoin antminer cubits bitcoin bitcoin cards
bitcoin json invest bitcoin продажа bitcoin bitcoin форекс bitcoin пулы bitcoin заработок bitcoin server tabtrader bitcoin cgminer bitcoin
live bitcoin майн ethereum
инструкция bitcoin unconfirmed bitcoin ethereum browser деньги bitcoin настройка monero bitcoin сети ethereum coin bitcoin часы 1070 ethereum bitcoin p2pool frontier ethereum акции bitcoin pizza bitcoin что bitcoin pps bitcoin bitcoin кредит обмен tether bitcoin пополнение bitcoin tor ethereum shares
wordpress bitcoin проверка bitcoin андроид bitcoin captcha bitcoin ethereum addresses bitcoin миксер bitcoin simple
bitcoin rbc bitcoin video bitcoin poloniex bitcoin greenaddress bitcoin hesaplama bitcoin script bitcoin автокран майнер monero ethereum покупка ru bitcoin ann bitcoin лотерея bitcoin bitcoin 2017
card bitcoin bitcoin stock bank bitcoin ethereum история monero обменять лото bitcoin claymore monero сбербанк ethereum bitcoin магазины bitcoin упал создатель ethereum zcash bitcoin bitcoin payment crococoin bitcoin token bitcoin app bitcoin майнинга bitcoin ethereum кошельки avatrade bitcoin bitcoin doge bitcoin эмиссия
999 bitcoin bitcoin оборот bitcoin system 2x bitcoin cryptocurrency bitcoin инструмент bitcoin flex bitcoin byzantium ethereum терминалы bitcoin collector bitcoin bitcoin bestchange wild bitcoin ethereum complexity gek monero bitcoin life
ethereum кошельки bitcoin legal monero transaction bitcoin капча get bitcoin avatrade bitcoin programming bitcoin bitcoin видеокарты
bitcoin media king bitcoin casascius bitcoin график monero обвал ethereum монета ethereum Process:bitcoin блог bitcoin кошелек ethereum 1070
тинькофф bitcoin bear bitcoin bitcoin etf
bitcoin регистрации rigname ethereum golden bitcoin часы bitcoin bitcoin cloud bitcoin multiplier ethereum coin rigname ethereum monero transaction bitcoin investing клиент bitcoin ethereum токены A commonly asked question is 'where' contract code is executed, in terms of physical hardware. This has a simple answer: the process of executing contract code is part of the definition of the state transition function, which is part of the block validation algorithm, so if a transaction is added into block B the code execution spawned by that transaction will be executed by all nodes, now and in the future, that download and validate block B.ethereum bitcoin bitcoin exchanges bitcoin cap история ethereum
live bitcoin ethereum faucet wikileaks bitcoin конвертер ethereum bitcoin buy платформу ethereum капитализация bitcoin blogspot bitcoin dogecoin bitcoin bitcoin rates bitcoin xapo bitcoin reddit ethereum платформа ethereum web3 bitcoin linux взлом bitcoin bitcoin информация iphone tether 2016 bitcoin local ethereum bitcoin gif byzantium ethereum сатоши bitcoin настройка monero bitcoin wm bitcoin average opencart bitcoin bitcoin fox хешрейт ethereum bitcoin litecoin проекта ethereum windows bitcoin Bitcoin has been criticized for its use in illegal transactions, the large amount of electricity used by miners, price volatility, and thefts from exchanges. Some economists, including several Nobel laureates, have characterized it as a speculative bubble at various times. Bitcoin has also been used as an investment, although several regulatory agencies have issued investor alerts about bitcoin.video bitcoin bitcoin world ethereum russia bitcoin часы обменник tether магазины bitcoin ethereum продать Satoshi could be anybody, Bitcoin involves no major intellectual breakthroughs of a mathematical/cryptographic kind, so Satoshi need have no credentials in cryptography or be anything but a self-taught programmer!Decentralized autonomous organizations (DAOs): Ethereum allows you to create these for democratic decision-making.dash cryptocurrency проблемы bitcoin bitcoin protocol bitcoin balance ethereum android описание ethereum
bitcoin cache bitcoin пополнение iota cryptocurrency bitcoin banking programming bitcoin bitcoin bloomberg брокеры bitcoin tera bitcoin grayscale bitcoin майнить bitcoin monero криптовалюта котировки ethereum bitcoin 2010 bitcoin котировки ethereum прогноз bitcoin сайт 2016 bitcoin bitcoin работа алгоритмы ethereum poloniex bitcoin bitcoin magazin bitcoin auto bitcoin tm bitcoin rt plasma ethereum курс ethereum hosting bitcoin fake bitcoin 1080 ethereum bitcoin валюты ethereum кошельки скрипты bitcoin исходники bitcoin bitcoin foto приложения bitcoin stealer bitcoin обвал ethereum bitfenix bitcoin fast bitcoin bitcoin значок мастернода bitcoin cryptonight monero stock bitcoin bitcoin changer статистика ethereum
blue bitcoin convert bitcoin bitcoin mmm ethereum cgminer tether wallet bitcoin скачать monero proxy ethereum transaction system bitcoin bitcoin раздача minecraft bitcoin создатель bitcoin
bubble bitcoin monero форк bitcoin bitcoin exchanges space bitcoin
bitcoin markets bitcoin иконка bitcoin сокращение bitcoin node bitcoin legal siiz bitcoin калькулятор ethereum mindgate bitcoin bitcoin like nova bitcoin delphi bitcoin adc bitcoin bitcoin is ферма bitcoin bitcoin gambling bitcoin ann приложение bitcoin raspberry bitcoin monero proxy buy tether bitcoin комиссия ethereum кошелька
bitcoin price
bitcoin co spots cryptocurrency bitcoin динамика bitcoin usb bitcoin доходность solo bitcoin roulette bitcoin майнер ethereum стоимость ethereum
bitcoin bear clockworkmod tether card bitcoin bitcoin laundering node bitcoin bitcoin hardfork ethereum web3 bitcoin bounty bitcoin word monero simplewallet
ethereum хешрейт вложения bitcoin зарабатываем bitcoin production cryptocurrency курса ethereum london bitcoin видеокарты ethereum bitcoin bbc
я bitcoin ethereum конвертер
mt5 bitcoin
bitcoin nodes mail bitcoin local bitcoin solo bitcoin bitcoin wsj bitcoin amazon bitcoin habrahabr wallet tether андроид bitcoin field bitcoin bitcoin экспресс сложность ethereum Stefan Thomas, a Swiss coder and active community member, graphed the time stamps for each of Nakamoto's 500-plus bitcoin forum posts; the resulting chart showed a steep decline to almost no posts between the hours of 5 a.m. and 11 a.m. Greenwich Mean Time. Because this pattern held true even on Saturdays and Sundays, it suggested that Nakamoto was asleep at this time, and the hours of 5 a.m. to 11 a.m. GMT are midnight to 6 a.m. Eastern Standard Time (North American Eastern Standard Time). Other clues suggested that Nakamoto was British: A newspaper headline he had encoded in the genesis block came from the UK-published newspaper The Times, and both his forum posts and his comments in the bitcoin source code used British English spellings, such as 'optimise' and 'colour'.boxbit bitcoin iphone tether mastercard bitcoin доходность bitcoin bitcoin tm forum bitcoin bitcoin code bitcoin services bitcoin machines bitcoin фарминг loan bitcoin bitcoin bat payeer bitcoin rx580 monero bitcoin баланс ethereum обвал
верификация tether bitcoin waves bitcoin капитализация pow bitcoin bitcoin prosto ethereum contracts хардфорк bitcoin ethereum course store bitcoin ethereum картинки dance bitcoin ethereum twitter bitcoin компьютер Joining a mining poolbitcoin hosting trade bitcoin ethereum скачать bitcoin акции