You are viewing a single comment's thread from:

RE: My thoughts on the debate currently occurring in the Ethereum community over The DAO hack

in #ethereum8 years ago

Thanks for writing this, arhag, and saving me a lot of time! I've been so annoyed by the "immutability of code" posts, a concept which to me as a programmer is a total joke, and I thought I would be forced to write a post to point out how just devastating this would be to the crypto movement if we took this as a guiding principle.

Sort:  

We can all be so happy to have CNX and blocktrades on our forefronts who understand the ecosystem, the needs and the economics.

I was also glad to see that Dan once mwntioned that anything done by the code that is not specified as such is considered a bug which will be fixedby a hard fork no matter what ..

This makes crystal clear (at least to me) that Plasma is the way to go.

I don't get it. Why is it a joke?
What you advocate is having some sort of "supreme court" capable of overriding the outcome of a smart contract. For some people this is an acceptable necessity and that's fine. But for others it is not the case - they prefer the risk of bugs instead of having the risk of someone freezing or confiscating their funds for whatever reason. For many this was the main motive attracting them to the crypto-space, e.g. this post on Reddit:

Historically "code as law" is the main selling point of smart contracts. Without that guarantee, there would be no point to using them. You might as well just use PayPal or eBay or Kickstarter for example, because they are able to serve human interests better when you make a mistake. You can cancel payments you made in error, you can make chargebacks if you are unhappy, you can launch a dispute resolution process. And these platforms have much more experience fighting scammers and fraudsters. They also have access to some of the finest legal systems around.

Reasonable people don't expect any guarantee that a smart-contract is free of bugs. For those less reasonable there should be a clear clause in terms & conditions which explicitly states that there might be unintended bugs in the code and in an extreme situation you might lose all your funds. The DAO creators fucked it up because they failed to add this warning and instead they hyped the whole thing.

EDIT: Actually there is appropriate clause in the Risk section of the DAO explainer:

  1. Risk of Security Weaknesses in The DAO’s Software
    The DAO concept is both experimental in nature and unproven. There is a risk that, as an open source project, any contributor to The DAO’s software could introduce weaknesses or bugs into the DAO software, causing the loss of DAO tokens or ETH in one or more or even all of the DAO Token Holder’s accounts.

It's a joke because the action of complex code is not predictable enough, especially when it's new code. Bugs inevitably exist in all complex software, and deciding to abide by those bugs rather than fixing them and achieving a reasonable outcome is not an improvement over current forms of human cooperation.

As a simple example, imagine what would have happened in bitshares if the first time the blockchain stalled due to a bug, everyone said "well, that's what the code did, so we have to live with it. All your bitshares are gone...".

Sure, the the ethereum guys overhyped this whole "code is law" thing, this is a common practice in advertising, unfortunately. It's usually referred to as "puffery" here in the USA, since it's generally accepted that advertisers overhype their claims, whereas in some countries you're not even allowed to compare your products to others.

But the underlying mechanism by which all crypto holds its value is a shared agreement by the users of that cryptocurrency. Anyone, at any time, can submit an alternate version of any crypto client that operates under different rules from the existing one, and if that person can persuade enough people to transition to his new client, the majority of the "value" of that cryptocurrency will move to his client operating under those rules, since all the value is really based on the actions of people who treat the coin as having value.

I think you are mixing up two things: fixing a bug is not the same as reversing cash-flows that occurred before the bug was fixed. There were many bugs in BitShares but never any transaction was reversed by a hardfork. Those who gained profits (or loss) due to a bug were rightfully allowed to keep it.

Even in traditional legal systems, if there is a loophole in a bill passed by a parliament, and some people take advantage of it before the bill is amended, is it common practice to confiscate the money they've gained?

"rightfully" is a value judgement, and not one I agree with. Exploitation of software bugs for personal enrichment is not morally right, in my opinion.

Arhag really already covered the "legal arguments" in his initial post: under traditional legal systems, there is a distinction made between the spirit of the law and the letter of the law, and I'm very happy I live in a country where the spirit overrides the letter.

But please read the last paragraph of my last post and understand that all "rules" are just agreements between people, and there's no way I know of to currently enforce blind obedience to such laws in the face of disagreement by enough people. I'm very glad this is the case, and I fear a world in which it's not.

The word "rightfully" was not my value judgement - it is one of the fundamental principles the western civilization is based upon: the law does not apply retroactively.

I didn't address your previous point about mixing up two things, fixing a bug versus reversing cash flows, so I let me create a plausible hypothetical case of a "buggy" cash flow and how the consensus agreements we come to as users of cryptocurrency prevent them.

Imagine than one of the primary developers of a cryptocurrency slips in a line of code that enables him to grab as much of the coin as he wants (and then proceeds to use this function whenever he needs a new toy). What will happen? Practically speaking, one of two things will probably happen: 1) almost everyone will exit the coin and devalue it down to near zero, or 2) someone else will come along with a new client that removes this line of code and negates the impact of the transfers. I think you're essentially proposing a 3rd option: he should be able to keep any coin he transfers before he's caught. A forking of the coin is also a possibility in such cases, and this will generally be an unfavorable outcome for the group as a whole, especially if the split is fairly even.

Now, I'm not interested in arguing which of these stances is the most moral, that's a big topic and I don't have the time. But I strongly suspect that based on prevalent moral standards, most people are going to choose 2), assuming the coin is otherwise stable and they derive value from its usage. Anyways, whichever choice is made, it's a choice made by each individual involved and this coin only holds value because of these people. The nice thing about crypto is it is a voluntary association, and you can leave if you disagree with the group.

The nice thing about crypto is it is a voluntary association, and you can leave if you disagree with the group.

This is exactly my point. Some people want a safety net, some don't - even if they face such an extreme abuse as you described. Brushing off those people and treating them with contempt (by calling their attitude a joke) does not bring any value to the discussion. It's their choice and their freedom to take the risk. The crypto-space is big enough to accommodate all needs.

A loophole in a law is not analogous. A law is not a contract. In contracts, it is common practice to confiscate money gained by exploiting a loophole in a contract that deprives other parties to the contract of the benefit of the contract they reasonably expected.

Coin Marketplace

STEEM 0.28
TRX 0.11
JST 0.031
BTC 69033.32
ETH 3748.46
USDT 1.00
SBD 3.67