Live data from Hacker News

Simple Contracts are Better Contracts: the Meltdown of the DAO

blog.blockstack.org

21–30 of 105 posts

Re: Simple Contracts are Better Contracts: the Meltdown of the DAO

#21
"Simple Contracts are Better Contracts" has always been the mantra of the Ethereum and DAO team. Most times when a security question was raised, "simple contracts" was their defacto answer [1].

This exploit suggests that the most competent developers in this space, who always preached simple contracts, are not yet able to consistently write secure contracts.

Also, the OP states the importance of being able to update a contract. As of last year that meant the original contract MUST include a self-modifying code provision. Self-modifying code doesn't align well with keeping your code simple.

As an aside, "contracts" are Ethereum's raison d'être and the Ether currency value is largely based on adoption. Even though this exploit did not expose a flaw in the Ethereum block chain, the Ether sell-off is an expected consequence.

Lastly does anyone have a link to the original contract code and how it could be rewritten so that it isn't vulnerable to this exploit ?

[1] https://www.youtube.com/watch?v=cahj4WJtp20 Q&A at 42m44s is relevant.

Edit: corrected time stamp for above video

Re: Simple Contracts are Better Contracts: the Meltdown of the DAO

#22

Earlier quoted context omitted.

I'll make a prediction about where this is going longterm. Smart contracts will take off despite their rigidity but we will start writing them to include common law arbitration protocols. The arbiters will initially be 1 or more human but as the block chain begins to evolve it's own common law(s), fuzzy machine arbiters will emerge to fill the "incompleteness".

>>... to include common law arbitration protocols. That's a great example of the sort of ambiguity that an arbitrator must deal with. Do you mean to refer to "the common law" as in the body of law descending from the brits, or do you mean the common law principals of precedent and authority? Or do you mean only the concept of precedent by which past decisions under similar fact patterns are used to inform decisions r…

You're being pedantic. Contracts explicitly specify the arbitrator, such as AAA or JAMS. More info at http://arbitrationnation.com/arbitrationnation-roadmap-when-...

Re: Simple Contracts are Better Contracts: the Meltdown of the DAO

#23

Earlier quoted context omitted.

What is supposed to give us the impression the problem of contract execution hasn't been solved? A huge majority of contracts are never disputed, carried out to completion or ran as a going concern without any issues. Contracts are routinely renegotiated when one or both parties have a change in circumstances, or at specific time intervals. Only a very tiny fraction of contracts are ever disputed, and fewer of those…

>> I don't understand the problem trying to be solved here. Lawyers. They want to get rid of the lawyers. It's a common desire. Like politicians, you want to get rid of them up until the day you actually need one. That day may have come for smart contracts. Does anyone here doubt TheDAO are now seeking legal advice on this matter?

Exactly. If you write a crummy contract but believe it is sound, then set out to convince other people of it soundness, and they sign up and pour their money in, and then the contract leaks, who's responsible? ... well, next minute: lawyers.

We'll first have to invent, and deploy at scale, the immutable person before we can have the perfect contract 100% of the time.

So long as people change, minds are fallible, misunderstandings and disagreements continue to occur, interpretation and intent are going to be fuzzy.

Re: Simple Contracts are Better Contracts: the Meltdown of the DAO

#24
post #9

How many of the TheDAO Curator members are lawyers? Contracts are agreements that are meant to be legally enforceable. The enforcer has always been the King, a local governmental authority and a third party. The very concept of a contract assumes the neutral third party. That third party is to interpret the contract, identify potential scoundrels, nullify illegal contracts and generally make sure everyone isn't playi…

> Contract language is also meant as a manifestation of intent. I challenge you to create a formalization of the intent and create a better programming language for smart contracts that includes intent. I could imagine quite well that intent could be formalized to some kind of "firewall" or "sandbox" rules for the smart contract, i.e. that if the execution of the smart contract violates these rules, it will, for exam…

Intent is simply the will of the party manifest. If each party presents their will, there is no misunderstanding. Conflicts of will can be treated like merge conflicts and resolved in the meat space.

Re: Simple Contracts are Better Contracts: the Meltdown of the DAO

#25

Earlier quoted context omitted.

I'll make a prediction about where this is going longterm. Smart contracts will take off despite their rigidity but we will start writing them to include common law arbitration protocols. The arbiters will initially be 1 or more human but as the block chain begins to evolve it's own common law(s), fuzzy machine arbiters will emerge to fill the "incompleteness".

>>... to include common law arbitration protocols. That's a great example of the sort of ambiguity that an arbitrator must deal with. Do you mean to refer to "the common law" as in the body of law descending from the brits, or do you mean the common law principals of precedent and authority? Or do you mean only the concept of precedent by which past decisions under similar fact patterns are used to inform decisions r…

Pretty clear to me that he's talking about creating/evolving new common law, in the vein of the living body of common law descending from the Brits

Re: Simple Contracts are Better Contracts: the Meltdown of the DAO

#26
Bailing out the DAO undermines the core value propositions of Ethereum - contract immutability (stability) and decentralization. I understand that the argument is "this is a special (ie, too big to fail) case; however, who can be sure?

IMO the better way to handle this is to acknowledge the mistake and let it fail. It's embarrassing I get it. Honestly, the big bank types who threw millions at this tech without doing due diligence deserve to lose their shirt. It's called speculation for a reason.

If the core team cares about the long term credibility of the project with the people who real matter - the tech community - they will not bail it out.

Edit:

For anyone interested, there's a really great discussion on this subject at the Ethereum reddit https://www.reddit.com/r/ethereum/comments/4oiqj7/critical_u...

Re: Simple Contracts are Better Contracts: the Meltdown of the DAO

#27
post #22

Earlier quoted context omitted.

>>... to include common law arbitration protocols. That's a great example of the sort of ambiguity that an arbitrator must deal with. Do you mean to refer to "the common law" as in the body of law descending from the brits, or do you mean the common law principals of precedent and authority? Or do you mean only the concept of precedent by which past decisions under similar fact patterns are used to inform decisions r…

You're being pedantic. Contracts explicitly specify the arbitrator, such as AAA or JAMS. More info at http://arbitrationnation.com/arbitrationnation-roadmap-when-...

Yes but that is a flesh-and-blood arbitrator. We are talking about coding the arbitration process into a machine. Being pedantic is exactly what happens when one tries to express cultural norms in the exact terms used by mechanisms.

Re: Simple Contracts are Better Contracts: the Meltdown of the DAO

#28

How many of the TheDAO Curator members are lawyers? Contracts are agreements that are meant to be legally enforceable. The enforcer has always been the King, a local governmental authority and a third party. The very concept of a contract assumes the neutral third party. That third party is to interpret the contract, identify potential scoundrels, nullify illegal contracts and generally make sure everyone isn't playi…

I'll make a prediction about where this is going longterm. Smart contracts will take off despite their rigidity but we will start writing them to include common law arbitration protocols. The arbiters will initially be 1 or more human but as the block chain begins to evolve it's own common law(s), fuzzy machine arbiters will emerge to fill the "incompleteness".

For example:

either party to this contract submit a signed request for arbitration within the escrow period of this contacts then

1) a panel of 3 arbiters from the New Atlantis Common Law Arbitration Group will be selected at random.

2) 50-ETH will be set aside for court fees.

3) The panel can execute any 1 of 5 events by submitting 2 of 3 signed tokens. If the panel cannot arrive at a consensus, one token will execute at random.

Many competing standard arbitration packages will develop.

Re: Simple Contracts are Better Contracts: the Meltdown of the DAO

#29

How many of the TheDAO Curator members are lawyers? Contracts are agreements that are meant to be legally enforceable. The enforcer has always been the King, a local governmental authority and a third party. The very concept of a contract assumes the neutral third party. That third party is to interpret the contract, identify potential scoundrels, nullify illegal contracts and generally make sure everyone isn't playi…

It seems simple enough to include a fallback mechanism to human judgment in times of extreme error. Maybe requiring 90+% consensus from members, or something like that. Obviously, TheDAO didn't have that, and explicitly precludes any fallback to traditional systems in its documentation.

and explicitly precludes any fallback to traditional systems in its documentation.

Which is, of course, nonsense. You can't document your way outside the law. Not in any country I'd want to live or conduct business in anyway.

If enough of any one persons money is involved you can bet there are lawyers right now trying to working out who to sue.

Re: Simple Contracts are Better Contracts: the Meltdown of the DAO

#30
post #25

Earlier quoted context omitted.

>>... to include common law arbitration protocols. That's a great example of the sort of ambiguity that an arbitrator must deal with. Do you mean to refer to "the common law" as in the body of law descending from the brits, or do you mean the common law principals of precedent and authority? Or do you mean only the concept of precedent by which past decisions under similar fact patterns are used to inform decisions r…

Pretty clear to me that he's talking about creating/evolving new common law, in the vein of the living body of common law descending from the Brits

Yep. This is what I meant.

I'd add that there could be many competing common law lineages and that contractees would selecting one when they draw up a contract.

Post reply on HN