(no title)
mbenjaminsmith | 9 years ago
The DAO's own terms state: "Any and all explanatory terms or descriptions are merely offered for educational purposes and do not supercede or modify the express terms of The DAO’s code set forth on the blockchain; to the extent you believe there to be any conflict or discrepancy between the descriptions offered here and the functionality of The DAO’s code at 0xbb9bc244d798123fde783fcc1c72d3bb8c189413, The DAO’s code controls and sets forth all terms of The DAO Creation."
Obviously the hacker's intent was theft but under the DAO's own terms it was a valid activity.
Basically the code is law. If we're going to then interpret that law then we've created a system similar to the current systems we have, but lacking in maturity. The point of something like Ethereum is not that it can't be manipulated, it's that it doesn't need to be in order to function. It can be trusted explicitly because its functionality is not open to interpretation.
If I'm not being clear enough -- what they should have done is taken this as a very expensive lesson and otherwise left the system alone. Yes, a "bad person" would have profited but the system's integrity would have been untouched.
FWIW, I was an early backer of Ethereum and bought ETH during the pre-sale. I invested because I thought it was promising -- without any real expectation of return. Coincidentally I sold all of my ETH just before this hack (40x ROI). Because of the fork I would not invest in ETH again, regardless of potential returns, because Ethereum is no longer what it set out to be.
AstralStorm|9 years ago
Yes, even with modern automatic theorem provers it is a bit torturous. But people are even going so far as writing a mathematically proven safe kernel (1) and Ethereum is much smaller and simpler.
(1) https://sel4.systems/
larkery|9 years ago
In normal contract law that doesn't have a blockchain in it there is a special moral "backstop" where a judge may find a contract to be unconscionable. An unconscionable contract may contain nothing forbidden by statute, but if it is found to be profoundly unjust in terms of its outcomes (not due to change in circumstance, but as a result of its formulation), then a judge can call the contract unconscionable and it is void.
This kind of latitude is really valuable, as it recognises the fact that things are pretty complicated and that in the end the law is there to ensure justice, not to mechanically interpret a set of rules.
So, even if you have a smart contract (or as I would call it "program") which can be proven to work a certain way, that may not be enough to guarantee that it is not going to give rise to bad outcomes. For example, say we have a proof showing that the program obeys some invariants, and one may even have such a proof generated automatically. This makes us feel confident - let us irreversibly bind our future actions to the output of the program! Blockchains be praised!
However, if the real invariant being aimed for is that the program's execution is "justice-preserving" (and I would say this is a good aim), then there is a grounding problem we have missed, where the prover needs to specify formally the nature of a just situation or action.
I believe a large number of person-years have already been spent on attempts to derive such an "ethics predicate", but if anyone has found it they have not yet bothered to demonstrate it. As a result if we wish to pursue justice, we end up falling back to the position taken by the ordinary law, and we might wonder quite why we decided to use 51% of all computing power for the rest of time to keep a ledger intact in the first place.
chopin|9 years ago
drdeca|9 years ago
However, I do think it is, or perhaps, would have been, important to put a lot of focus on moving to mathematically proven contracts.
tomp|9 years ago
Would the "hacker" have a chance to win in court? The DAO/Ethereum administrators are obviously breaking the terms of the contract...
CoryG89|9 years ago
[1]: http://pastebin.com/CcGUBgDG
ifdefdebug|9 years ago