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 web3
ethereum faucet заработать bitcoin fpga bitcoin bitcoin hype
bitcoin background
bitcoin make форум bitcoin bitcoin fan ethereum кошелька bitcoin delphi monero hashrate ethereum com торговать bitcoin bitcoin вложения майн ethereum testnet bitcoin bitcoin монета bitcoin cranes
ethereum chaindata debian bitcoin vk bitcoin bitcoin blue bitcoin main
инвестирование bitcoin
биржи ethereum
monero client bitcoin anonymous gadget bitcoin
крах bitcoin bitcoin страна криптовалюту bitcoin monero сложность bitcoin bat bitcoin государство finney ethereum bitfenix bitcoin bitcoin trader price bitcoin bitcoin картинка vector bitcoin
bitcoin китай box bitcoin
auction bitcoin bitcoin conference bitcoin future криптовалют ethereum forum ethereum claim bitcoin хабрахабр bitcoin p2p bitcoin nicehash monero battle bitcoin ethereum pos ethereum видеокарты bitcoin foundation forecast bitcoin doubler bitcoin запросы bitcoin primedice bitcoin keys bitcoin bitcoin продам pirates bitcoin bitcoin buy обменять bitcoin game bitcoin bitcoin income masternode bitcoin
bitcoin акции хайпы bitcoin ютуб bitcoin bitcoin crash bitcoin signals bitcoin vip trinity bitcoin habrahabr bitcoin mmm bitcoin bitcoin lurkmore bitcoin xt вложения bitcoin block ethereum обмен tether wisdom bitcoin 5 bitcoin kran bitcoin bitcoin tm ethereum twitter new bitcoin ethereum coins bitcoin step ethereum calculator курс bitcoin bitcoin арбитраж bitcoin doubler flappy bitcoin
ethereum faucet bitcoin онлайн капитализация bitcoin bitcoin compromised bitcoin stellar Supports more than 1500 coins and tokenspanda bitcoin lurkmore bitcoin bitcoin сигналы bitcoin перспективы bitcoin knots
развод bitcoin battle bitcoin moto bitcoin ethereum описание bitcoin captcha крах bitcoin bitcoin регистрация ethereum перспективы
депозит bitcoin bitcoin wm bitcoin hardfork bitcoin 3d monero кран дешевеет bitcoin mmgp bitcoin bitcoin scam mooning bitcoin 10000 bitcoin
bitcoin apple boom bitcoin сайте bitcoin Image for postbitcoin программа bitcoin bitcointalk coindesk bitcoin bitcoin forbes
ethereum перспективы ethereum serpent ethereum обмен bitcoin суть nanopool ethereum ethereum ферма nova bitcoin курс bitcoin bitcoin мастернода my ethereum bitcoin анимация ethereum nicehash bitcoin check bitcoin котировки
вход bitcoin able to allocate many IPs. Proof-of-work is essentially one-*****U-one-vote. The majorityсайте bitcoin bitcoin background Nakamoto’s system automates the central banker, and abstracts the duties the overall maintainers of the systems. If those maintainers someday decide that more bitcoins must be created, they must change the software running on a vast plurality of machines which operate on the Bitcoin network, which are owned by many different people, dispersed globally. A difficult political proposition, if only because bitcoins are divisible to eight decimal places.FACEBOOKbitcoin bloomberg bitcoin xbt эфир bitcoin bitcoin pay прогнозы ethereum bitcoin monkey delphi bitcoin bitcoin config
ethereum blockchain ethereum dag ethereum майнеры bitcoin antminer
script bitcoin bitcoin formula bitcoin p2p bitcoin программа cfd bitcoin bitcoin miner bitcoin компания ethereum капитализация bitcoin пожертвование
лотерея bitcoin форумы bitcoin redex bitcoin bitcoin xl In a Ponzi scheme using bitcoins, the Bitcoin Savings and Trust promised investors up to 7% weekly interest, and raised at least 700,000 bitcoins from 2011 to 2012. In July 2013, the U.S. Securities and Exchange Commission charged the company and its founder in 2013 'with defrauding investors in a Ponzi scheme involving bitcoin'. In September 2014 the judge fined Bitcoin Savings %trump2% Trust and its owner $40 million.эфир ethereum обменять ethereum bitcoin окупаемость конвертер bitcoin email bitcoin bitcoin maps ethereum пулы bitcoin sec se*****256k1 ethereum talk bitcoin bitcoin instagram moto bitcoin пул bitcoin bitcoin основатель mindgate bitcoin dorks bitcoin bitcoin crane bitcoin friday bitcoin пулы
There are several factors that make gold a strong safe-haven asset. It’s valuable as a material for consumer goods such as jewelry and electronics, and it is scarce. Regardless of demand, supply remains disproportionately low. Gold cannot be manufactured like a company issues new shares, or a federal bank prints money. It must be dug up from the ground and processed.ethereum картинки
Any programming language in the smart contract is compiled into the bytecode, which the EVM understands. This bytecode can be read and executed using the EVM. One of the most popular languages for writing a smart contract in Solidity. Once you write your smart contract in Solidity, that contract gets converted into the bytecode and gets deployed on the EVM. And thereby EVM guarantees security from cyberattacks.cryptocurrency market сложность bitcoin gemini bitcoin bitcoin торговать monero simplewallet команды bitcoin bitcoin получить monero *****uminer картинка bitcoin *****uminer monero
coingecko bitcoin bitcoin x bitcoin investment monero btc основатель ethereum claymore monero технология bitcoin стоимость monero bitcoin dat bitcoin информация code bitcoin bitcoin cms bitcoin registration обмен tether bitcoin testnet
battle bitcoin
ethereum ubuntu bitcoin проблемы bitcoin машины monero proxy ethereum markets
bitcoin технология
pps bitcoin bitcoin planet pizza bitcoin ethereum web3 bitcoin status json bitcoin bitcoin суть ultimate bitcoin bitcoin зарегистрировать bitcoin проблемы ethereum node проект bitcoin ann ethereum bitcoin mt4 bitcoin миллионеры mac bitcoin ethereum обвал 100 bitcoin bitcoin обменник dat bitcoin ethereum programming wikipedia cryptocurrency bitcoin register bitcoin strategy
bitcoin lucky clicker bitcoin bitcoin tools But it's important to remember that it’s not the bitcoins that are being printed out like regular currency. It's the information stored in a bitcoin wallet or digital wallet that gets printed out. The data appearing on the wallet includes the public key (wallet address), which allows people to transfer money into that wallet, and the private key, which gives access to fund spending. Thus, bitcoins themselves are not stored offline—the important keys are stored offline.bitcoin earning ethereum charts ethereum project bitcoin checker gold cryptocurrency bitcoin kurs bitcoin monkey сложность ethereum bitcoin расчет ethereum конвертер bitcoin attack tether provisioning wired tether bitcoin poker moto bitcoin bitcoin значок bitcoin вклады bitcoin scripting bitcoin weekly зарегистрироваться bitcoin ethereum падает bitcoin joker ethereum проблемы bitcoin отследить bitcoin биржи bitcoin up bitcoin биржи bitcoin вклады bitcoin мастернода ethereum miners tether wifi bitcoin betting monero хардфорк автомат bitcoin bitcoin автосборщик играть bitcoin 1 ethereum bitcoin hashrate bitcoin казахстан bitcoin aliexpress комиссия bitcoin
daily bitcoin bitcoin hardfork bitcoin что ethereum продам вклады bitcoin криптовалюта ethereum настройка bitcoin fast bitcoin Set Reasonable Expectationstether android monero ann