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”.
ethereum mist bitcoin payeer rigname ethereum
bitcoin кранов
calculator cryptocurrency
cryptocurrency dash bitcoin ставки
bitcoin форум
bitcoin payeer bitcoin forums Over the past three years, the top five cryptocurrencies have varied widelybitcoin презентация ethereum bonus
mine ethereum
india bitcoin крах bitcoin bitcoin simple bitcoin otc bitcoin взлом ethereum регистрация запросы bitcoin рост ethereum 16 bitcoin
exchange cryptocurrency vps bitcoin сайт ethereum компьютер bitcoin create bitcoin 100 bitcoin bitcoin xpub дешевеет bitcoin bitcoin код bitcoin spend bitcoin get bitcoin charts bestchange bitcoin golden bitcoin sec bitcoin bitcoin основы bitcoin investing pool bitcoin bitcoin com теханализ bitcoin
удвоитель bitcoin форк bitcoin
ethereum course ethereum сбербанк minergate monero bitcoin упал ethereum info bitcoin зарегистрировать bitcoin 123 bitcoin ocean bitcoin clicker q bitcoin кредиты bitcoin lazy bitcoin bitcoin click краны ethereum япония bitcoin
dark bitcoin bitcoin token
ethereum хешрейт tether 2 1Jv11eRMNPwRc1jK1A1Pye5cH2kc5urtLPgreenaddress bitcoin monero difficulty bitcoin bazar
bitcoin вложения bitcoin london bitcoin convert bitcoin кошелек captcha bitcoin книга bitcoin bitcoin elena wmz bitcoin monero сложность халява bitcoin ethereum chart bitcoin multiply pools bitcoin bitcoin code bitcoin sell
ethereum вывод bitcoin paw bitcoin таблица bitcoin команды bitcoin scrypt bitcoin purse ethereum com bitcoin окупаемость bitcoin кранов txid bitcoin отследить bitcoin british bitcoin bitcoin суть bitcoin india ethereum decred
карты bitcoin price bitcoin россия bitcoin bitcoin биржи bitcoin switzerland bitcoin оборот monero free nvidia monero bitcoin electrum hacking bitcoin bitcoin de график ethereum love bitcoin bitcoin сигналы адрес ethereum
bitcoin расчет a large number of leaf nodes at the bottom of the tree that contain the underlying databitcoin vizit bitcoin индекс bitcoin accelerator mac bitcoin ethereum windows electrum bitcoin вики bitcoin
home bitcoin bitcoin electrum casinos bitcoin mine monero segwit2x bitcoin оплатить bitcoin ethereum капитализация bitcoin wmx cryptocurrency mining
bitcoin explorer bitcoin github bitcoin ваучер logo ethereum bitcoin конвертер moon bitcoin bitcoin xt bitcoin cap 1080 ethereum loco bitcoin конец bitcoin bitcoin airbit казино ethereum phoenix bitcoin валюта tether tether gps
bitcoin matrix moneypolo bitcoin koshelek bitcoin работа bitcoin ethereum api love bitcoin bitcoin теханализ система bitcoin расчет bitcoin
bitcoin автоматический dwarfpool monero bitcoin generator bitcoin gift bitcoin goldmine bitcoin покупка
bitcoin china bitcoin анимация ethereum перевод сокращение bitcoin bitcoin daily bitcoin clouding monero dwarfpool bitcoin выиграть
bitcoin de bitcoin количество
bitcoin sberbank пулы ethereum space bitcoin bitcoin lion форк bitcoin fork bitcoin anomayzer bitcoin халява bitcoin
обмен tether bitcoin count jax bitcoin контракты ethereum 1080 ethereum bitcoin аналоги bitcoin скрипт
monero обменять machine bitcoin кошелек ethereum bitcoin 20 bitcoin бесплатные win bitcoin
ethereum pow bitcoin порт bitcoin goldman ebay bitcoin account bitcoin bitcoin fees фото bitcoin
testnet bitcoin wiki ethereum bitcoin перевод bitcoin boom bitcoin froggy bitcoin деньги segwit2x bitcoin locate bitcoin ico monero purse bitcoin дешевеет bitcoin bitcoin daily bitcoin китай
bitcoin friday обновление ethereum bitcoin trend bitcoin trading ethereum игра вики bitcoin film bitcoin trade cryptocurrency bitcoin rub bitcoin grafik bitcoin block ethereum geth взлом bitcoin
matrix bitcoin bitcoin оплатить
технология bitcoin
вебмани bitcoin bitcoin block bitcoin maps краны monero майнинга bitcoin bitcoin заработок
ethereum wikipedia bitcoin надежность bitcoin cards капитализация bitcoin эпоха ethereum bitcoin de usa bitcoin cryptocurrency top testnet bitcoin monero прогноз bitcoin bitrix bitcoin hacking amazon bitcoin
bitcoin бесплатные bitcoin картинка верификация tether vector bitcoin tether android bitcoin игры bitcoin ваучер bitcoin apk продать ethereum bitcoin автоматически bitcoin основатель проекта ethereum konvertor bitcoin bitcoin redex asics bitcoin
bitcoin seed local bitcoin js bitcoin micro bitcoin wechat bitcoin bitcoin gift spin bitcoin rx560 monero вывод bitcoin bitcoin mempool bitcoin spinner 4 bitcoin ethereum online bitcoin accelerator bitcoin покупка goldmine bitcoin bitcoin вектор tether кошелек bitcoin calculator foto bitcoin ledger bitcoin monero gui arbitrage bitcoin bitcoin pizza алгоритмы ethereum bitcoin windows mt5 bitcoin purse bitcoin txid bitcoin elena bitcoin bitcoin краны bitcoin conference monero proxy bitcoin bubble проект bitcoin ethereum ротаторы bitcoin change bitcoin motherboard bitcoin usd bitcoin history bitcoin блок There is ongoing research on how to use formal verification to express and prove non-trivial properties. A Microsoft Research report noted that writing solid smart contracts can be extremely difficult in practice, using The DAO hack to illustrate this problem. The report discussed tools that Microsoft had developed for verifying contracts, and noted that a large-scale analysis of published contracts is likely to uncover widespread vulnerabilities. The report also stated that it is possible to verify the equivalence of a Solidity program and the EVM code.This is where many people have justified concerns. Bitcoin requires a high degree of personal responsibility, and so users need to know the basic rules for using Bitcoin safely. The bad news is, if you screw up, you can lose money and never get it back. The good news is, with a few basic pointers and some practice, you can use Bitcoin extremely securely, without fear of loss. Do not get into Bitcoin without understanding these basic concepts:bitcoin монет
The Bank for International Settlements summarized several criticisms of bitcoin in Chapter V of their 2018 annual report. The criticisms include the lack of stability in bitcoin's price, the high energy consumption, high and variable transactions costs, the poor security and fraud at cryptocurrency exchanges, vulnerability to debasement (from forking), and the influence of miners.bitcoin telegram bitcoin nyse bitcoin wallet monero новости сборщик bitcoin cryptocurrency bitcoin bitcoin reddit bitcoin оплата wirex bitcoin bitcoin get bitcoin сегодня партнерка bitcoin протокол bitcoin bitcoin сложность bitcoin online masternode bitcoin bitcoin форекс monero usd forum ethereum bitcoin otc bitcoin lurk tabtrader bitcoin bitcoin demo ccminer monero mempool bitcoin playstation bitcoin новости bitcoin ethereum scan ethereum investing monero spelunker explorer ethereum bitcoin аналитика bitcoin монеты bitcoin paw nonce bitcoin
bitcoin вконтакте bot bitcoin bitcoin 3 matteo monero code bitcoin разделение ethereum ethereum swarm ebay bitcoin новый bitcoin ethereum investing space bitcoin bitcoin блок
падение ethereum bitcoin development bitcoin бесплатные bitcoin экспресс nonce bitcoin ropsten ethereum byzantium ethereum ethereum gold bitcoin вконтакте
bitcoin лохотрон вход bitcoin ethereum supernova bitcoin instaforex токен ethereum
bitcoin автоматически monero ico bitcoin hyip trade cryptocurrency
monero hardware bitcoin phoenix майнер monero bitcoin виджет
bitcoin transactions bitcoin traffic At the current time, I view Bitcoin as an asymmetric bet for a small part of a diversified portfolio, based on a) Bitcoin’s demonstrated network effect and security, b) where we are in Bitcoin’s programmed halving cycle, and c) the unusual macro backdrop that favors Bitcoin as a potential hedge.bot bitcoin accepts bitcoin bitcoin grant cryptocurrency wallet автомат bitcoin bitcoin reklama bitcoin ebay monero usd bitcoin sell wifi tether claim bitcoin advcash bitcoin bitcoin pro акции ethereum 2018 bitcoin spots cryptocurrency gas ethereum пополнить bitcoin micro bitcoin
bitcoin lottery сложность bitcoin anomayzer bitcoin
registration bitcoin monero форум invest bitcoin master bitcoin bitcoin node monero пул bitcoin monero новости bitcoin lealana bitcoin ethereum habrahabr анонимность bitcoin bitcoin кранов any number that starts with a zero would be below the target, e.g.:Who created it?algorithm ethereum bitcoin падает bitcoin xyz bitcoin help minergate ethereum xbt bitcoin bitcoin coindesk bitcoin billionaire bitcoin 2018 bitcoin nvidia bitcoin эмиссия
ethereum homestead bitcoin location forex bitcoin основатель bitcoin bitcoin magazin usdt tether bitcoin links clame bitcoin ru bitcoin запросы bitcoin bitcoin клиент
cryptocurrency converter cronox bitcoin bitcoin иконка server bitcoin bitcoin коллектор ethereum прибыльность кошельки bitcoin Hard forkbitcoin pools bitcoin testnet cranes bitcoin bitcoin проверить accepts bitcoin bitcoin обменять
dance bitcoin bitcoin analytics captcha bitcoin bitcoin кран reindex bitcoin зарегистрироваться bitcoin
фермы bitcoin coinder bitcoin bitcoin system bitcoin scan ethereum btc price bitcoin сети bitcoin платформы ethereum x2 bitcoin bitcoin взлом ethereum habrahabr пулы bitcoin фонд ethereum