Author

Topic: Softfork vs Hard-fork? (Read 616 times)

legendary
Activity: 3472
Merit: 4801
September 08, 2016, 12:38:51 PM
#14
Not everything that franky1 says is true.

He's touched on some of the topics, and given a reasonable overview, but he has his own personal understanding about the limitations of hard forks and soft forks and he has an agenda that he tries to push: to discourage soft forks and encourage hard forks.  As such, he's left out important details, and he's included some propaganda in his response.

As an example of where Franky has made a mistake...

A softfork is not "compatible" per-se with old nodes, because old nodes dont continue to check the data of a softfork.

A softfork uses a flag indicating that a certain type of transaction should NOT be checked. Instead the transaction is blindly passed on by any node that is not running the new software. This trick then allows anything to happen simply by using the flag that tells old nodes not to check whatever data appears after it.

Softforks absolutely can be completely compatible with old nodes.  The general rule is that a soft fork requires enough hashpower to agree with the change that they can overcome any competing blocks generated by miners that don't agree.  Technically this only requires 51% of the global hashpower, but it is more frequently triggered with a much larger percentage (to keep the change stable and behavior predictable).

Here's a theoretical example of the difference between a soft fork and a hard fork:

Currently the block subsidy is 12.5 BTC.  However, the protocol does not require that the miner or pool collect the full 12.5 BTC if they don't want to.  A miner could just collect 10 new BTC from a solved block, and the entire network would be perfectly happy with that.  The protocol only prevents a miner from collecting MORE THAN the sum of the block subsidy plus the transaction fees of all the transactions in the block.

So, if we wanted to increase the block subsidy from 12.5 BTC to 15 BTC...
That would be a HARD FORK.  Every node on the entire network (both miners and non-miners) would reject those blocks as being invalid.  If there was only 1 node, and 1 miner left running the old software, then the old rules would be enforced by that 1 node and 1 miner.  The blockchain would split and there would be 2 blockchains with 2 new types of blocks (those with 12.5 BTC subsidy and those with 15 BTC subsidy).

Both chains would share a common history since the new software would still accept the old (pre-fork) blocks that had LESS than the 15 BTC subsidy.  Since the miners that are running the new software have more hash power than the miner that is running the old software, the "new block type" chain will always be longer.  This longer chain means that even though the 12.5 BTC blocks could be considered "valid" by the new rules, they will be orphaned and ignored in favor of the longer chain.  Meanwhile, since the miner running the old software sees the new blocks from the other miners as "invalid", they will never add those blocks to their own chain no matter how long the competing chain gets.  A long chain of invalid blocks is still invalid.

The only way to prevent the Ether mess would be to have such an overwhelming amount of support for the new rules that the few nodes and few miners that refuse to switch become meaningless and powerless.  They have their own coins that the rest of the world doesn't care about and won't accept.  This overwhelming lack of interest in the "old bitcoin" results in a complete collapse of its value and it becomes one of those millions of ignored and worthless altcoins, while the "new bitcoin" becomes the coin that the world recognizes as the "real" bitcoin.


On the other hand, if we wanted to decrease the block subsidy from 12.5 BTC to 10 BTC...
That would be a SOFT FORK.  All the existing nodes and miners running the old software will just see it as a perfectly acceptable (although silly) decision to pay themselves less than the maximum.  Meanwhile the nodes and miners running the new software will refuse to accept any blocks with a subsidy larger than 10 BTC.  As long as the new software has less than 51% of the hash power, the miners running the old software will be able to continue to create blocks with 12.5 BTC and the blockchain will fork.  The miners running the new software could ignore those blocks, but since they have less than half the hash power, the "old block type" chain will be long enough for the old miners to still recognize it as "valid".  Once the new software has more than 51% of the hash power their blockchain will be longer than the blockchain created by the old software.  Since the new blockchain is creating blocks that BOTH the new and old software recognize as "valid" blocks, this longer chain will win on both forks and the entire network will settle in on this chain.  Even if NONE of the non-mining nodes upgrade, and 49% of the hash power doesn't upgrade.  All the blocks created by miners running the old software will end up getting orphaned, and the miners with the new software (and 51% of the hashpower) will effectively enforce the new rules on the entire network.

As you can see, there is no "flag" and no "transactions" involved in this.  It's simply a matter of:

If the change to the consensus rules can be made in a way that the old software doesn't mind, then it is a soft fork and requires only 51% of the global hashpower to enforce if you want to prevent a split chain.

If the change to the consensus rules is not acceptable to the old software, then it is a hard fork and requires an overwhelming majority of the economy (nodes, merchants, miners, etc) to enforce if you want to prevent a split chain.
hero member
Activity: 756
Merit: 502
CryptoTalk.Org - Get Paid for every Post!
September 08, 2016, 11:53:38 AM
#13
99% may not be sufficient to prevent a network split. ETH:ETC hash rate distribution was 99:1 at one point (not to say this represents users per se). Still, network split persisted.

Something many people ignore is the potential profitability of promoting a hard fork. If market demand for the weaker chain emerges, this creates very high risk/reward opportunities to accumulate, mine and promote the weaker chain. What the market thought was worth nothing all of a sudden could have a 9-10 figure market cap. I was mining and buying ETC over the counter the day of the fork for that reason.

These conditions are inherent to hard forks. The most interesting attack vector to ensure a network split is to show market demand for the weaker chain (lobby exchanges, create OTC markets, evangelize). If there is market demand, rational miners will secure the chain out of profit motive. So you don't need users nor miners per se; you only need the perception of market value. You need speculators. Miners will then ensure the network split persists. The appearance of market demand and mining security produce a feedback loop that drives speculators and users to the weaker chain.

It's a beautiful thing, PoW mining incentive. But it will surely split your network when you try to hard fork.

your talking about controversial hard forks where the nodes are programmed to ignore other nodes purely to keep a minority alive.

EG
without ignoring other nodes and there is 99:1 hashpower, the 99% would ORPHAN the 1% and is part of the consensus mechanism

It applies to any hard fork, but particularly controversial ones. Clearly block size is a very controversial issue.

Nodes are not programmed to ignore invalid chains "purely to keep a minority alive." They do so because consensus rules are the basis for the network. The only way a consensus network operates is by all participants agreeing on a rule set and enforcing it. If you break the rules, you get ignored. This is separate from the idea of "longest chain" (most work).

with ignoring other nodes and there is a 99:1 hashpower, the 99% do one thing and the 1% do another. and is NOT part of the consensus mechanism, hence controversial

consensual hard forks do not even make a switch until there is a majority desire. so merchants and miners have already made their mind up before the code kicks in.

"Consensual" by definition is not based in majority. Consent is agreement, not majority rule. Everyone on the network agreed to enforce the Bitcoin network's rules by opting into the network. No one agreed to a hard fork. Running a software does not entail agreement to a hard fork, or a road map.

making it not only a high hashrate, but a high utility aswell. and with a high node count the majority does not become an issue.
where as as the minority dies off due to orphans, lack of utility very quickly.

Node count is meaningless. You're not addressing anything from the original argument.

the funny thing is that in a soft fork, a controversial softfork dominates and can continue to irritate and annoy the old clients and the old clients cannot do anything about it. they are stuck being slaves to the softfork.
in short its harder to separate a controversial softfork than it is to separate a controversial hard fork.

so please learn about controversial and consensual.. and then put those phrases into the context of soft vs hard.. it will wake you up

Welcome to Bitcoin, where the longest valid chain is the Bitcoin blockchain. I urge you to learn the definition of consent before running around claiming that a majority can consent for me.
legendary
Activity: 4410
Merit: 4766
September 08, 2016, 06:49:22 AM
#12
99% may not be sufficient to prevent a network split. ETH:ETC hash rate distribution was 99:1 at one point (not to say this represents users per se). Still, network split persisted.

Something many people ignore is the potential profitability of promoting a hard fork. If market demand for the weaker chain emerges, this creates very high risk/reward opportunities to accumulate, mine and promote the weaker chain. What the market thought was worth nothing all of a sudden could have a 9-10 figure market cap. I was mining and buying ETC over the counter the day of the fork for that reason.

These conditions are inherent to hard forks. The most interesting attack vector to ensure a network split is to show market demand for the weaker chain (lobby exchanges, create OTC markets, evangelize). If there is market demand, rational miners will secure the chain out of profit motive. So you don't need users nor miners per se; you only need the perception of market value. You need speculators. Miners will then ensure the network split persists. The appearance of market demand and mining security produce a feedback loop that drives speculators and users to the weaker chain.

It's a beautiful thing, PoW mining incentive. But it will surely split your network when you try to hard fork.

your talking about controversial hard forks where the nodes are programmed to ignore other nodes purely to keep a minority alive.

EG
without ignoring other nodes and there is 99:1 hashpower, the 99% would ORPHAN the 1% and is part of the consensus mechanism

with ignoring other nodes and there is a 99:1 hashpower, the 99% do one thing and the 1% do another. and is NOT part of the consensus mechanism, hence controversial

consensual hard forks do not even make a switch until there is a majority desire. so merchants and miners have already made their mind up before the code kicks in.
making it not only a high hashrate, but a high utility aswell. and with a high node count the majority does not become an issue.
where as as the minority dies off due to orphans, lack of utility very quickly.

if people decide they want to tweak the minority fork again, after the code kicks in to make it not connect to the main network, to make its own network to try keeping it alive.. then say hello to CLAMS 2.0 where merchants are not accepting it and the popularity of coin holders is tiny. thus no threat to the majority.

but as i said this is if the fork is made controversial.
the funny thing is that in a soft fork, a controversial softfork dominates and can continue to irritate and annoy the old clients and the old clients cannot do anything about it. they are stuck being slaves to the softfork.
in short its harder to separate a controversial softfork than it is to separate a controversial hard fork.

so please learn about controversial and consensual.. and then put those phrases into the context of soft vs hard.. it will wake you up
hero member
Activity: 3150
Merit: 937
September 08, 2016, 05:48:39 AM
#11
I'm interested in the community's view on this topic.

So if I'm not wrong, a softfork is type of fork that is compatible with the current network, and if more then 51% of the hashpower switches to the soft fork, the network rejects all non-softfork blocks from them on.

A hard fork will basically be like an altcoin, requiring users to move to a clone of bitcoin ±changes, that will ultimately live alongside the original blockchain.

So how is a fork defined? If I were to make a fork, how would I make it a soft/hard fork? Is it an optional thing, you can choose either, or is it based on what changes are in the fork?

My explanation may not be the clearest, but it's the best I Can think of without rambling on for 2000+ words.

If bitcoin were to have a major change,

I still don`t understand what is the meaning of those terms.

I`m not such a geek,i guess?

Why the hard fork is so important for bitcoin?
hero member
Activity: 756
Merit: 502
CryptoTalk.Org - Get Paid for every Post!
September 07, 2016, 10:36:55 PM
#10
We have already seen what can happen with a failed hard fork with Ethereum. Now 2 coins with their own ecoystems, developers and marketcaps are now competing against each other and being traded with big volumes on exchanges. All those idiots that said hard forking was nothing where claiming how the original fork surviving was a non issue, but that is exactly what happened. It not only survived but became a top 10 marketcap coin.

So to sum it up, hard fork has big risks unless like 99% agree.

99% may not be sufficient to prevent a network split. ETH:ETC hash rate distribution was 99:1 at one point (not to say this represents users per se). Still, network split persisted.

Something many people ignore is the potential profitability of promoting a hard fork. If market demand for the weaker chain emerges, this creates very high risk/reward opportunities to accumulate, mine and promote the weaker chain. What the market thought was worth nothing all of a sudden could have a 9-10 figure market cap. I was mining and buying ETC over the counter the day of the fork for that reason.

These conditions are inherent to hard forks. The most interesting attack vector to ensure a network split is to show market demand for the weaker chain (lobby exchanges, create OTC markets, evangelize). If there is market demand, rational miners will secure the chain out of profit motive. So you don't need users nor miners per se; you only need the perception of market value. You need speculators. Miners will then ensure the network split persists. The appearance of market demand and mining security produce a feedback loop that drives speculators and users to the weaker chain.

It's a beautiful thing, PoW mining incentive. But it will surely split your network when you try to hard fork.
sr. member
Activity: 350
Merit: 250
September 07, 2016, 12:31:24 PM
#9
I think soft fork is better than hard fork

not better, just different.
in a few cases a softfork can't solve the problem and the hardfork is needed.

but of course, it must be consensual.
full member
Activity: 222
Merit: 101
September 07, 2016, 12:06:50 PM
#8
So how is a fork defined? If I were to make a fork, how would I make it a soft/hard fork? Is it an optional thing, you can choose either, or is it based on what changes are in the fork?

A simple way to think of it is a soft-fork is a change that can be done without requiring all users to upgrade their software, and things will still work. A hard-fork is a change where everyone must upgrade or things won't work for them (the ones that don't upgrade).

To really understand what makes the difference you need to understand how nodes operate. That requires a lot more explanation.

Quote
you can choose either, or is it based on what changes are in the fork?

It's based on what changes are in the fork. Some changes require everyone to upgrade (hard-fork) and others don't (soft-fork).

An example of a hard-fork is raising the current block size limit from 1MB to 10MB. This can't be done unless everyone, all miners and other full-nodes, upgrades their software, because currently their software will reject any block over 1MB.

An example of a soft-fork might be allowing a new transaction type. Currently nodes expect transactions to work a certain way (like move coins from Point A to Point B), but they don't say that any other transactions must be rejected. That means in order to support a new transaction type a software change could be made where upgraded nodes recognized the new transaction and older non-upgraded nodes would simply allow them without any check (since they wouldn't understand them), but they wouldn't reject them. That would be a soft-fork type change.
legendary
Activity: 1218
Merit: 1006
September 07, 2016, 11:37:23 AM
#7
I think soft fork is better than hard fork if soft fork can solve the existing problem of the coin. Hard fork just mess up the whole network and actually split network to different parallel blockchains. ETH fork could be considered as recent hard fork that messed splitting it to ETH and ETC and community supporting ETH also get splitted between two.
hero member
Activity: 1470
Merit: 655
September 07, 2016, 09:33:12 AM
#6
i think the best explanation that i have read from soft/hard fork is that hard forks are not backward compatible while soft forks are.

read this: https://en.wikipedia.org/wiki/Backward_compatibility
https://en.wikipedia.org/wiki/Forward_compatibility

although this is mainly the explanation for the general meaning of soft/hard forks.
in bitcoin however, there is no consensus on the "definition" of these two! so you may call a hard fork soft and vice versa.

Edit:
i found the source and i don't think you can find any better explanation than this:
Soft Fork (forward compatible):


Hard Fork (not forward compatible)


http://bitcoin.stackexchange.com/questions/30817/what-is-a-soft-fork
legendary
Activity: 910
Merit: 1000
September 07, 2016, 09:20:13 AM
#5
The ethereum hard fork was a failure as that network was recently hacked. For me this is enough to vote for the soft fork where the 51% of the network decides which transaction to accepts and which one to reject.
legendary
Activity: 4410
Merit: 4766
September 07, 2016, 08:55:16 AM
#4
the ethereum hard fork was a controversial hardfork not consensual hardfork

also the weaker chain is surviving for these reasons:
1. ether has no real world uses, so no one can easily decide which one is better.. its like having 2 lazy siblings, deciding which one you love more
2. the hashrate was so low that there was not really much disruption in the transactions confirmation times between the two
3. ether is useless so many people dont even care about the hashpower/confirmation timings as most coins are locked in altcoin exchanges.
4. ether fork ignores opposing versions to ensure they dont orphan each others data off by simply not even getting the data of the other chain

bitcoin however, in a scenario of controversial(not recommended) hardforking would squash a minority fork quickly, for these reasons:
1. bitcoin has real world uses. when users see merchant X, exchange X is not using fork Y.. people will drop fork Y
2. the hashrate would be noticeably different where confirmations on Y can take longer and cause bottlenecks
3. these confirmation time difference cause increased fee war to fight for next in line.
4. orphans would add issues to the minority fork by nodes rejecting it, causing delays and other issues for the minority

all in all bitcoin will see faster decisions being made in a controversial(not recommended) hard fork because bitcoin has real world uses and larger userbase to make the differences between the chains very noticable.

by making it a consensual(recommended) hardfork. most of these decisions are made before the fork even activates. meaning the very very small minority notice the differences(slow confirms, fee wars and lack of merchant acceptance) even quicker and the minority fork dies off even quicker when it pee's off the minority to the point of realising they are wasting their time on a fork that has no use
legendary
Activity: 1610
Merit: 1183
September 07, 2016, 08:37:38 AM
#3
We have already seen what can happen with a failed hard fork with Ethereum. Now 2 coins with their own ecoystems, developers and marketcaps are now competing against each other and being traded with big volumes on exchanges. All those idiots that said hard forking was nothing where claiming how the original fork surviving was a non issue, but that is exactly what happened. It not only survived but became a top 10 marketcap coin.

So to sum it up, hard fork has big risks unless like 99% agree.
legendary
Activity: 4410
Merit: 4766
September 07, 2016, 08:36:37 AM
#2
a softfork is not "compatible" par-se with old nodes. because old nodes dont continue to check the data of a softfork.

a softfork uses a flag that a certain type of transaction should NOT be checked and instead blindly passed on. this trick then allows anything to happen simply by using the flag that tells old nodes not to check whatever data appears after it.

controversial softforks can change bitcoin without any opt-out
consensual softforks can change bitcoin but wont activate until there is a majority desire for it

its not "compatible" per-se. its more like ignored to not cause rejection

controversial hard forks (initiated without majority consensus) and also set to block certain useragents (versions) can cause a continual and growing altcoin because the 2 pieces of data do not mix to have one orphan off the other.

however a consensual hardfork only implements when the majority of nodes show they want it, and small risk of orphans will continually kill off the second chain until its rendered useless

controversial hard forks dont simply need to find a miner to accept the change, it needs to blacklist other nodes and completely separate itself from the first chain.
it requires extra feature to make it worthy of continuing to exist too.

think of
softforks as updating the small print of a contract in an area you know that old people cant read.
hardforks as changing the contract entirely where people either accept the new contract or stay with old unchanged contract

controversial as doing it without the users consent or majority desire, meaning people are no longer handling the same thing as each other
consensual as doing it with the users consent and majority desire, meaning people are handling the same thing as each other
legendary
Activity: 1232
Merit: 1030
give me your cryptos
September 07, 2016, 07:49:25 AM
#1
I'm interested in the community's view on this topic.

So if I'm not wrong, a softfork is type of fork that is compatible with the current network, and if more then 51% of the hashpower switches to the soft fork, the network rejects all non-softfork blocks from them on.

A hard fork will basically be like an altcoin, requiring users to move to a clone of bitcoin ±changes, that will ultimately live alongside the original blockchain.

So how is a fork defined? If I were to make a fork, how would I make it a soft/hard fork? Is it an optional thing, you can choose either, or is it based on what changes are in the fork?

My explanation may not be the clearest, but it's the best I Can think of without rambling on for 2000+ words.

If bitcoin were to have a major change,
Jump to: