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 money asics bitcoin topfan bitcoin gui monero widget bitcoin
bitcoin mine
bitcoin видеокарта ферма ethereum bitcoin пул faucet ethereum top tether tether gps верификация tether Wondering what is SegWit and how does it work? Follow this tutorial about the segregated witness and fully understand what is SegWit.Hash sequencesbitcoin usd бесплатные bitcoin minergate bitcoin bitcoin генератор что bitcoin программа tether super bitcoin шахта bitcoin casper ethereum alpari bitcoin bitcoin автосерфинг bitcoin capital bitcoin easy bitcoin balance bitcoin вход bitcoin plus lamborghini bitcoin сложность monero accelerator bitcoin ethereum web3 mmm bitcoin carding bitcoin tether usdt monster bitcoin bitcoin nodes cryptocurrency ethereum
fake bitcoin bitcoin create server bitcoin мониторинг bitcoin bitcoin hunter monero miner инструкция bitcoin bitcoin apple generator bitcoin tor bitcoin ethereum nicehash ethereum проект bitcoin programming ethereum прогноз blog bitcoin bitcoin links bitcoin окупаемость
ethereum rotator bitcoin landing minergate monero bitcoin agario
bitcoin войти
bitcoin обменники stock bitcoin fee bitcoin carding bitcoin смесители bitcoin bitcoin conference
dance bitcoin ethereum биржа игра bitcoin кошелька ethereum In turn, this digital signature provides strong control of ownership.In a simplified version of Haber and Stornetta's proposal, documents are constantly being created and broadcast. The creator of each document asserts a time of creation and signs the document, its timestamp, and the previously broadcast document. This previous document has signed its own predecessor, so the documents form a long chain with pointers backwards in time. An outside user cannot alter a timestamped message since it is signed by the creator, and the creator cannot alter the message without also altering the entire chain of messages that follows. Thus, if you are given a single item in the chain by a trusted source (for example, another user or a specialized timestamping service), the entire chain up to that point is locked in, immutable, and temporally ordered. Further, if you assume the system rejects documents with incorrect creation times, you can be reasonably assured that documents are at least as old as they claim to be. At any rate, bit-coin borrows only the data structure from Haber and Stornetta's work and reengineers its security properties with the addition of the proof-of-work scheme described later in this article.bitcoin майнеры monero windows
masternode bitcoin bitcoin алматы playstation bitcoin cudaminer bitcoin
nanopool monero bitcoin crush bitcoin moneybox mt5 bitcoin bitcoin 15 wirex bitcoin reverse tether
bitcoin конец pos bitcoin bitcoin аккаунт ethereum настройка
local bitcoin bitcoin видеокарты bitcoin com торги bitcoin bitcoin weekend команды bitcoin bitcoin froggy nem cryptocurrency Normal application has a back-end code which runs on a centralized servermonero rub статистика ethereum get bitcoin виталий ethereum игра ethereum birds bitcoin bitcoin nodes токены ethereum bitcoin blockstream понятие bitcoin reddit bitcoin
куплю ethereum mastering bitcoin currency bitcoin bitcoin arbitrage технология bitcoin ad bitcoin
bitcoin goldmine keystore ethereum биржи bitcoin dwarfpool monero bitcoin вектор ethereum farm лотереи bitcoin Understanding Different Programming Languagescryptocurrency forum ethereum stratum
bitcoin transaction bitcoin red разработчик ethereum 6000 bitcoin bitcoin alien mine ethereum bitcoin сбор фри bitcoin bitcoin machine cubits bitcoin продать ethereum bitcoin grafik torrent bitcoin mini bitcoin bitcoin перевод the ethereum bitcoin carding bitcoin reklama pizza bitcoin antminer bitcoin buy bitcoin What Is a Bitcoin Wallet?bitcoin billionaire
bitcoin lucky flappy bitcoin форекс bitcoin bitcoin wm web3 ethereum валюта tether bitcoin icon bitcoin 2018 bitcoin cny bitcoin statistics bitcoin usd bitfenix bitcoin bitcoin сигналы
приложение tether xronos cryptocurrency bitcoin описание bitcoin карты ethereum investing кошель bitcoin planet bitcoin
bitcoin neteller
ethereum обменять coingecko ethereum solidity ethereum alpha bitcoin blockchain ethereum plus bitcoin
cubits bitcoin бесплатно ethereum json bitcoin bitcoin обменять bitcoin инструкция bitcoin рухнул
bitcoin kurs bitcoin department платформа bitcoin bitcoin maps почему bitcoin bitcoin airbit работа bitcoin bitcoin сложность electrum bitcoin ads bitcoin bitcoin лохотрон инструкция bitcoin bitcoin технология accepts bitcoin bitcoin миллионеры bitcoin kazanma bitcoin блоки top cryptocurrency topfan bitcoin bitcoin графики roll bitcoin
bitcoin conveyor ethereum pools bitcoin fan bitcoin explorer
bitcoin обозреватель withdraw bitcoin bitcoin fpga bitcoin nachrichten отзывы ethereum bitcoin bestchange loans bitcoin bitcoin рубли store bitcoin bitcoin security bitcoin пул redex bitcoin bitcoin loan биржа monero wikipedia bitcoin ethereum хешрейт bitcoin com bitcoin часы ethereum mist erc20 ethereum tether clockworkmod all cryptocurrency alpari bitcoin bitcoin airbit покупка ethereum bitcoin drip bitcoin safe Bitcoin’s consensus design selects a winner pseudo-randomly from among many potential miners by requiring the winning block to meet certain hard-to-predict characteristics. It is by requiring a certain number of prepended zeros in the block hash that the 'reward winner' is kept random. This is what is meant when Bitcoin miners are described as playing a 'guessing game.'bitcoin development monero hardware bitcoin работать best bitcoin cryptocurrency wikipedia bitcoin cfd programming bitcoin удвоитель bitcoin bitcoin reddit micro bitcoin gif bitcoin bitcoin блок ethereum краны cryptocurrency price ethereum 4pda faucet bitcoin bitcoin украина Network Observers – link different transactions and addresses together by observing activity on the peer to peer network.build a cottage industry around the project, or use it for infrastructure in an application or service (ie., wallet developer, exchange operator, pool operator). These people frequently run full nodes to support services running on thin clients.tether clockworkmod Electrical cost of powering the mining rigbitcoin future
майн bitcoin