Hacker News new | ask | show | jobs
by Aaron1011 3353 days ago
> I doubt anything like it will happen again as even those who were in favor now understand the damaging effects it can have.

That's one my my main concerns - the hard fork has set an incredibly dangerous precedent. Etherium has shown that it's willing to jettison the idea of 'code as contract' whenever the code ends up doing something 'bad'. In the case of theDAO, 'bad' meant anything from "people losing a lot of money" to "we found a 'bug' in an experiment that still isn't ready".

3 comments

Consider the "dangerous precedent" to be their first run-in with the realities of human society: We've long ago decided we did not want to be subjected to mindless, letter-of-the-law application of rules.

Substantial amounts of case law deals with exceptions and courts ruling on how to make things good in situations where there were disagreements between people over what the rules were meant to be, and most of them will not go away just because there's a computer program that can decisively tell us what the outcome of executing the rules exactly as written will be - a court can, and does, for example find that the rules contradict the law, or that the rules are so one sided that they imply there is no meeting of minds and therefore no valid contract.

Substantial amounts of literature lampoons the very idea of static rules to govern behaviour. E.g. Asimovs three laws of robotics represents not an ideal to strive to, but the backdrop that let him spend story after story showing how seemingly straight-forward rules and be circumvented, coopted, or hav unintentional side effects.

As societies we decide to make concessions and wave away rule breaches all the time when it seems like the right thing to do.

Systems that mindlessly apply rules in ways that are hard to reverse are going to have tough run-ins with societies where every enforcement mechanism includes expectations of being able to override rules.

This is my big problem with systems like Ethereum: Courts will eventually demand some transaction or other to be undone. If the other party can't be coerced into doing it, sooner or later they will issue decisions to e.g. some service provider or software developer to do it. When they can't do it, odds are bad decisions will get made. And eventually badly written contracts will create conditions where there is no way for contracts to get undone in ways that will satisfy the courts. It's going to take a long time to settle how to handle this in a sane way, and I'm willing to bet someone will eventually end up in prison in the meantime either because the courts fail to understand the technical limitations built into the system, or because they do understand them and decide someone is responsible for some transaction anyway if they chose to use such a system.

It's going to get messy.

I think that the anarcho-capitalist outlook to form "trust less" networks for humans who rely on trust in many aspects is inherently contradictory.

https://aeon.co/essays/trust-the-inside-story-of-the-rise-an...

you have to look at the full precedent though which is that forks can be used to keep a chain nimble and if you do disagree with where the majority goes you can still use the unaffected chain with others who feel the same. I don't mean to downplay, there are very serious effects that come from unforeseen forks and they should be avoided, but the dogmatic view just doesn't hold any weight with me anymore. Bitcoin will fork eventually. It's mostly fear and apprehension that has kept it where it is.
> you have to look at the full precedent though which is that forks can be used to keep a chain nimble and if you do disagree with where the majority goes you can still use the unaffected chain with others who feel the same

That's probably true in general, but the idea of 'code as contract' is supposed to be one of the defining features of Etherium. If the project wants to move away from that, then it should stop pretending that smart contracts are "applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference."

This all makes sense to me as these cryptocurrencies mostly remain experiments with minimal effect on the real world, but what happens if one of them takes off, as they all aim to? Society can't handle its underlying currencies forking and splitting all the time. Why should I trust Ethereum ever again after the DAO hard-fork?
I would argue that today ironically the chance of Ethereum forking again due to a poorly written contract is much lower than it was a year ago. Many lessons were learned and the community is much larger. Also many people who supported the Dao fork, would be against the fork today, because there is no more excuse that "we are early and we don't know how to write secure contract code".
The recursion thing was an interesting loophole, and we now know to avoid it when writing contracts. What if there is another interesting loophole that we haven't yet discovered, and that gets exploited? You say,

>Also many people who supported the Dao fork, would be against the fork today, because there is no more excuse that "we are early and we don't know how to write secure contract code".

but what you really mean is, we've identified a single "attack vector" and now know to avoid it. And, in the process, we've set a precedent that the discovery of any sufficiently large-scale-affecting (or core developer-affecting?) "attack vector" can potentially result in the software contracts being overridden by human action, i.e. a rollback and hard fork. Thus, I personally see no reason to trust the Ethereum network, even though it's full of really cool ideas and technology.

Fwiw there was no rollback. The fork moved the stolen funds, but didn't affect unrelated transactions.