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 visa
bitcoin future
bitcoin перспектива символ bitcoin captcha bitcoin secp256k1 ethereum bitcoin видеокарты продать ethereum 50 bitcoin arbitrage bitcoin mine monero ethereum chart стоимость monero circle bitcoin bitcoin virus tether wallet bitcoin store bitcoin терминал equihash bitcoin bitcoin pools ethereum calculator запросы bitcoin bitcoin генератор vector bitcoin bitcoin таблица bitcoin ocean bitcoin команды bitcoin xl ethereum краны payable ethereum
окупаемость bitcoin
bitcoin escrow blockchain ethereum bitcoin кошелек
hourly bitcoin fast bitcoin bitcoin pdf
earnings bitcoin bitcoin bestchange bitcoin online bitcoin описание cryptocurrency ethereum доходность ethereum bitcoin проблемы The user broadcasts the transaction request to the entire Ethereum network from some node.игры bitcoin
перевод tether bitcoin pools ledger bitcoin system bitcoin cryptocurrency logo бот bitcoin bitcoin linux cnbc bitcoin ротатор bitcoin ethereum rub q bitcoin ethereum classic usb tether bitcoin office клиент bitcoin x2 bitcoin
bitcoin news инвестиции bitcoin nicehash ethereum
monero news bitcoin com ethereum форк bitcoin girls in bitcoin
tether купить bitcoin kurs форекс bitcoin
monero купить fasterclick bitcoin ethereum address bitcoin valet bitcoin cap bitcoin вебмани hit bitcoin bitcoin gold bitcoin block monero пул ethereum programming bitcoin torrent
ethereum упал bitcoin x bitcoin описание
swarm ethereum раздача bitcoin panda bitcoin all cryptocurrency bitcoin darkcoin bitcoin win bitcoin keywords bitcoin nedir bitcoin flip nodes bitcoin doubler bitcoin bitcoin maps bitcoin пожертвование bitcoin rotators bitcoin рухнул bitcoin invest
bitcoin alert майнинг bitcoin truffle ethereum
bitcoin стоимость разработчик bitcoin hacking bitcoin продать monero
bitcoin индекс ico ethereum mine monero ethereum pool bitcoin loto usa bitcoin обменник ethereum
advcash bitcoin ethereum инвестинг kinolix bitcoin bitcoin заработать bitcoin all иконка bitcoin робот bitcoin zcash bitcoin truffle ethereum bitcoin hardware js bitcoin fx bitcoin logo bitcoin разделение ethereum r bitcoin super bitcoin
bitcoin ethereum bitcoin фарм tether yota faucet cryptocurrency bitcoin icon bitcoin фарм bitcoin habrahabr bitcoin софт invest bitcoin bitcoin cash bitcoin mt4 script bitcoin bitcoin income How does litecoin work?bitcoin доходность мониторинг bitcoin bitcoin форки bitcoin 4096
bitcoin location monero криптовалюта bitcoin ставки программа tether decred ethereum explorer ethereum bitcoin stealer ethereum homestead bitcoin оборот bitcoin чат bitcoin login ethereum info
rus bitcoin bitcoin genesis monero simplewallet
bitcoin сайты
addnode bitcoin bitcoin dollar робот bitcoin importprivkey bitcoin bitcoin краны clame bitcoin
bitcoin nedir
bitcoin course
decred ethereum ethereum siacoin bitcoin android abi ethereum billionaire bitcoin ethereum кошельки bitcoin bcc ico bitcoin rpc bitcoin bitcoin in mikrotik bitcoin car bitcoin bitcoin koshelek криптовалюту monero bitcoin services chaindata ethereum my ethereum сервисы bitcoin bitcoin зарегистрировать bitcoin local bitcoin transaction bitcoin pdf бесплатный bitcoin bitcoin forbes parity ethereum bitcointalk ethereum bitcoin price bitcoin курс bitcoin monkey stock bitcoin battle bitcoin
bitcoin putin
ethereum заработок сделки bitcoin block ethereum ethereum видеокарты x2 bitcoin bitcoin проект
bitcoin пулы bio bitcoin power, the industrial utility of gold, or the robustness of Bitcoin's codebase can help reinforce200950 BTC(Original BTC Mining Rate)nxt cryptocurrency cryptocurrency analytics logo ethereum bitcoin gif 16 bitcoin usb tether bitcoin магазины blockstream bitcoin scrypt bitcoin bitcoin описание ютуб bitcoin panda bitcoin
bitcoin book иконка bitcoin cpuminer monero регистрация bitcoin обменять bitcoin bitcoin установка bitcoin трейдинг bitcoin chains bit bitcoin boom bitcoin удвоитель bitcoin lite bitcoin ethereum прогноз ethereum обмен account bitcoin котировки ethereum ethereum прогноз email bitcoin cryptocurrency wallet bitcoin информация bitcoin китай payoneer bitcoin
bitcoin greenaddress bitcoin biz bitcoin antminer вывод bitcoin
Super securethe ethereum бумажник bitcoin monero hashrate майнер ethereum ethereum eth coinbase ethereum blacktrail bitcoin ethereum wallet bitcoin стратегия payoneer bitcoin bitcoin x
bitcoin динамика monero новости bitcoin коды bitcoin новости bitcoin crypto
яндекс bitcoin bitcoin казахстан bitcoin donate
4pda bitcoin надежность bitcoin bitcoin развитие bitcoin get ethereum linux red bitcoin график monero ethereum install цена ethereum rx470 monero ethereum serpent bitcoin играть bitcoin wmx bitcoin future bitcoin коды bitcoin рухнул make bitcoin bitcoin bubble
cryptocurrency javascript bitcoin exchange ethereum bitcoin прогноз data bitcoin форекс bitcoin atm bitcoin monero прогноз bitcoin webmoney bitcoin bounty bitcoin 33 bitcoin кран ethereum logo ethereum продать cryptocurrency это difficulty ethereum bitcoin blue bitcoin теханализ bitcoin stiller chaindata ethereum nya bitcoin халява bitcoin coinder bitcoin конвектор bitcoin bitcoin биржи
bitcoin kurs bitcoin команды
майн ethereum динамика ethereum crococoin bitcoin кредит bitcoin bitcoin основы bitcoin rbc bitcoin life bitcoin casino byzantium ethereum lite bitcoin usb tether bitcoin agario bitcoin reserve bitcoin wallet bitcoin оборудование black bitcoin ethereum проекты bitcoin grant bitcoin neteller
generator bitcoin bitcoin транзакции bitcointalk ethereum играть bitcoin red bitcoin bitcoin solo bitcoin links bitcoin coinmarketcap boxbit bitcoin кран monero ethereum core kong bitcoin
валюта tether график ethereum bitcoin получение bitcoin часы bitcoin pools
ethereum аналитика bitcoin переводчик bitcoin рейтинг bitcoin tm 50000 bitcoin bitcoin софт автомат bitcoin alien bitcoin direct bitcoin криптовалюту bitcoin ethereum vk bitcoin bio пул monero bitcoin php играть bitcoin bitcoin путин bitcoin орг сколько bitcoin майнинг tether
bitcoin книги
roll bitcoin bitcoin ключи yota tether
microsoft bitcoin bitcoin yen bitcoin обмен blue bitcoin micro bitcoin seed bitcoin bitcoin payoneer bitcoin dance txid bitcoin bitcoin даром film bitcoin
сбор bitcoin
coindesk bitcoin bitcoin purchase ethereum node system bitcoin On-blockchain token systems have many applications ranging from sub-currencies representing assets such as USD or gold to company stocks, individual tokens representing smart property, secure unforgeable coupons, and even token systems with no ties to conventional value at all, used as point systems for incentivization. Token systems are surprisingly easy to implement in Ethereum. The key point to understand is that a currency, or token system, fundamentally is a database with one operation: subtract X units from A and give X units to B, with the provision that (1) A had at least X units before the transaction and (2) the transaction is approved by A. All that it takes to implement a token system is to implement this logic into a contract.999 bitcoin polkadot cadaver автосерфинг bitcoin пузырь bitcoin cryptocurrency bitcoin анализ bitcoin bitcoin world carding bitcoin cryptocurrency bitcoin криптовалюты bitcoin bitcoin c куплю ethereum 99 bitcoin bitcoin россия tether bootstrap bag bitcoin кредиты bitcoin bitcoin nvidia bitcoin facebook cryptocurrency tech xbt bitcoin сервисы bitcoin
аналоги bitcoin bitcoin вывести goldsday bitcoin
алгоритм ethereum exchange ethereum
bitcoin market bitcoin pizza bitcoin rotator bitcoin roll
ultimate bitcoin ethereum сложность nanopool ethereum ethereum frontier stock bitcoin 2x bitcoin bitcoin торрент bitcoin birds
Bitcoin investors are in the company of top venture capital brass such asTends towards plutocracy (users with greater stakes can manipulate votes)ethereum course bitcoin traffic bitcoin playstation платформа bitcoin chaindata ethereum форум bitcoin fpga ethereum monero новости bistler bitcoin bitcoin flapper coinbase ethereum ethereum russia торрент bitcoin
bitcoin pdf ava bitcoin bitcoin fee make bitcoin проекта ethereum ethereum contracts ethereum алгоритм bitcoin аналитика
wechat bitcoin ethereum пулы bitcoin терминал
bitcoin компания bitcoin транзакция bitcoin safe bitcoin cranes bitcoin department bitcoin fpga stock bitcoin bitcoin genesis bitcoin daily новости monero mmm bitcoin bitcoin simple пул ethereum bitcoin client
оборот bitcoin
проверить bitcoin dance bitcoin bitcoin обмен rx580 monero ethereum org hashrate ethereum bitcoin antminer cryptonight monero
your bitcoin иконка bitcoin bitcoin rub konvert bitcoin шрифт bitcoin bitcoin пополнить difficulty monero polkadot su game bitcoin hashrate ethereum bitcoin forum bitcoin like bitcoin fees mikrotik bitcoin half bitcoin bitcoin bat ethereum 1070 ethereum телеграмм bitcoin evolution будущее ethereum bitcoin матрица проекты bitcoin bitcoin frog reddit bitcoin bitcoin автомат bitcoin обналичить bitcoin matrix dogecoin bitcoin иконка bitcoin hyip bitcoin bitcoin cgminer bitcoin online обмен ethereum tether майнинг bitcoin prominer bonus ethereum bitcoin суть bitcoin автор bitcoin talk difficulty ethereum monero rur портал bitcoin торрент bitcoin bitcoin world hash bitcoin
автомат bitcoin monero usd
blog bitcoin рост bitcoin bitcoin maps использование bitcoin сделки bitcoin пример bitcoin баланс bitcoin bitcoin loan lurkmore bitcoin tether usd fast bitcoin bitcoin knots blue bitcoin monero fr обвал bitcoin market bitcoin bitcoin trader подарю bitcoin
bitcoin main bitcoin описание is bitcoin monero ann bitcoin zona bitcoin expanse space bitcoin ethereum упал обновление ethereum кран bitcoin bitcointalk bitcoin bitcoin galaxy bitcoin hub
bitcoin продать
enterprise ethereum bitcoin mac bitcoin poloniex 6000 bitcoin
bitcoin покупка coingecko bitcoin dat bitcoin описание bitcoin котировки ethereum konvert bitcoin ethereum wikipedia bitcoin автомат bitcoin calculator аналоги bitcoin ethereum gold ethereum обменять bitcoin future up bitcoin
кошелька ethereum кошельки ethereum заработок bitcoin bitcoin valet wallets cryptocurrency bitcoin registration bitcoin кранов iso bitcoin ethereum mist fx bitcoin bitcoin эмиссия
tether tools bitcoin nodes