Hard and soft forking (ethereum)


#1

I’ve been pondering upon this question for some time now…
Theoretically, let’s say that Vitalik decided that he wanted to Hard/Soft Fork Ethereum, how would he actually go about executing that?
Would Vitalik just implement his change into the Ethereum Source Code and then tell nodes to download this new software?
I understand that soft-forks are backwards compatible whilst hard-forks are not and causes a network split with nodes that do not implement the new software. But how is the Hard/Soft Fork actually executed and implemented?


#2

This has already been done with the DAO attack. He Hard Forked and made everyone comply.


#3

They’re implemented differently, a soft fork is suggested to the community in the form of a proposal and requires the majority of the Ethereum miners to vote in favour.

A hard fork at the other hand can either be put to the network as a vote or can be unilaterally decided by the core developers. Similarly, if you wanted to fork Ethereum and start a new coin / chain based on Ethereum you can do so (since you’re the core developer of the new coin / chain) and nobody can prevent you from doing so. Whether you will gather support for it and a community behind it to give it value is another story.


#4

A. The DAO hack happened on Friday June 17th 2017, within 10 days, whitehat hackers responded and moved the remaining funds (using the same hack) from the DAO to a whitehat DAO (about 47M USD) while the hackers blackhat DAO contained about 53M USD from the original 100M in the DAO.

B. At that point in time 27/06/17; the blackhat hacker had to wait for another 17 days before being able to extract the funds from the blackhat DAO; so time was off the essence

C. They could not use a soft fork and miner voting at the time because there was a security flaw with the voting process which would have opened up Ethereum to a DDoS attack.

D. They ran a poll and the majority of the community was in favour of a soft fork, but as outlined in C, this wasn’t possible without great risk.

E. its the core developers, not Vitalik alone that made that decision.

F. They instituted a hard fork before the 17 day deadline to prevent the hacker from claiming the funds and the majority moved into the new fork. A number of people (large number) disagreed with this strategy, because it affected the immutability of the DAO and of Ethereum and remained with Ethereum classic, I.e. they had a choice.

I am 100% certain that was not a light nor easy decision to run the hard fork and it certainly wasn’t as light as “he hard forked and made everyone comply”. That hard fork could have been the end of Ethereum; I highly doubt you will witness such a hard fork again in future.


#5

I understand all that and may agree but he still rolled back and made everyone comply. It doesn’t matter if it was the right thing or not it still can be done was the point.


#6

He didn’t make everyone comply, Ethereum classic is proof that this isn’t the case. Ethereum forked and moved over to the new Ethereum whereas the existing Ethereum became Ethereum Classic, which has its own following. People can be unhappy about it but it doesn’t change the fact that it wasn’t forced.

People had and have a choice, use Ethereum Classic or Ethereum or both; what you can’t force on the Ethereum team though is that they continue to support Ethereum Classic; since they clearly saw this as unsupportable at the time.

The fact that the majority of people moved and that Ethereum thrives (look at all the tokens issued for ICOs) means in the end it was the right decision.

Can it be done, yes. Should it be done, in most cases the likely answer is no but it depends on all the factors.

Look at what happened with Nano / Raiblocks and Bitgrail. The Bomber demanded that they do a hardfork to resolve the Bitgrail issue; they refused. And they refused because they would have had to fork to a version way back in October (this was in February) which would have meant that anyone buying Nano after October would have lost their money, it would simply vanish. And it would have collapsed Nano completely.

So there the factors determined that this wasn’t economically viable and as such wasn’t done; despite people losing 150M USD

In the case of Ethereum, it could have resulted in a 100M USD theft and while higher numbers have been reached now, at that time this was a potential deathblow.

Can the Ethereum core team do it again? Now that’s a whole other question. Theoretically, yes but there already was a huge risk at the time of losing support for Ethereum completely and the coin could have died out, that risk has severely increased dramatically over time, with the massive increase in price and adoption.


#7

You’ve made this perfectly clear thank you very much for consisely clarifying the question :slight_smile:


#8

Of him making everyone comply or go make a different coin (keep the old one really). I wasn’t around yet so this is just from what I read. My opinion, I guess I agree to disagree. Really this just reinforces my thoughts on the whole scarcity thing. They basically just doubled the coin in one fell swoop. Thereby causing inflation in my opinion.
Sure we can argue if it was a good idea or not but what I am referring to is the misnomer of the reason I got really excited about Bitcoin and crypto. The scarce and immutability of it. If we can just say Oh well a lot of people lost money so let’s get in our time machine and go back to before this happened, make it all good. That ideal turns out to be not so true.
Can we correlate it to 2008 crash and wouldn’t it have been nice to turn the clocks back on all the bad loans? I know that its a bit different but it would have been nice wouldn’t of it? I mean that was one of the biggest financial crisis of all time!


#9

Thats a good point, but if you’re in for the scarecity of Cryptocurrencies, then Ethereum is a bad choice; as Ethereum has no “Capped Limit”.
But yes the immutability aspect you stated I agree with the old “code is law” argument; however, in my view, the hard fork was needed.


#10

I am having a hard time here understanding this so please bear with me.

Let’s say that Bitcoin is the dollar and fiat is not around. Let’s just use the USA in this example to make it simple. So Bitcoin is the currency, the only one. One day someone makes another coin that works better for mortgages and buying houses. This coin has created a way to mine was created as well so now there are more coins circulating. This coin is similar in every way to Bitcoin but it uses smart contracts differently and more efficiently. This coin is great for that and everyone agrees but Bitcoin is still used as the main currency. Now, what happens? Is Bitcoin degraded because of this? Does the worth of bitcoin go down because a large portion of it is being shifted to another sector?
To me, money has just been created out of thin air and this is what inflation means to me. What are your thoughts?


#11

I see where you are coming from, but:

  • Theoretically let’s say I wanted to make a fork of Bitcoin, I’d go on github copy the bitcoin source code and do my own changes to the code, call it ShitBitcoin.

  • I would then have to convince a whole bunch of people that ShitBitcoin is great and have them join me and run nodes on the ShitBitcoin network. There’s no use having all these ShitBitcoin if nobody contributes in establishing a network, otherwise it’s all pointless and shit code.

  • The value behind the currency comes from the mass adoption rate worldwide and the use cases of the coin. If nobody uses ShitBitcoin, while I have theoretically made a new currency, nobody has adopted the new currency and assisted in running nodes and mining and my coin is worth less than dirt.


#12

I totally agree. Just what I am struggling with right now because we see a lot of people adopting other coins. It is maybe just for the gains but what if one did actually work?


#13

And it’s perfectly fine to do so :slight_smile:

This is where I still disagree, if they had taken the existing Ethereum code and started a new version, yes then they would have doubled the coins in circulation. But they didn’t, they changed the code (to deal with the prevailing problem) and launched this as a new coin because soft forking wasn’t an option (as outlined above).

The value of ETC (Ethereum classic) at the time of the fork was 0.75 USD and the price of ETH was 223.95 USD; there is a dramatic difference in valuation for both coins. If ETC had been the better value proposition it would have meant nobody would have moved to ETH and ETH would have disappeared from the market. If they had doubled the coin then we would have had to have 2 coins of the same value; which would then have cause deflation.


#14

Why is it a problem if one actually works? If there is a coin that is a bitcoin fork (or a fork of any other Alt coin) that is actually a superior product and kills the existing coin, there is no loss suffered by anyone that held the original coin. In a hard fork your amount of coins gets forked and you have the original amount on the original chain and the same amount on the new chain. If the new chain kills the old chain the you have still retained your coin value on the new chain, while the coins on the old chain are worthless (but you didn’t lose the value of your coins).

Maybe I’m wrong but I get the feeling that this is more of a concern about Bitcoin no longer being market leader.

I.e. if the USD all of a sudden gets replaced by a new American Dollar, which is a superior product (purely hypothetical) then the USD would disappear in favour of the American Dollar. Since everyone receives an equal amount of American dollars as they had USD at the time of creation of the American Dollar, people would still have the same buying power, just in a different currency.


#15

Not a concern about Bitcoin becoming obsolete. Just about all the talk of no inflation. There is inflation if you dilute the pool of avaible worth. This can not be changed. You do just that when you create new coins. Just like the Dollar. We like to think we are creating more money to go around when more is printed but we are not. Each unit just doesnt buy as much. It bothers me that the biggest selling point of crypto, in general is misleading and most believe it. We can discuss forks and what not and certain instances are great arguements about the vagaries of said forks but i still know that, although not apparent now because crypto isnt widely used as a currency, adding a new coin is like printing money if we used crypto instead of fiat.


#16

Maybe this simple comparison helps: let’s say we live in Sweden and our currency is the EUR. The amount of money is indirectly controlled by the European Central Banks - more money is added to sustain a moderate level of inflation, roughly around 2% (the actual process to add more money is a bit complex though). At the same time, a country like Venezuela is printing money like crazy. Does this inflate the Euro? I would say no. I think it is similar with a hard fork or a new cryptocurrency. We can do as many hard forks as we want, but it will not inflate Bitcon or other cryptocurrencies because to give those new cryptocurrencies or forks value, we will have to buy them using other cryptocurrencies or fiat. So it is a conscious decision to transfer value to the new cryptocurrency. On the contrary, normal inflation is not conscious at all. The holder of the inflated currency normally has no say in this process.


#17

I see your point and that makes sense to me. But what if Crypto was the only option and Bitcoin was the Main World Currency? This means that everyone’s wealth is interconnected. Then it would make a difference, in my opinion, even if you didn’t make the conscious choice and many others did, it would still affect your bottom line.
I would like to hear your reply and I will let this go for now and do some more looking into this to assuage my doubts.