Live data from Hacker News

Simple Contracts are Better Contracts: the Meltdown of the DAO

blog.blockstack.org

71–80 of 105 posts

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

#71
post #22

Earlier quoted context omitted.

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.

If you could capture the entire logic in code, it wouldn't be arbitration, it'd just be a feature of the smart contract.

The way you'd encode an arbitration clause into a smart contract is making the arbitrator an oracle. That makes it a part of the smart contract, but it's still resolved by an external arbitrator.

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

#73
post #62
post #60

Earlier quoted context omitted.

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.

A better example is Haskell, which usually compiles down to a low level C dialect.

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

#74
post #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"

I'm also finding the "blockchain all the things" concept ... perplexing.

I really don't understand the mechanism or dynamics.

It seems I'm not the only one.

There's a growing set of evidence of breakdown among institutions founded on or around Blockchain: Bitcoin, MtGox, Ethereum, others.

And a profound failure to either understand or acknowledge (and I'm not sure which of the two it is predominantly, or how much it varies by individual) what money, currency, and contract actually are.

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

#75
post #73
post #62

Earlier quoted context omitted.

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.

A better example is Haskell, which usually compiles down to a low level C dialect.

Any language can compile to the low level C dialect.

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

#76
post #71

Earlier quoted context omitted.

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.

If you could capture the entire logic in code, it wouldn't be arbitration, it'd just be a feature of the smart contract. The way you'd encode an arbitration clause into a smart contract is making the arbitrator an oracle. That makes it a part of the smart contract, but it's still resolved by an external arbitrator.

Am I correct in thinking that a smart contract has to be open source? Because there might be good reasons to keep the arbitration oracle's source code secret.

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

#77
post #52

Can code both embody and replace law for the exact function for which it is set up? DAO strives to execute through code an idealized pooled investment system by which contract issues are resolved entirely by code and wholly apart from any external societal legal or enforcement mechanisms. All well and good but, where people are involved, code simply cannot define all the relations needed to capture what the law does…

> But contracts can never define the totality of the law that applies to a given situation, even if the parties swear up and down that that is their intent.

I think this is true, and this is probably all you had to say.

> Can code both embody and replace law for the exact function for which it is set up?

Sure, yeah. 99.9999% of people in rich code-enforced transactional systems like EVE Online and the NASDAQ order book are content with how code has replaced and embodied the "law" (or more broadly, "how things work"), despite the fact that people win and lose at this video game and in the real stock market all the time. It's clearly not just about people being mad and losing a ton of their money, because that happens in the stock market all the time but losers rarely sue NASDAQ.

It's just when people do sue NASDAQ, hilariously, it's when there's bugs in the order book / exchange code, or shutdowns of the market due to technical errors. Do you see how that is different? What matters isn't whether or not a "contract is a contract," but whether or not there are bugs.

A bug is a concrete thing. It's not something you can abstract away into your bigger point about "human relations" and a "system of laws."

You can write a test for nearly all kinds of bugs and show very confidently that whatever the issue was, it won't happen again. There's no such thing as unit tests for laws, unless you get so abstract as to lose everything essential about unit tests. You can reproduce bugs in code infinitely, but you don't get to re-adjudicate disagreements in contracts infinitely. There's so much that's different between disagreements over legal interpretations and a software bug that you're missing why people view the fork as relatively uncontroversial.

There was a bug in the code which led to an exploit. It isn't a refutation of law being embodied in code. It's just a refutation that this particular exciting contract system wasn't treated like the multi-hundred-million dollar software product it turned out to be. The story is smaller than you make it to be.

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

#78
post #8
post #5

Earlier quoted context omitted.

It's not like honoring contracts is unsolved. Bookies have been doing it forever with questionable effectiveness. PayPal offers arbitration on stranger to stranger sales. Again with questionable fairness in tough cases. Kickstarter et al are doing a pretty good job as arbitrators and collecting money and issuing refunds more or less fairly.

I do see room for improvement in efficiency. Kickstarter and PayPal surely have large teams working on arbitration, review and fraud that could be delegated back to the involved parties vote with some rules. And law suits can be very inefficient. This absolutely could be solved without a block chain.

I don't understand how arbitration would work. Say "A" buys something from "B". Later "A" complains what was shipped isn't what he ordered. How do you solve this with a blockchain and votes?

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

#79
post #62
post #60

Earlier quoted context omitted.

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.

Note that putting a language on top of the existing language won't prevent VM stack overflows of the type used in the attack. It's more likely to hide them.

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

#80

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'm not a member of The Dao, although I do have some Ether. I switched from engineering to law in the early 90's.)

I'm sure there are some lawyers who got involved--I was tempted to get some experience with the concept early on. I decided not to primarily because the basic concept of crowdsourcing decisions where the ownership interest determines who has most of the voting power and the major holders are likely to be new at it strikes me as, frankly, a silly idea.

But even if all the participants were lawyers or represented by lawyers there are still going to be bugs. Pick up any set of service terms for just about anything and there will be logical flaws. It's just human nature. There is no such thing as a perfect contract.

To me the most interesting thing about this episode is that The Dao included limitations imposing an time lock on withdrawal that gave the community some time to consider what to do and the pros and cons re the whales in the Ethereum community doing a hard fork in the name of justice.

Post reply on HN