PS: Also a second thought: Given that the "attacker" used apparently existing functionality of the DAO and that the DAO site clearly states "[n]othing in this explanation of terms or in any other document or communication may modify or add any additional obligations or guarantees beyond those set forth in The DAO’s code", I am wondering: If this (as measured by the DAO code: rightfully obtained) ether is now taken from him/her, might this not be an opportunity to sue the developers implementing this fork in a real-world court?
[1]: http://hackingdistributed.com/2016/06/16/scanning-live-ether...
"To be clear, if this happened due to an exploit in the software, then I can accept a hard fork fixing the issue. However, if the DAO team made a mistake in the way they designed their smart contract, as an issue of principle, they should not be "bailed out" by the Ethereum team because they are "to big to fail." Hard lessons like these teach the cryptocurrency community at large to do their homework and to be excessively (and obsessively) diligent with their security."
I agree with this.
No, I do not own any ethereum and have had only a casual interest in the entire project. My own investments have been in "Oh By Codes"[1] most recently :)
[1] https://0x.co
That's not really fair. His decree does not make it so. It still must be accepted by a majority of the miners, and this is and always has been a known property of the system. The collective will of the miners ultimately trumps the contract system. However, consensus there is purposely extremely difficult to achieve, and likely only possible in extreme cases like this.
Since this was a known property of the system, and since the agreement is inherently democratic, I don't see how this is a problem. Hard forks are simply another behavior of the network. Nothing more, nothing less.
As you say, that's a known property of the system. And it might be one of those things that's only viable in practice when the network is young. But can a CFO be considered to have satisfied their fiduciary duty if they write a contract which can be subverted in this way?
I think this really can be considered a 'one time thing'. It isn't like miners can be pressured by a government to halt contracts for terrorists or other things. They have to be convinced and agree with the argument being made. There isn't a sole individual to whom pressure can be applied here. Granted, Vitalik may wield some influence, but if he started advocating things that were clearly not in the best interest of Ethereum, people simply wouldn't take on his suggested upgrades.
EDIT: I'd also add that for the record, as a DAO token holder, my personal opinion on what should be done is this: A soft fork to prevent ether from moving out of the child DAO, and then nothing. Just burn that ether forever. This avoids the moral hazard problem while minimizing harm to the overall ecosystem. People like me who made the mistake of investing still feel the pain, but Ethereum itself moves forward.
The "hacker" simply used the DAO as it was meant to be used (i.e. according to the smart contract code), and deserves the funds. If there is a hard fork, I hope he sues slock.it for controlling the DAO, and for stealing the funds he is owed according to their own terms ("The contract is king").
Actually, the Bitcoin devs deserve a huge amount of credit for not attempting to "improve" the block reward or total supply during their multi-year bleed down from $1200->$200.
Step 2: Find someone foolish enough to accept the other side of the insurance contract, in a world where "insurance fraud" is no excuse
Step 3: Use Ethereum maliciously, stealing your own Ether under another identity
Step 4: Collect insurance
Step 5: Profit (in Ether)
Step 6: Good luck turning your Ether into actual money when people figure out how broken everything about it is
Is there any extant insurance company that would want to review my code in exchange for a lower premium?
If not, why would one be willing to do this for a flash-in-the-pan cryptocurrency, but not a useful, real-world device?
That would make for a very interesting trial, where a very rigid ideology would be put to the test.
The project leadership can only propose change. Change requires "ratification" by a majority of miners as well as the support of node operators and holders.
> So what now are the benefits of Ethereum smart contracts over the traditional legal system?
The contract can only be invalidated by a significant majority / supermajority of the community through the consensus process. Therefore this is unlikely to happen often if ever, and if so, only in very extreme, clear circumstances in which the entire community is in jeopardy. [0]
[0] Theoretically.
[0] https://dao.report/?sort=popular&keywords&status%5B0%5D=1&st...
Proposal #5 "Moratorium on proposals" only reached 8.86% of 20% quorum before voting ended.
Yet the moratorium is already in effect... as you can see there aren't any other real proposals out. Everyone is waiting to sort out these huge bugs in the framework.
https://www.reddit.com/r/ethereum/comments/4ns5nl/news_on_th...
It is the beginning of a precedent but precedent is fairly weak because Ethereum in its early stages and very experimental (many hard forks are in Ethereum future). Bitcoin rolled back the blockchain at one point as well but it wouldn't happen today.
>So what now are the benefits of Ethereum smart contracts over the traditional legal system?
My view is that smart contracts can most useful for low value contracts that you would never want to take to court. No judge wants to listen to two people arguing over 18 dollars.
Will the project leadership offer a soft- and/or hard-fork every time a poorly-implemented smart contract is exploited in a manner that is not intended by the contract creators?
If every smart contract is going to be "guaranteed" in this way, then this introduces significant overheads for the project and can also create moral hazard.
Alternatively, if only some contracts are "guaranteed" but not others, this can introduce opportunities for favouritism or discrimination...
Are cases only considered when they affect the ether price or where there is personal involvement with the contract? Is that fair?
Interventions and their resolution can also quickly get politicized just like the bank bailouts from the financial crisis.
It is not clear this is setting a good precedent.
Edit: reworded for clarity
This was a plot mechanism in some SciFi story I read a few years back. Edit: one of the in-universe early Revelation Space books.
The fork won't be enacted unless a majority of the community agrees to run its code. That's not likely to happen except in extreme cases, like this one.
Because it implies that some contracts will have a greater probability of being "bailed out" if they are backed by more ether.
It may turn out to be a bad thing because it will establish the idea that not all Ethereum contracts are created equal.
And this can lead the system to be more centralized.
Edit: for the record, I don't own use Ethereum or own any ether, so I would also hope that a hard fork doesn't happen to bail out a single contract, but I have no financial incentive on the line.
a) It is being bailed out by referendum, not mandate. Everyone gets a vote, if you don't want to install the patch, don't do it.
b) The funds to bail it out are those stolen by the attacker. Nobody is asking people without DAO tokens to suddenly contribute their ether to restoring the DAO or take debt.
I mean, the contract executed exactly as specified.
If the system was well designed, there would be no way to undo the results. Such a system may never exist, but the fact that ethereum can sometimes change contract results means it isn't living up to its ideals.
Of course, miners not associated with the DAO would never normally consider risking such a thing, but the rapidly falling price of their ether may convince them that it's the safest move.
2) The American people were paid back.
This is really too bad. The best outcome would be for the community to learn from this and build tools and practices that make new contracts significantly more reliable.
Smart contract design practices will have to undergo the same kind of gradual hardening that web servers have over the past 20 years. Let's hope it happens a bit quicker.
Look, self-driving cars required humans to take over and require updates to deal with new challenges -- until they don't, or very rarely do.
Smart contracts are different from self-driving cars in that the former have competing intents within while the latter have a common goal of "not hitting anything".
The only way to eliminate the human interpretation factor is to eliminate the possibility for human interpretation. This is effectively impossible in a pre-singularity world, so there can be no such thing as a contract enshrined in code which is binding.
Perhaps that is only a reasonable hope for values under $50-100M USD.
Well that's the fantasy of the century. Has no one learned this lesson with Bitcoin? An electronic currency doesn't magically wave away the fact it's being built and used by humans.
Personally I hate the term "smart contracts" because of the confusion they create on what they actually are.
But this incident has set a precedent, at least within Ethereum, that the project leadership will intervene to enforce the spirit of a smart contract.
So what now are the benefits of Ethereum smart contracts over the traditional legal system?
The way I see it, at least with traditional contracts you have the benefit of a trained and experienced judge making the call in case of a serious problem.