3 ms·
Also if you get forced at gun point to sign a smart contract giving your money away (or say a company which takes longer to transfer), what would be your recour
by kosievdmerwe 8y ago
Also if you get forced at gun point to sign a smart contract giving your money away (or say a company which takes longer to transfer), what would be your recourse in a trustless world?
There's no recourse for deliberate fraud, sure you could read a contract before signing it and know exactly what it does, but you can hide surprising behaviors in innocent looking code. The Underhanded C Challenge (http://www.underhanded-c.org/ http://www.underhanded-c.org/) proves this.
- naasking 8y agoThat's why smart contract languages should be simple and analyzable by third-party tools and provide statically verifiable guarantees that are readable by ordinary humans. That's also why current smart contract languages are largely failures.
- warkdarrior 8y agoAnd how do you trust those third-party tools? How do you know they are not colluding with one smart-contract writer to steal your money?
- naasking 8y agoThree points: 1. Smaller trusted computing base. That's the whole reason I'm suggesting crypo might provide a more reliable foundation than a layered social structure. 2. Open source tools will exist. 3. Verification is more feasible now than ever. The more money that's involved, the more people will want formal guarantees. The Ether "thefts" of the past few years have highlighted exactly the deficiencies that I've been pointing out in these past few comments. Already some new contract languages have been proposed that are formally verified, simpler and provide meaningful static guarantees, with little meaningful loss in expressiveness. This situation will only improve in the coming years.
- pnw_hazor 8y agoComplicated deals (hell even simple deals) require complicated concise language. If you use simple language. You will still have to go to court to argue about what 'what' means in the context of your deal. Legal documents are complicated because we live in a complicated world. And, humans are terrible communicators who have no idea what they want but they somehow "know" what the otherside meant when they agreed to the deal. Even though there are unforeseen circumstances, mistakes, course of conduct that is inconsistent with the contract, and so on. If it was easy to do, it would be easy to do. Note, legalese is a bad thing, and modern American lawyering is trying to get away from it, but it still doesn't make things simple to understand, just less gobblygook filler language.
- naasking 8y ago> Complicated deals (hell even simple deals) require complicated concise language. If you use simple language. You will still have to go to court to argue about what 'what' means in the context of your deal. The lambda calculus, the SK combinator calculus and Turing machines are all very "simple" languages, but suffice to describe any computable function. There is also no ambiguity in their execution. Lack of ambiguity is exactly one of the benefits of smart contracts. > Legal documents are complicated because we live in a complicated world. Legal documents are complicated mostly because natural language is ambiguous, thus requiring considerable verbosity. Programming languages, and specifically smart contract languages, can be designed to be unambiguous, and thus avoid one significant complicating factor. > If it was easy to do, it would be easy to do. First, no one said it was easy. Second, computers haven't even been around for a century. The earliest conceptions of smart contracts were in the mid to late 90s IIRC. That's barely 20 years. Are you advancing the argument that if we haven't solved a problem in 20 years which took millennia to solve via social institutions, then it's unsolvable?
- pnw_hazor 8y agoYou are always going to have disagreements about what the words mean in the context of particular a case. I can see smart contract tools continuing to evolve to help draft or validate contract language. There are some enterprise contract management systems that do some this already. But, if things go sideways, IRL facts have to be interpreted in view of the contract you will still need lawyers and courts. Also, not sure how equitable grounds for breach could be accounted for. A person can have the law (contract, statutes, etc.) squarely on her side and still lose a case because of equitable reasons that are not anticipated by the contract or statutes at play. 2 + 2 doesn't always equal 4 in a court of law. And, if such systems become available, it seems unlikely that contracts will more understandable to layman. Instead of trusting their lawyers or legalese, people will have to trust the code/proofs. edit: typos 2x