EDIT: here's a pretty good write up of why you might think that ETC doesn't follow "Code is Law" either. In short after forking from ETH years ago because they had a stronger conviction that code is law they decided to break compatibility of existing code deployed on the chain to keep in sync with ETH development.
My feelings have now changed and IMO Ethereum will or already has overtaken bitcoin in importance. In general if you want to do "dapp" development you will write for the EVM, although you probably won't deploy on ETH L1 as your first place.
Ethereum has some very serious network effects building up behind it even if your favorite aspect of it was shed during the DAO hack.
It is worth noting that they also have been subject to several 51% attacks [2].
[1] https://investorplace.com/2021/06/ethereum-classic-will-stan...
[2] https://ethereumclassic.org/knowledge/roadmap
[3] https://www.coindesk.com/ethereum-classic-blockchain-subject...
I much prefer this interpretation. I think this should be considered ipso facto legitimate use of the contract.
The more frequent these contract "failures" become the more suspicious I am that the authors of the contract themselves are the ones exploiting them.
It's an obvious scam in this frothy market: introduce a contract with an intentional defect and then exploit it yourself.
Again, I am tempted to consider this a legitimate use of the contract.
But that isn't what The DAO was advertising. It was "code is law", which was supposed to remove the element of messy human judgement from things.
Of course, it was a spectacular failure because nobody actually really wants "code is law"... instead all they did was re-invent mob rule and those with the loudest voices decided what to do about the "theft".
IMO Ethereum did something that would be really nice to be able to do in the real world. A chain split, each participant got their resources on each side of the split (except the hacker) and each person got to choose which one to support, or both.
There was no need to bend to the "loudest voices" as to what to do with the theft, but rather to create two parallel chains and let each individual decide.
But the DAO contract specifically said, “we are bound by the results of this state machine, and it takes precedence over any human description of it”, and then wanted take-backsies as soon ask they didn’t like the result.
This happens all the time in traditional written law. Legalese exists for this very reason.
Just because one side says so?
Because that side has a big brand name?
That is exactly what I mean with "Whoever has the highest reputation is right".
The initial promise of crypto was the opposite: That the little Joe has the same rights as the big guys. Because code is law. And code does not care about the budget of your legal department and your marketing department.
If you can't accurately predict the implications of the lines of code in a smart contract, then it's as good as saying "The laws of physics are laws. That ball ended in my garden following the laws of gravity and thermodynamics, asking for me to return it to you is breaching the initial promise of the physical world". This may change with better smart contract languages that can reconcile intent with effect[1], but while talking about complex Ethereum smart contracts, the "Code is law" argument has no value.
Furthermore, as long as you keep within the bounds of trustless cryptocurrency (unfortunately not a tautology these days), code is indeed law. The ETH this person acquired cannot be confiscated.
That's only because there's no ETH. All there is is a ledger. And ledgers can be "ammended", as they have been in the past, effectively stealing the hacker's ETH back.
Theoretically you could write more precise laws with code.
Maybe they should have let a group of contract lawyers proofread what the code does. Lawyers look for bugs, inconsistencies, errors, loopholes all the time.
That is until the Ethereum Core developers were massively affected by the hack and decided on an unprecedented rules rewrite to address the hack. (Which they haven't considered ever since, despite other hacks of the same type.)
[0] https://twitter.com/Mudit__Gupta/status/1425115177771405312
It's like trying to fit a finite-term polynomial to a fractal - there's literally no way to make things match up everywhere. [1]
People complain because law/finance/whatever seem to be too complicated, so they try simpler, more "obviously correct" sets of rules that perform even worse in practice than what we already had because the world is still a fractal, and simpler rules just mean you're trying to use fewer points to fit that infinitely complicated curve. It's easy to look at existing law/finance/whatever from the outside and say "it's too complicated, we should refactor everything from first principles" but there's good reason to believe that is always a mistake [2].
Simple, obvious rules like "Transactions should be immutable once they are completed" seem like a good idea, but then they encounter incredibly common real world situations like "what if somebody made a mistake when they specified the amount of the transaction or the account number in the 'to' field?" Real world finance has ways to handle this - if nothing else, you can take it to court and ask a judge "does this seem reasonable?". "Code-is-law", like Procrustes "perfect bed", only has admonitions to be completely perfect yourself or suffer the consequences.
So IMO it's not just that most code is not well written, it's that the very idea that any finite amount of code, no matter how "perfect", can be a good fit for all the intricate needs of the actual lives of billions of people is fundamentally flawed.
And also, most of the code is not very well written :)
[1] as an alternate analogy, it's like trying to fix Godelian incompleteness in a formal system by adding a finite number of axioms.
[2] https://www.joelonsoftware.com/2000/04/06/things-you-should-...
Doesn’t stop people from arguing that no one could tell what the intent was, or the intent was actually what they did, or the law was so badly written that they are right because. And sometimes they win. But it’s rare.
So at least for the Ethereum Classic thing, the code was written in the way that just allowed such action and therefore you should not reverse the transaction. Note that the hack was still illegal, that's the fact, so you can (and should) go to the law enforcement to do something with it. But there was no bug in the code of the blockchain itself, it was working exactly as it was supposed to. There was a bug in the smart contract though, but it's not a part of the blockchain, so it's not a violation of principles/nature of blockchain ("code is law") but a 3rd party mistake.
Same here, no principles of the blockchain was broken. So the "code is law" stands. But the transaction is still illicit, and is a hack.
Initially the idea of crypto was that "Code is Law". The code sent the funds somewhere, correct? So by the "Code is Law" standards, this would have been just a legit transaction.
Now it is like in the old world. Whoever has the highest reputation is right.