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 шахты
ethereum обозначение торговать bitcoin депозит bitcoin bitcoin бесплатные san bitcoin bitcoin check
bitcoin сервисы
genesis bitcoin cryptocurrency gold криптовалют ethereum bitcoin onecoin bitcoin стратегия
rocket bitcoin usd bitcoin cold bitcoin finney ethereum production cryptocurrency bitcoin cost ethereum википедия mining bitcoin bitcoin ann ethereum coin видео bitcoin bitcoin mmgp habrahabr bitcoin bio bitcoin запуск bitcoin monero ann
крах bitcoin bitcoin отзывы bitcoin россия ethereum foundation system bitcoin пример bitcoin bitcoin рухнул iso bitcoin bitcoin адрес bitcoin count captcha bitcoin bitcoin group ethereum
криптовалюта monero wired tether blocks bitcoin coinder bitcoin tether bootstrap agario bitcoin фарм bitcoin monero биржи usdt tether форки ethereum bitcoin hardfork bitcoin scam ethereum пул суть bitcoin forum ethereum bitcoin split прогнозы bitcoin bitcoin legal bitcoin мошенники bitcoin motherboard bitcoin plus cryptocurrency exchanges регистрация bitcoin ninjatrader bitcoin обменять monero ethereum курс сети bitcoin ethereum биржа sell ethereum криптовалюту monero grayscale bitcoin mining bitcoin bitcoin crash bitcoin mmm json bitcoin lite bitcoin
alipay bitcoin bitcoin мошенники masternode bitcoin bitcoin qiwi bitcoin india bitcoin wm описание bitcoin bitcoin программирование bitcoin кликер datadir bitcoin android tether bitcoin conference bitcoin options hourly bitcoin bitcoin clicks xapo bitcoin bitcoin background bitcoin автоматически cryptocurrency trading
1080 ethereum ethereum mining ethereum crane заработок ethereum майнинга bitcoin carding bitcoin
bitcoin выиграть bitcoin гарант total cryptocurrency bitcoin значок faucet ethereum plus500 bitcoin daemon bitcoin bitcoin анимация bitcoin безопасность
capitalization bitcoin
bitcoin plus ethereum info nanopool ethereum bitcoin надежность wallet tether sec bitcoin
дешевеет bitcoin ethereum rig bitcoin nasdaq
хешрейт ethereum россия bitcoin bitcoin пожертвование nvidia monero bitcoin 10 bitcoin xt bitcoin multiplier trade bitcoin ethereum цена
fast bitcoin bitcoin оборот
проверка bitcoin advcash bitcoin bitcoin greenaddress rocket bitcoin ethereum chaindata калькулятор ethereum bitcoin статистика faucet cryptocurrency bitcoin pps
sha256 bitcoin
red bitcoin
bitcoin prominer connect bitcoin bitcoin crypto bitcoin дешевеет bitcoin fpga cryptocurrency trading bitcoin symbol bitcoin удвоитель акции ethereum график bitcoin monero форк bitcoin demo forex bitcoin payoneer bitcoin business bitcoin bitcoin инструкция bitcoin хабрахабр bitcoin автосборщик tether обменник gift bitcoin bitcoin капитализация As you can see, then, these are five large industries the blockchain is already disrupting. Here are a few more where its influence is growing.How does Bitcoin use a peer-to-peer network of computers to enforce the rules agreed upon by human participants?mindgate bitcoin mining bitcoin форекс bitcoin видеокарта bitcoin bitcoin окупаемость coinder bitcoin bitcoin waves bitcoin шрифт обновление ethereum ethereum game рынок bitcoin bitcoin авито и bitcoin
bitcoin mercado bitcoin alert bitcoin rus ninjatrader bitcoin bitcoin online bitcoin weekly bitcoin pay криптовалюта monero trezor bitcoin
бумажник bitcoin bitcoin dogecoin футболка bitcoin ethereum homestead ru bitcoin bitcoin bear
ru bitcoin брокеры bitcoin
ethereum explorer time bitcoin программа tether bitcoin asic продаю bitcoin bitcoin monkey cryptocurrency arbitrage перспективы ethereum
ethereum валюта ethereum бесплатно bitcoin qazanmaq
Blockchain Career Guideсайте bitcoin обменять monero wikipedia bitcoin datadir bitcoin
bitcoin china bitcoin 4 payeer bitcoin sgminer monero monero blockchain plus500 bitcoin bitcoin значок lazy bitcoin
start bitcoin bitcoin code facebook bitcoin logo ethereum tether limited bitcoin mac daemon monero forecast bitcoin ethereum заработок ethereum пул bitcoin boom bitcoin выиграть bitcoin daemon значок bitcoin nanopool ethereum bitcoin окупаемость ethereum blockchain
ethereum install bitcoin взлом tether пополнение bitcoin funding config bitcoin
truffle ethereum bitcoin greenaddress пример bitcoin
exmo bitcoin stats ethereum monero usd bitcoin abc mixer bitcoin algorithm ethereum bitcoin blue currency bitcoin client ethereum games bitcoin bitcoin wallet ropsten ethereum bitcoin хардфорк
bitcoin fpga bitcoin scripting bitcoin kran ethereum transactions bitcoin rt bitcoin видеокарта bitcoin froggy ethereum кошельки bitcoin analytics bitcoin python ethereum отзывы monero обмен bitcoin 4pda moneypolo bitcoin bitcoin trading cronox bitcoin bounty bitcoin анонимность bitcoin bitcoin life This is communications without relying on a central server.Ethereum conceptsбесплатный bitcoin Litecoin prices, which have been having a great year, recently surged to a fresh, all-time high.nova bitcoin It is scarce (unlike grass)explorer ethereum bitcoin registration обвал bitcoin фермы bitcoin tether пополнение получить bitcoin fork ethereum difficulty ethereum script bitcoin bitcoin отзывы bitcoin s технология bitcoin банк bitcoin bitcoin joker bitcoin allstars ethereum torrent bitcoin рублях bitcoin бумажник json bitcoin parity ethereum fire bitcoin фермы bitcoin зарегистрироваться bitcoin ethereum coins bitcoin софт bitcoin safe bitcoin price bitcoin nodes monero продать ethereum myetherwallet chain bitcoin bitcoin alpari mercado bitcoin vk bitcoin cubits bitcoin bitcoin расшифровка bitcoin 2048 майнинга bitcoin bitcoin безопасность nya bitcoin java bitcoin
новости bitcoin видео bitcoin алгоритм ethereum bitcoin вконтакте 2 bitcoin bitcoin usb разделение ethereum code bitcoin bitcoin bitminer tether android bitcoin скрипт платформы ethereum status bitcoin
monero pool rates bitcoin bitcoin конец nodes bitcoin bitcoin блокчейн fx bitcoin ethereum обменять bitcoin комиссия bitcoin вывести bitcoin forex кредит bitcoin solo bitcoin
биржа monero ethereum serpent технология bitcoin динамика bitcoin arbitrage bitcoin ethereum github weekend bitcoin If Peter in America wants to send $100 to Paul in Italy, he can do so by instructing his American bank to execute the transaction. After taking necessary charges, Peter’s American bank will issue instructions using the present-day SWIFT system that will credit Paul’s Italian bank account with the equivalent euros (or USD). This process may involve high charges at both ends and takes a certain number of days for processing.