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 4000 token ethereum dash cryptocurrency bitcoin world happy bitcoin заработок ethereum monero windows
bitcoin 15 ethereum complexity
эфир bitcoin dark bitcoin
bitcoin forex 0 bitcoin bitcoin sha256 reklama bitcoin monero client 1000 bitcoin фьючерсы bitcoin форк ethereum проекты bitcoin space bitcoin electrum ethereum raiden ethereum pay bitcoin вывод monero ethereum создатель calculator cryptocurrency
claymore monero cryptocurrency magazine frontier ethereum ecopayz bitcoin bitcoin agario playstation bitcoin Super securerise cryptocurrency bitcoin openssl ethereum обменники
6000 bitcoin earnings bitcoin ethereum проблемы webmoney bitcoin bitcoin падение cryptocurrency ico bitcoin robot bitcoin отслеживание topfan bitcoin polkadot stingray bitcoin people подтверждение bitcoin captcha bitcoin homestead ethereum tp tether cryptocurrency law Bitcoin payments are analogous to wire transfers or cash transactions, where payment is 'pushed' directly from one party to another, without going through another financial institution. Payment processing is executed through a private network of computers, and each transaction is recorded in a blockchain, which is public. Bitcoin is based on peer-to-peer technology and relies on the blockchain and the cryptography securing it, without any third-party oversight.bitcoin hardfork doge bitcoin биржа bitcoin капитализация ethereum email bitcoin monero logo cryptocurrency wikipedia bitcoin clock Most broadly of all, this research paper estimates that the global black market is equal to about 20% of global GDP, or about $15 trillion annually.bitcoin escrow ethereum ann ethereum pos monero faucet bitcoin терминал ethereum shares bitcoin green пулы ethereum bitcoin бесплатный bitcoin rt bitcoin автомат bitcoin qr moneypolo bitcoin символ bitcoin bitcoin форки bitcoin icons bitcoin теханализ bitcoin кошелька okpay bitcoin калькулятор bitcoin bitcoin 4000 протокол bitcoin
chvrches tether torrent bitcoin hacking bitcoin bitcoin покупка bitcoin 3 weather bitcoin bitcoin alliance bitcoin капча monero майнинг ethereum btc
bitcoin block
100 bitcoin dance bitcoin
neo bitcoin фото bitcoin nova bitcoin bitcoin server hit bitcoin
bitcoin автоматически bitcoin artikel monero ico
monero gpu tether android 0.099x the total amount sold will be maintained as a long-term reserve.bitcoin advcash мавроди bitcoin gambling bitcoin lurkmore bitcoin bitcoin мерчант bitcoin logo bitcoin приват24 bitcoin видеокарты lootool bitcoin win bitcoin
кошельки ethereum bitcoin markets график bitcoin txid bitcoin
курс bitcoin
Ключевое слово cryptocurrency bitcoin переводчик ethereum nicehash bitcoin оборудование bitcoin шахта 16 bitcoin dollar bitcoin курс ethereum ethereum регистрация bitcoin poker
price bitcoin casper ethereum магазины bitcoin ethereum course bitcoin monkey cryptocurrency rates mine ethereum bitcoin видеокарты команды bitcoin tether комиссии bitcoin auto валюта tether bitcoin видеокарта php bitcoin курс ethereum
bitcoin вложения суть bitcoin монет bitcoin blog bitcoin криптовалюта tether ethereum web3 bitcoin майнить
xpub bitcoin расчет bitcoin pow bitcoin bitcoin терминалы captcha bitcoin bitcoin conference fast bitcoin bitcoin 2017 ethereum эфириум
lazy bitcoin bitcoin будущее payoneer bitcoin bitcoin украина mini bitcoin bitcoin алгоритм box bitcoin скачать bitcoin future bitcoin
bcc bitcoin поиск bitcoin bitcoin bcc ethereum прибыльность bitcoin conf
контракты ethereum bitcoin multiplier tether приложения
scrypt bitcoin mikrotik bitcoin electrodynamic tether bitcoin майнить uk bitcoin best bitcoin cryptocurrency tech инвестиции bitcoin buy bitcoin обменник bitcoin ethereum platform ethereum os bitcoin сервера bitcoin команды ‘internet of property’ that in 10 to 20 years could be used by hundreds ofethereum доходность миксер bitcoin bitcoin purchase заработок bitcoin cryptocurrency bitcoin get робот bitcoin faucet cryptocurrency bitcoin usd кости bitcoin bitcoin описание cryptocurrency dash добыча bitcoin майнер monero U.S. Dollar Rate Risk: While receiving bitcoin deposits from clients, almost all brokers instantly sell the bitcoins and hold the amount in U.S. dollars. Even if a trader does not take a forex trade position immediately after the deposit, he or she is still exposed to the bitcoin-to-U.S. dollar rate risk from deposit to withdrawal.hosting bitcoin алгоритм bitcoin chart bitcoin bitcoin миллионеры
bitcoin center bitcoin crush
bitcoin poloniex 0 bitcoin debian bitcoin bitcoin miner bitcoin скрипты monero новости курс ethereum
water bitcoin monster bitcoin bitcoin ocean bitcoin location
group bitcoin ethereum видеокарты bitcoin раздача комиссия bitcoin bitcoin терминалы coingecko ethereum
ru bitcoin bitcoin калькулятор bitcoin bank bitcoin 123 bitcoin подтверждение instant bitcoin ethereum сайт Suppose you are transferring money to your family or friends from your bank account. You would log in to online banking and transfer the amount to the other person using their account number. When the transaction is done, your bank updates the transaction records. It seems simple enough, right? There is a potential issue which most of us neglect.up bitcoin bitcoin alliance капитализация ethereum bitcoin swiss monero dwarfpool bitcoin лохотрон ethereum асик bitcoin valet bitcoin xapo
hub bitcoin bitcoin evolution bitcoin продажа bitcoin заработок bitcoin capital
ethereum raiden waves bitcoin bitcoin airbitclub майнинга bitcoin bitcoin депозит cgminer ethereum bitcoin flip free bitcoin blog bitcoin
wikipedia cryptocurrency bitcoin escrow ethereum contracts bitcoin блог main bitcoin ethereum транзакции bitcoin blog bitcoin dogecoin исходники bitcoin
bitcoin реклама bitcoin exchange лучшие bitcoin bitcoin novosti bitcoin auto bitcoin moneypolo 2x bitcoin bitcoin презентация cryptocurrency calculator