Ethereum Blog

DAO Wars: Your voice on the soft-fork dilemma

Introduction

user

Péter Szilágyi


LATEST POSTS

Geth 1.7 – Megara 14th September, 2017

Geth 1.6 – Puppeth Master 14th April, 2017

release

DAO Wars: Your voice on the soft-fork dilemma

Posted on .

The last week was quite hectic for all of us in the Ethereum ecosystem. The DAO has shown us that it takes much more effort to write smart contracts than we originally anticipated; but also that it takes a surprising amount of debate to reach a consensus on issues of this scale.

Everybody in our community was very vocal and forthcoming about how the problem should be fixed in his/her opinion, or whether there’s even a problem to fix in the first place. While many have suggested an immediate hard-fork, the implications of such action are yet to be fully understood. An alternative suggestion was the creation of a soft-fork allowing miners to temporarily put certain transactions on hold, attempting to recover the funds without any invasive action on the Ethereum protocol itself.

As there is no clear, best course of action that will satisfy all community members equally, we’ve decided to give the power to the people running Ethereum to decide whether they support this decision or not.


To this end, we’ve released version 1.4.8 of Geth (codename “DAO Wars”) as a small patch release to give the community a voice to decide whether to temporarily freeze TheDAOs v1.0 from releasing funds or not. If the community decides to freeze the funds, only a few whitelisted accounts can retrieve the blocked funds and return them to previous owners. A similar mechanism is provided by version 1.2.0 of Parity too.

Note: If the soft-fork passes, it will block all DAOs from releasing funds, not just the ones the community considers attacked. This is understandably undesired for all legitimately split DAOs. As such – if the community votes to enact the soft-fork – we propose a follow up patch to the soft-fork that will whitelist all DAOs split according to the intent upheld by the enacted soft-fork.

How to use this release?

Miners supporting the DAO soft-fork can do so by starting Geth 1.4.8 with --dao-soft-fork. This will cause the block gas limits to be lowered towards Pi million until the deciding block 1800000 (approx. 6 days from now) is reached. If the gas limit of this block is below or equal 4M, the soft-fork goes into effect and (all updating) miners will start blocking DAO transactions that release funds.

Miners not supporting the DAO soft-fork can run Geth normally without any extra arguments needed. They will try to keep the block gas limits at the current 4.7 million. If the gas limit of the decisive block will be above 4M, the soft-fork is denied and (all updating) miners will accept DAO transactions that release funds.

Note: All updating clients will agree upon the outcome of the vote and will adhere to that decision. If the soft-fork vote passes, miners voting against it will start blocking transactions too; whereas if the soft-fork is denied, miners voting for it will also accept all transactions.

What if I don’t update?

Miners who do not update by definition vote against the soft-fork as they will continue the current logic of keeping the gas limit above the vote threshold. If the soft-fork is accepted by the majority, non-updating miners will still accept blocked transactions. In that case, non-updating miners will either fork off their own Ethereum network, diverging from the majority, or will forfeit any blocks they mined (since it’s not accepted by the majority, overruling the minority blocks).

Should non-miners (nodes, wallets, mist, etc) update?

From the perspective of non-miners, this update has little relevance. Either outcome of the vote is equally valid from a plain node’s perspective, so plain nodes will accept the heavier chain miners decide on without having to know anything about the soft-fork mechanism or results.

Epilogue

This release implements a soft-fork. A soft-fork is perfectly compatible with all protocol rules and requires only the consensus of the majority of miners to enact. It is temporary and can be removed/amended at any point in time upon miner consensus. It does not break protocol rules; it does not roll back any executed transactions/blocks; and it does change not any blockchain state outside of the original protocol capabilities.

Note: This release does not represent a consent to hard-fork the network. It is a means to give people more time to come up with the best solution.

profile

Péter Szilágyi

Comments
user

Author Donald McIntyre

Posted at 8:10 pm June 24, 2016.

I think this is a mistake, but I hope we can get over this period ASAP and start building again.

Reply
    user

    Author Mike

    Posted at 9:57 pm June 24, 2016.

    You are on the minority side.

    Reply
      user

      Author Donald McIntyre

      Posted at 10:47 pm June 24, 2016.

      Agreed.

      Reply
        user

        Author philip browning

        Posted at 3:32 am June 25, 2016.

        Paradox of all this is that developers who sought to take the human element out are discovering that to solve community issues you have to act as a community and thus are reliant on the human element. IE Ethereum ecosystem has a social layer and the social layer is as important as the code.

        Reply
          user

          Author heyjacob

          Posted at 5:09 pm June 25, 2016.

          Imo, the social layer is the biggest weakness. If I were an attacker to the system, I would try this as an entry point.

          user

          Author Donald McIntyre

          Posted at 5:29 pm June 25, 2016.

          I think the human element is the most important because the platform is for human users and a human community determines the development path, changes, forks, etc.

          What I didn’t think was a good idea was to freeze funds or confiscate, I think that should be done external to the network to keep it more secure (the fact the community can freeze and confiscate money is a security hole IMO).

    user

    Author Mark Ranford

    Posted at 6:51 am June 25, 2016.

    Dissapointed with you Donald. Building again? If we let our most enthusiastic early adopters and evangelists, such as the DTH become victims from an exploit such as happened, then the very dapp you are trying to build (and with funds from TheDAO!) becomes a joke. Far better for your goal is that we embrace consensus for an early fork (even it sets your app back a bit in short term, it improves its chances of success in the longer term).

    Reply
      user

      Author Donald McIntyre

      Posted at 5:38 pm June 25, 2016.

      Hi Mark, I understand your point, but disagree. I think a wealth management dapp would be even more credible if there was no possibility of freezing or confiscating funds in the network. Remember it is a global borderless network and people from Argentina, China, Iran, to Venezuela would greatly value no possibility of censorship and full protection of their wealth from arbitrary actions from any entity whatsoever.

      However, I think the majority agrees as well that these forks should never happen again, I think this may bring back credibility and security to the network in the medium term. This is why I think we should build Etherplan

      Reply
      user

      Author jacob meeder

      Posted at 11:28 am July 3, 2016.

      So every time a dapp is released to early not properly tested with a big it’s time to fork, the miners are fico for dapps? Ohhhh how fun, not it sucks to be the dapp, they messed up they fix it

      Reply
user

Author Bubba Pumps

Posted at 12:52 am June 25, 2016.

The funds should never be returned. They should be burned or distributed to the miners.

Reply
    user

    Author JustWow

    Posted at 3:00 pm June 25, 2016.

    Why?

    Reply
    user

    Author Zebroid

    Posted at 12:53 am June 27, 2016.

    Thanx, why don’t we just start an unlimited BURN DAO for the next one! Invest any fiat and 27 days later it’s digitally destroyed… or sent to a hacker…
    oh wait, that might be a freaking brilliant plan to create financial scarcity – register a patent for that while you at it.

    Reply
user

Author David Krmpotic

Posted at 2:02 am June 25, 2016.

by Don Henning: I think I know how this will be resolved. There will be a soft fork only, no hard fork. The investors will get back a large percentage of the remain ETH, and the stolen ETH will be forever destroyed. All investors will have not lost any USD due to a rise in price relative to what they paid for the ETH at the time of buying tokens. The value of ETH will go up because there will be less ETH on the market, and news of no hard fork will also be a preferred outcome, driving up the price of ETH. And there will be no real loss since the remaining ETH people have after the soft fork will in fact be worth more. Of course, those who never participated in TheDAO will benefit the most. The hacker… will get nothing.
AMEN

Reply
    user

    Author Bubba Pumps

    Posted at 2:52 am June 25, 2016.

    This is not correct. The price will plummet if the fools who invested in the DAO are gifted their funds back from a poor investment. The ones that will pay are the miners either from hacker dump or DAO fool dump. No win for the miners unless stolen funds are destroyed.

    Reply
      user

      Author JPH108

      Posted at 3:03 am June 25, 2016.

      The ETH that is in the DAO will come back into circulation no matter how things turn out. Either the attacker will remove it, or it will be restored to the DAO token holders. And if the DAO had succeeded, its ETH would have come back into circulation in the form of grants or investments. So there was never any chance of it being destroyed, and it will not be locked up for long.

      Reply
    user

    Author Gilles Champollion

    Posted at 10:26 pm June 27, 2016.

    “Ethereum 2.0 is a decentralized platform that runs smart contracts:
    applications that run more or less as programmed with possibility of
    downtime, censorship, fraud or third party interference.”

    Reply
    user

    Author jacob meeder

    Posted at 11:30 am July 3, 2016.

    So every time a dapp is released to early not properly tested with a big it’s time to fork, the miners are fico for dapps? Ohhhh how fun, not it sucks to be the dapp, they messed up they fix it… and your talking about theft… not cool he was not a hacker well at least not what I consider one

    Reply
user

Author Nanopool

Posted at 3:55 am June 25, 2016.

Nanopool started to mine according the voting results. The results are reviewed once a day. Now Nanopool is ACCEPTING the fork.

Reply
user

Author logical

Posted at 12:52 pm June 25, 2016.

Can you explain why the activation isn’t based on whether a majority of blocks over a period of blocks must meet the criteria, < 4 million gas? Is gas already an average over many prior blocks? By looking at only one block, if this is not the case it hardly signals, one way or the other what the overall consensus is.

Reply
user

Author heyjacob

Posted at 5:06 pm June 25, 2016.

From my point of view, this is a huge mistake. I don’t think people fully understand what a fork implicates. Explaining everything from the viewpoint as if you were the “good guy”, giving people their funds back from a “thief” is called propaganda. But what is “good” and what is “bad”? Who defines that? By only shedding light on one side of the incident you are influencing the popular opinion, all under the holy term of being “democratic”.

Democracy does not only involve voting by the participants, but that the participiants also understand what they are voting about. And currently I don’t have the impression that people really understand that if they create a precedence in which they show that through propaganda it is possible to undermine the basic physical laws of ethereum, they could potentially kill ethereum and lose all their investments by killing the project.

So to be clear: If you succeed with the soft fork, you will hit credbility of ethereum very hard (actually you are showing to the world that by spreading propaganda you can potentially do whatever you want in the name of “the good”) and potentially kill the project. This point has never been clearly explained.

Reply
    user

    Author Skith Uno

    Posted at 6:07 pm June 26, 2016.

    We agree that the labels used in the campaign have been incorrect. All parties involved are simply people and there is no good or bad.
    Voters prefer prepackaged opinions. Thus propaganda will always have a place in the world unless there are no humans involved. Any system based on consensus can be changed by propaganda. This was always the case with blickchain, the social laws of consensus dominate the laws of math. However as the reach of ethereum grows, building consensus for forks will become more difficult, thus the system will ossify to an extent where only major events can create forks.
    Over a long enough time period, any system that can fork, will fork.

    Reply
      user

      Author heyjacob

      Posted at 2:29 am June 27, 2016.

      Well, the social consensus was that you can make contracts that strictly follow the laws of math (ie. the source code in the contract) and cannot be manipulated in the future. And this is exactly what happens now. It’s the responsibility of those who invested in the DAO (including me) to read/check the contract before entering it. This is fundamental, unchangeable socket that ethereum is standing on.

      This is an acknowledgement that ethereum does not work as expected in the social consensus. If you (the ethereum developers) will push through the hard fork, you will exploit ethereum yourself by social engineering for the first time in its young history.

      The gal/guy receiving ether from the The DAO owns the ethers rightfully. The DAO offered a contract and he went in. There is no such thing as an interpretation and you are not the judges of ethereum.

      If you want to fork, you may of course. But why ruin the associated name “ethereum”? Call the result whatever you like, but don’t advertise is as “ethereum”.

      Reply
user

Author Crypto Dummy

Posted at 8:07 am June 26, 2016.

i understand a little off this all softfork hardfork .What i do now, if they dont use fast this hardfork, some off
the designers go too prison.This 50 milion not a small amount the us Government go after them.Gavin Wood the only who sees the danger see Dutch blockchain conference.This gay is streetwise,Vitalik do this hardfork and go on.Fast!!

Reply
user

Author Gilles Champollion

Posted at 6:23 pm June 27, 2016.

Ok, you took your decision, de facto a fork is a new cryptocurrency. At least be honest and change its name in Ethereum 2.0 – In the meantime please also change the manifesto in “Ethereum 2.0 is a decentralized platform that runs smart contracts: applications that run more or less as programmed with possibility of downtime, censorship, fraud or third party interference.” GOOD LUCK – I’M selling ALL MY ETHER – BYEEEE

Reply
user

Author DavidL5507

Posted at 2:02 am June 29, 2016.

Hello,

What is the purpose of a crypto currency? I am a newbie. I have gleamed that some very important ideas are: a defined amount, no entity can change the definition once agreed upon, verifiable, and tamper proof. Bitcoin has a growth rate and reaches a maximum sometime out in the future. Ethereum grows so many coins at a certain rate, forever. When someone, or organization steps in and says these valid coins are no longer acceptable, then, you are breaking the foundation of this cryprto currency.

If you remember the movie, “Goldfinger,” the premise was to make the gold stored in Fort Knox radioactive and thus reduce the supply of gold on the world market. A fork will do the same, thus, creating deflation.

Yes, it is awful that someone found a loophole in the DAO, however, it is up to the DAO and its creators to protect it. Why do we have private wallets for our ethereum? So, that we may provide our own security to the level that we feel safe with. This idea of a fork is the same as a government saying that we are going to burn all of the money that you have stored in your vault, because we can find it and we are able to burn it.

The issue of the DAO is best left to a “Court of Law,” if one exists for Ethereum. If you destroy this ethereum, then what is to prevent you from destroying my ethereum in the future.

No Thanks.

Reply
    user

    Author Marek Smoliński‮

    Posted at 3:18 pm July 13, 2016.

    Exactly my thoughts – I’ve been observing Ethereum from it’s beginnings and waiting for it to become stable (well, because I kind of predicted hacks will happen, and that’s why a new system shouldn’t be responsible for $50 000 000 – there should be multiply systems, contracts, programs, however you call them, with different implementations, to split the risk).

    Now I see that Ethereum is just like a national bank. Just like in democracy people vote on people who are in charge, here the community decides on forks that in fact are not forks but patches. 😉

    The thing is, it’s even worse, because here poor people have no vote (not mining) and the richest are the strongest.

    Reply
user

Author Stuart Trusty

Posted at 10:51 pm July 1, 2016.

Greetings Etherians,

I think to have truly smart contracts, we need to be able to take care of auditing our contracts so they can bear up against big numbers, and have a way to deal with things like errors and omissions, insurance, and version control at the contract level. Ethereum can’t do a one-off solution for Dao, as that would accomplish nothing long-term- we need a change in policy.

We can take the 70% of the Dao ETH that has been salvaged, and take a view to the future here. This can be done by making these funds available for contract certification and security analysis for large scale enterprises such as the Dao intended to be. We need to find insurers and insurance models willing to back these contracts after this new layer of contract analysis and due diligence, and a way to insure new unqualified investors from errors and omissions on behalf of the contract authors. These implementations of proper business safeguards will cause Ethereum to climb back up in value because we can truly solve something here that has not been addressed and which is the underlying cause of the problem at hand.

We must keep Ethereum arms-length from DAO, but any hard fork should implement a feature wherein the contracts themselves can be upgraded by consensus, a sort of built-in version control that will supply a pointer to any superceded contract. In this case, we would want to eliminate the “pay first account for it later” line of code from the bad DAO code, then any calls to the old DAO contract pointer would be redirected to version 1.1 of that contract by consensus- that is the new feature that should be added by any hard fork. It also needs to be easy to use and be implemented by all those with standing to vote in such a decision. We may need to hard fork into a type of mechanism for Ethereum to avail an easy big red button to kill any renegade contract as well or at least suspend it from processing for a period of time to analyze.

In any case, if we use the ruins of the DAO for enabling future huge smart contracts by insuring their business certainty- and let the current investors profit in all those new ventures that have been audited and insured up to business best accepted business practice, due diligence, and exit strategy for the investors- then we can all truly snatch victory out of the jaws of defeat on this current issue.

I apologies for any misconceptions or errors in my reasoning, but thank you for your consideration of my ideas.

Thank you,
Stuart

Reply
user

Author jacob meeder

Posted at 11:34 am July 3, 2016.

Ohhhh don’t worry dapps just write bad code, if it doesn’t work out the miners will bail you out…. with forks cause we just can’t accept that it wasn’t supposed to be this way

Reply
user

Author starstarZH

Posted at 9:38 pm July 4, 2016.

Honestly, I also think forking is a mistake, but not in principle because it should not be possible but because the vote is completely up to the large mining pools. As such, it’s not a true community decision and doesn’t reflect the opinions behind Ethereum, but only the CPU power distribution.

Reply

Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

View Comments (32) ...
Navigation