6 ms·
Interesting that everybody accepts that this was a "hack". Initially the idea of crypto was that "Code is Law". The code sent the funds somewhere, correct? So
by TekMol 5y ago
Interesting that everybody accepts that this was 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.
- meowkit 5y agoAnd the code was flawed, doing something that was unintended, therefore the law was flawed. This happens all the time in traditional written law. Legalese exists for this very reason.
- TekMol 5y agoHow do you know it was unintended? 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.
- leppr 5y ago"Code is law" is either nonsensical or redundant when applied to a complex Turing complete language such as Solidity. 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. [1] e.g. https://scilla.readthedocs.io/en/latest/ https://scilla.readthedocs.io/en/latest/
- lottin 5y ago> 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.
- MattGaiser 5y agoYes, but loopholes in law still allow something to happen until the law is fixed.
- terminalcommand 5y agoThe main issue with law is that it is written in an ambiguous language. 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.
- clpm4j 5y ago"Code is Law" unfortunately glosses over the fact that most code is not very well written.
- tvirosi 5y ago"code is law" unless those with concentrated power doesn't like the code
- beeboop 5y agojust like with real laws
- Tepix 5y agoThe same applies to law (loopholes for tax evasion etc) yet we follow the law to the letter.
- lazide 5y agoWell, we don’t follow the law to the letter basically anywhere. The law gets interpreted and judged by courts (at least in the English common law tradition, though it happens to some extent everywhere), precisely because people generally dislike someone doing something against the spirit of the law, and using technical terms to try to pretend it’s ok. 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.
- only_as_i_fall 5y agoNot really. The US is a common law system. The letter of the law is secondary to judicial opinions by definition.
- variaga 5y agoI think it's worse than that. I think the core problem is that the world is a messy complicated place and any time you take a simple, straightforward set of rules and require strict obedience to them in the real world, you're going to end up with situations that produce absurd results. 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-never-do-part-i/ https://www.joelonsoftware.com/2000/04/06/things-you-should-...
- wyager 5y agoThe ethereum crowd has never really bought into the “code is law” thing, except maybe in marketing. There was that whole fork a few years ago between ETC and ETH when ETH reversed a big hack transaction.
- lawn 5y agoUp until the DAO hack (that you're referring to) "code is law" was commonly believed. 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.)
- skinnymuch 5y agoYour just citing when they abandoned code is law. So it was a thing until your fork example.
- X6S1x6Okd1st 5y agoThe largest community I know of that truly believes that "Code is Law" is the side of Ethereum that simply accepted the DAO hack: Ethereum Classic. 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. https://that.world/~classic/2020/06/10/deprecate/ https://that.world/~classic/2020/06/10/deprecate/
- TekMol 5y agoHow is their current roadmap? Will they move to POS and do sharding like Vitalik's Ethereum?
- w4llstr33t 5y agoThat doesn't appear to be their plan [1][2]. It is worth noting that they also have been subject to several 51% attacks [2]. [1] https://investorplace.com/2021/06/ethereum-classic-will-stand-out-by-sticking-with-proof-of-work/ https://investorplace.com/2021/06/ethereum-classic-will-stan... [2] https://ethereumclassic.org/knowledge/roadmap https://ethereumclassic.org/knowledge/roadmap [3] https://www.coindesk.com/ethereum-classic-blockchain-subject-to-yet-another-51-attack https://www.coindesk.com/ethereum-classic-blockchain-subject...
- schmichael 5y agoThey are also probably the most popular chain to suffer multiple successful 51% attacks. I have no idea how they're still worth anything at all, but then again I have no idea why any cryptocurrency is.
- adamrezich 5y agothe DAO hack and the resulting outcome was the first major thing that shook my faith in the idea of cryptocurrencies. I never had any skin in that game, but I liked the idea of Ethereum as it was posed at the time, it seemed really cool. then the DAO hack happened and everybody kept trying to justify a reason to pretend like the hack didn't happen and move on ("it's not a rollback! it's totally different! here's why it's justified!! it's totally not because us DAO folk have so much invested in it!!!"), and it all just seemed to me to be completely at odds with the "code is law" idea, i.e. the thing that was supposed to make Ethereum different from both fiat currency and e.g. Bitcoin. the fact that Ethereum enthusiasts were largely saying, "well, if we don't 'undo' this hack, it'll cripple Ethereum as a cryptocurrency going forward, and we'll never recover!," but to me, collective human action overriding the "code is law" concept was exactly what destroyed any faith I had in Ethereum, and largely damaged it w.r.t. other cryptocurrencies as well. you're not making a true ideological alternative to fiat, you're just making a new kind of currency with its own vested interests controlling what happens to it... which, I thought, was the main reason for moving to crypto in the first place. when push comes to shove, you're still going to get The Government involved in resolving your disputes.
- rsync 5y ago"Interesting that everybody accepts that this was a "hack"." 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.
- jallen_dot_dev 5y agoYour honor, that outdated Apache server let me gain remote access to the machine. I was only doing what the code allowed me to do. This should be considered legitimate use of the software.
- spookthesunset 5y agoI mean here in the real world that argument falls flat. Our legal system isn't code. It is warm fuzzy meatspace with concepts like "intent" and stuff. 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".
- X6S1x6Okd1st 5y ago> 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.
- 5y ago
- latenightcoding 5y agocode is law until core devs lose money.
- jl2718 5y agoThat’s right, and then they fork in such a way as to return to themselves more than they put in (because later theDao shares were sold at 100x, and they refunded equally).
- xur17 5y agoIn this case it looks like it wasn't a smart contract hack, but instead a traditional key compromise [0]. From what I can gather it looks like it was essentially a custodial provider that allowed users to easily swap between different crypto networks. [0] https://twitter.com/Mudit__Gupta/status/1425115177771405312 https://twitter.com/Mudit__Gupta/status/1425115177771405312
- splix 5y agoPlease note there are different meaning of the "law". And for blockchain it's "law of nature", i.e., just how it works, the principles you have to accept, not legal laws. 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.