Live data from Hacker News

Simple Contracts are Better Contracts: the Meltdown of the DAO

blog.blockstack.org

61–70 of 105 posts

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

#61
I may be stepping outside of my area of expertise, but doesn't this seem like a perfect place to apply formal verification tools? As long as the contract isn't too long, it should be possible to ensure that the implementation exactly matches the specification.

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

#62
post #60
post #56

There are two fundamental problems with Etherium contracts. 1. They're executable programs. They could have been a set of declarative rules listed in priority order, but no, the designers went overboard and made them general programs with loops and recursion. There are straightforward ways to analyze sets of rules; they're usually amenable to case analysis. It's hard to analyze programs. Writing a declarative contrac…

To be fair, ethereum has bytecode at its base- almost certainly someone will wrote a more declarative language on top of it now to help minimize the chance that unexpected calling trees can lead to unexpected behavior. Also, the existing solidity language is pretty well designed, it's just a hard problem and an even better design may be needed.

Almost certainly someone will wrote a more declarative language on top of it

Papering over the mold seldom works. It makes things easier, not more reliable. See C++ templates.

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

#63

Earlier quoted context omitted.

I would counter with the concept that any valid interpretation of intent must come from one with cultural understanding. Machines do not have cultural understanding. They cannot identify language/intent clearly in violation of cultural norms. Before attempting the intent code, I'd first need to see a machine capable of understanding why Shylock's pound of flesh was an illegal contract.

If the machine knows Asimov's three laws of robotics then it will know that Shylock's pound of flesh cannot be had.

Asimov's Three Laws aren't a replacement for the whole system of human values. His robot stories are full of robots doing strange things that conflict with human intuition but are aligned with the Three Laws. Asimov himself recognized that the laws were not sufficient, and added the Zeroth Law as a workaround:

"A robot may not harm humanity, or, by inaction, allow humanity to come to harm."

But this law is vague and difficult to interpret. The Laws of Robotics are not a formal specification of ethical behavior. From the point of view of a fiction author this is no problem. The ambiguities allow for more exciting stories. But when real human lives are at stake, it's a serious problem. "Friendly AI" is a non-starter if we can't even define what "friendly" means.

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

#64

Just from reading commentators here at HN, it doesn't seem like these issues were unforeseen. Rather, it seemed that whatever intense optimism exists around cryptocurrencies is capable of overwhelming investor sense in return for the promise of some ideological "win".

Yup. To be honest, the bug with the implementation of the DAO that allowed someone to appropriate most of its assets is the least of the flaws behind the concept, which was fundamentally "let's put our money in a pool and let the anonymous votes of pool members decide what to do with it", complete with a big disincentive to opposing to stupid or malicious proposals since refraining from voting was the only way to ensure your funds weren't committed to a "contract", and absence of anyone, anywhere being accountable for anything as it's chief/only selling point. Since when was that a $150m opportunity?

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

#65
post #58

Earlier quoted context omitted.

Thank you for your valuable input. The problem I see is not in having 51% of the whole capacity of the blockchain, but of the smaller entities/organizations/contract codes. With the proposed simple contracts, the little 'start-up' contract codes with little voting power will easily get acquired by bigger ones, which then vote for a code change to pay out the remaining shares. This is much more realistic that the trad…

It should be possible to define that you need e.g. 90% of the shareholders to approve a change to the contract. The 90% could still steal money from the 10%.

It is. The example code for a DAO [0] illustrates how everything from minimum quorum for proposals to margin of votes for a majority is configurable. However like you said, so long as the contract is mutable, it's possible for a majority to subvert it.

[0]: https://www.ethereum.org/dao

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

#66

Earlier quoted context omitted.

Business wants a reliable and predictable legal system. They don't care that the judge has a pulse. If the machine looses it and starts making terrible decisions, people would just start using a different arbitration group. You could probably even update old (well written) contracts to accommodate that.

Business wants a just and fair legal system. Reliability and predictability are extraordinarily easy. For example: he who pays the most to the judge wins. That's very reliable, very predictable. It can be automated. Decisions can be taken instantaneously with absolute and perfect certainty as to who should be the victor. But it isn't just or fair, nor is it friendly to business.

Business wants to maximize profit. It supports justice and fairness to the extent that they aid the production of profit and absolutely no further.

A just legal system may be imposed upon businesses, but the desire of each business is to transform that system into one where it receives maximum benefit for minimum expenditure.

Your example isn't desirable because it maximizes expenditure, not because it minimizes justice.

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

#67

Just from reading commentators here at HN, it doesn't seem like these issues were unforeseen. Rather, it seemed that whatever intense optimism exists around cryptocurrencies is capable of overwhelming investor sense in return for the promise of some ideological "win".

I feel like this might be a semi-unpopular opinion, but frankly I'm getting tired of the idea that a blockchain is the solution to every single problem the human race faces.

There's this almost religious level of looking the other way whenever there's some sort of failure in a blockchain system, and they always say "that was a one-off situation"

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

#68

Earlier quoted context omitted.

then totally mechanical arbiters will handle most disputes once they're good enough. I'm not seeing it. Who's going to enforce the outcomes of machine dispute resolution? I mean, who's going to even want to sign up to the machine dispute resolution? Not me, no way, that's the freaky dystopian future we're supposed to be trying to avoid.

Business wants a reliable and predictable legal system. They don't care that the judge has a pulse. If the machine looses it and starts making terrible decisions, people would just start using a different arbitration group. You could probably even update old (well written) contracts to accommodate that.

Business wants a legal system that will rule in their favor.

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

#69
post #56

There are two fundamental problems with Etherium contracts. 1. They're executable programs. They could have been a set of declarative rules listed in priority order, but no, the designers went overboard and made them general programs with loops and recursion. There are straightforward ways to analyze sets of rules; they're usually amenable to case analysis. It's hard to analyze programs. Writing a declarative contrac…

[deleted]
Post reply on HN