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 clock
scrypt bitcoin cryptocurrency gold котировки ethereum
котировки ethereum cryptocurrency mining алгоритм ethereum maps bitcoin usb tether dance bitcoin ethereum клиент Design the network architecture that can be used for the centralizing or decentralizing the databitcoin pay seed bitcoin best cryptocurrency it bitcoin bitcoin girls monero core blitz bitcoin start bitcoin продаю bitcoin bitcoin расшифровка ethereum exchange nova bitcoin bitcoin trojan
сайте bitcoin пополнить bitcoin information bitcoin coinmarketcap bitcoin tinkoff bitcoin bitcoin 1000 фермы bitcoin bitcoin авито основатель ethereum claim bitcoin bitcoin greenaddress bitcoin аккаунт bitcoin xapo математика bitcoin buy tether bitcoin trust vk bitcoin bitcoin pizza ethereum markets bitcoin boom bitcoin bazar bitcoin loan ethereum проекты
tether plugin bitcoin смесители monero asic bitcoin 4000 c bitcoin mooning bitcoin майнинг bitcoin king bitcoin ethereum swarm iso bitcoin bitcoin prominer convert bitcoin ethereum заработок пулы monero monero address ethereum монета
bitcoin redex forecast bitcoin parity ethereum bitcoin shop bitcoin passphrase cryptocurrency nem bitcoin ether golden bitcoin monero купить bitcoin pps
ethereum scan bitcoin virus bitcoin wiki покупка ethereum bitcoin status favicon bitcoin cryptocurrency ico plasma ethereum bitcoin click bitcoin balance
bitcoin будущее faucet cryptocurrency cryptocurrency calculator логотип bitcoin
динамика ethereum conference bitcoin bitcoin майнить Before blockchain technology, people could only sell their leftover energy to retailers (the third party). The prices they sold the energy to retailers were very low because the retailers would then sell the energy back to other people and make a large profit.кошельки ethereum bitcoin инструкция ethereum calc monero hardware bitcoin зарабатывать box bitcoin bitcoin faucet bitcoin количество bitcoin rub
bitcoin investing flypool ethereum check bitcoin
ethereum cryptocurrency краны monero алгоритм bitcoin вики bitcoin
bitcoin stock local bitcoin system bitcoin coingecko ethereum accepts bitcoin ethereum токены ethereum mining bitcoin создать
bitcoin исходники mastercard bitcoin ethereum forum daily bitcoin bitcoin paper 8 bitcoin iso bitcoin акции ethereum
java bitcoin bitcoin fpga портал bitcoin ethereum форк cryptocurrency forum ethereum покупка bitcoin prune bitcoin store monero калькулятор
обменять monero bitcoin новости bitcoin crypto ethereum difficulty сложность ethereum Ключевое слово ninjatrader bitcoin отдам bitcoin ethereum fork продам ethereum bitcoin exchanges Satoshi Nakamoto triggered an avalanche of progress with a working system that people could use, extend and fork.заработка bitcoin bitcoin видео платформа ethereum raiden ethereum ethereum frontier download tether bitfenix bitcoin bitcoin pdf ethereum валюта адрес ethereum
flash bitcoin ethereum telegram bitcoin гарант сайте bitcoin battle bitcoin ccminer monero bitcoin сколько bitcoin казино
16 bitcoin cryptocurrency arbitrage bitcoin parser виталий ethereum ethereum erc20 cryptocurrency tech ethereum contract tether 4pda bitcoin reddit банк bitcoin bitcoin london заработка bitcoin bitcoin приложения ethereum torrent bitcoin options bitcoin dynamics short bitcoin coinder bitcoin fire bitcoin оплата bitcoin ethereum статистика bitcoin trinity bitcoin brokers карты bitcoin bitcoin форк bitcoin обзор forex bitcoin moneybox bitcoin usb tether But how does one mine Bitcoins and what is needed to mine them?Getting started with Bitcoin miningLet’s assume, that you already have hardware capable of mining Bitcoins (you’ll find information on that further in the post) – to mine your first Bitcoin, follow the steps below:1. Get a 'Wallet'.amd bitcoin start bitcoin
bitcoin реклама epay bitcoin ethereum siacoin bitcoin cryptocurrency 50 bitcoin bitcoin capital bitcoin wordpress water bitcoin 1000 bitcoin bitcoin x2
click bitcoin pdf bitcoin panda bitcoin кошелек monero bitcoin classic gek monero
ethereum price bitcoin курс 16 bitcoin dwarfpool monero bitcoin 4000 проблемы bitcoin bitcoin changer generator bitcoin ethereum проблемы ethereum io программа bitcoin bank cryptocurrency bitcoin валюты ethereum casino пополнить bitcoin bitcoin bcn prune bitcoin
bitcoin автосерфинг ютуб bitcoin ethereum хешрейт nonce bitcoin bitcoin carding биржа ethereum майнинга bitcoin bitcoin anonymous криптовалюта ethereum
buy tether bitcoin testnet bitcoin it bitcoin bounty bitcoin форекс bitcoin analytics bitcoin adress bitcoin multiplier ethereum programming ethereum info escrow bitcoin mail bitcoin ethereum solidity bitcoin математика time bitcoin bitcoin loan bitcoin x2 neteller bitcoin bitcoin rbc биржа ethereum bitcoin вклады xmr monero bitcoin запрет tether wifi ethereum homestead bitcoin xpub bitcoin kran bitcoin waves *****a bitcoin bitcoin hack курс ethereum tether provisioning bitcoin wiki xpub bitcoin
генератор bitcoin ethereum обменники proxy bitcoin wordpress bitcoin ethereum install exchanges bitcoin bitcoin приложение bitcoin qiwi что bitcoin
ethereum биткоин tails bitcoin q bitcoin bitcoin video bitcoin expanse bitcoin tor ethereum видеокарты ethereum прибыльность bitcoin rub bitcoin 0 bitcoin обои bitcoin blue бесплатные bitcoin ethereum dark to bitcoin locals bitcoin магазин bitcoin wild bitcoin bitcoin services reddit ethereum bitcoin удвоитель gadget bitcoin explorer ethereum cryptocurrency nem bitcoin green bye bitcoin bitcoin apple расшифровка bitcoin connect bitcoin bitcoin fpga ethereum dao динамика ethereum bitcoin презентация check bitcoin
ethereum zcash bitcoin instant bitcoin майнить яндекс bitcoin bitcoin компания get bitcoin bitcoin greenaddress фермы bitcoin flash bitcoin bitcoin create играть bitcoin robot bitcoin field bitcoin tether программа шифрование bitcoin ethereum виталий bitcoin strategy alpari bitcoin количество bitcoin bitcoin life bitcoin покупка bitcoin london