Live data from Hacker News

Cryptocontracts Will Turn Contract Law Into a Programming Language

thoughtinfection.com

51–60 of 91 posts

Re: Cryptocontracts Will Turn Contract Law Into a Programming Language

#51
post #29

I don't want to be negative-HN-commenter, but this seems crazy to me. First, expressing a contract in a programming language is a much harder problem than expressing a contract in English. How would you even express babysitting or lawnmower-borrowing as a program? Second, lawyers go to great efforts to cover all the cases and even so there are usually things uncovered. Programmatic contracts aren't going to be any be…

Very good arguments, thanks. I'll try to refute all of them. 1. Contract in a programming language does not leave room for misinterpretation. If there are N conditions to unlock money, they are all well-defined (unless there's a bug in the entire system, of course). Since there's no room for interpretation, lawyers do not need to "cover many cases" (like they do today so their opponents don't find a loophole). Compar…

[deleted]

Re: Cryptocontracts Will Turn Contract Law Into a Programming Language

#53
post #29

I don't want to be negative-HN-commenter, but this seems crazy to me. First, expressing a contract in a programming language is a much harder problem than expressing a contract in English. How would you even express babysitting or lawnmower-borrowing as a program? Second, lawyers go to great efforts to cover all the cases and even so there are usually things uncovered. Programmatic contracts aren't going to be any be…

> How would you even express babysitting or lawnmower-borrowing as a program? What if all you needed to do was sent x btc to 13cyfKGfbyyuyiJVLj8S1QZ34x281X1neh which would trigger a lawnmower algorithm [1] to scan all available wifi connected lawnmowers, and send an idle one to mow your lawn - while compensating the anonymous owner for 'lending' you his machine. The implications of distributed blockchains are so huge…

You go quite a bit too far. How does one verify that the lawn mower actually is a lawn mower and not something pretending to be a lawn mower? How do I prevent someone stealing the lawn mower while it's in transit (or doing its job)? Bitcoin may offer new solutions, but it doesn't directly do anything in meat space. When there are conflicts between people we need to somehow resolve them, and a systematized way of doing that is called government.

Re: Cryptocontracts Will Turn Contract Law Into a Programming Language

#54

Earlier quoted context omitted.

> How would you even express babysitting or lawnmower-borrowing as a program? What if all you needed to do was sent x btc to 13cyfKGfbyyuyiJVLj8S1QZ34x281X1neh which would trigger a lawnmower algorithm [1] to scan all available wifi connected lawnmowers, and send an idle one to mow your lawn - while compensating the anonymous owner for 'lending' you his machine. The implications of distributed blockchains are so huge…

You go quite a bit too far. How does one verify that the lawn mower actually is a lawn mower and not something pretending to be a lawn mower? How do I prevent someone stealing the lawn mower while it's in transit (or doing its job)? Bitcoin may offer new solutions, but it doesn't directly do anything in meat space. When there are conflicts between people we need to somehow resolve them, and a systematized way of doin…

> When there are conflicts between people we need to somehow resolve them, and a systematized way of doing that is called government.

Certain governments seem to making, not resolving conflicts between people. And they purposefully make these said conflicts in order to generate profit for tiny segments of the population. Iraq, Afghanistan, Libya, Syria, Ukraine, Venezuela, [...Iran?].

I get your initial point, but the past century has shown that democracy needs to be direct and NOT delegated. Algorithms and distributed blockchains could very well facilitate the dawn of a more decentralized and democratic world.

Re: Cryptocontracts Will Turn Contract Law Into a Programming Language

#55
post #29

I don't want to be negative-HN-commenter, but this seems crazy to me. First, expressing a contract in a programming language is a much harder problem than expressing a contract in English. How would you even express babysitting or lawnmower-borrowing as a program? Second, lawyers go to great efforts to cover all the cases and even so there are usually things uncovered. Programmatic contracts aren't going to be any be…

Very good arguments, thanks. I'll try to refute all of them. 1. Contract in a programming language does not leave room for misinterpretation. If there are N conditions to unlock money, they are all well-defined (unless there's a bug in the entire system, of course). Since there's no room for interpretation, lawyers do not need to "cover many cases" (like they do today so their opponents don't find a loophole). Compar…

I wanted to respond to this deleted comment:

    gamblor956 17 minutes ago | link

    The problem is, and always will be, constructing the
    contract in such a way that it is comprehensive and
    comprehensible. We have yet to master that in languages
    that have existed for thousands of years; it is highly
    unlikely we'll master that within the limited framework
    of a a programming language which by its nature can't
    address unanticipated situations.
The fact that something hasn't happened doesn't mean that it will never happen, nor does the age of a language imply its usefulness for any particular purpose (and no language spoken on Earth has remained unchanged for hundreds, let alone thousands of years).

The formal notations introduced by mathematicians allowed for an explosion of knowledge and discovery that wasn't possible using plain language, while improving simplicity. Consider which is more understandable: a² + b² = c², or the sum of the squares of the two sides is equal to the sum of the squares of the hypotenuse.

Similarly, I expect that some day, given the right innovation in language, technology, or procedure, we could produce an equivalent leap forward in the way we think of laws, contracts, politics, and governments.

Re: Cryptocontracts Will Turn Contract Law Into a Programming Language

#56
post #22

Contracts are sort of like computer programs, read and executed by people -- by the parties; by constituencies within a corporate party; and sometimes by judges and juries -- instead of by CPUs. Except that, unlike people: [EDITED FOR STYLE] * CPUs don't come up with imaginative reasons why they supposedly needn't follow a clear, unambiguous program instruction. * CPUs don't experience buyer's remorse and decide they…

On the other hand, programming people is a much more high level language.

So high level, even managers can make complex programs in it.

Re: Cryptocontracts Will Turn Contract Law Into a Programming Language

#57
post #34
post #16

Earlier quoted context omitted.

How does the computer know conditions have been met, and what prevents using those same mechanisms with ordinary contracts?

exactly this. If the conditions were clear and unambiguous as to whether a contract's term was satisfied or not, there would be no need for lawsuits to enforce a breach. It's precisely because of the enormous ambiguity in human affairs, even when both parties are acting entirely in good faith, that hundreds of years of contract law exists, and courts and lawyers and lawsuits and police to enforce them. The OP's examp…

This x2.

The problem is that creating(or choosing) a "neutral third party" is much harder than converting everyone to Bitcoin users.

Re: Cryptocontracts Will Turn Contract Law Into a Programming Language

#58
I'll put down my textbook on Scottish conveyancing law here to make an observation that this idea suffers from the same delusion that 4GLs had: they were going to be the "end of programming!" All you have to do is specify what you want and the computer will deliver it!

It turns out that working out what you mean is the hard problem, both in programming and in law. You can't forsee all contingencies, just a subset; maybe you run some test cases to clear things up. That's what case law is - a stream of bugfixes and clarifications dealing with corner cases.

The recent bitcoin fiasco involved the question of what "transaction id" meant, and that it was not as unique as some people thought. Likewise if you look at commercial law cases, you'll find a lot of trying to interpolate what was meant in a particular case where something wasn't specified and assumed differently by the parties. Or something unexpected goes wrong and responsibility for fixing it has to be assigned.

(If you want to programmatically improve the legal system, you could for example give the US a functioning land registration system like everywhere else, abolishing the need for title insurance.)

Re: Cryptocontracts Will Turn Contract Law Into a Programming Language

#59
post #29

I don't want to be negative-HN-commenter, but this seems crazy to me. First, expressing a contract in a programming language is a much harder problem than expressing a contract in English. How would you even express babysitting or lawnmower-borrowing as a program? Second, lawyers go to great efforts to cover all the cases and even so there are usually things uncovered. Programmatic contracts aren't going to be any be…

I can see this being useful for certain financial contracts that are: a) not completely standardized b) based on a linear combination of standardized terms, and c) with all conditional terms based on objective external references (i.e. price of a dec 2016 corn contract on the Chicago Board of Trade). The advantages would be that a contract compiler could enforce certain meta-rules, and the contract itself could be entered into an automatic settlement system rather than instructions based on the contract. I'd expect even in that case the canonical form would still be the English language output rather than the source code.

But for any arbitrary contract, I agree, I don't see it at all. At least not anytime soon.

Re: Cryptocontracts Will Turn Contract Law Into a Programming Language

#60

Earlier quoted context omitted.

You go quite a bit too far. How does one verify that the lawn mower actually is a lawn mower and not something pretending to be a lawn mower? How do I prevent someone stealing the lawn mower while it's in transit (or doing its job)? Bitcoin may offer new solutions, but it doesn't directly do anything in meat space. When there are conflicts between people we need to somehow resolve them, and a systematized way of doin…

> When there are conflicts between people we need to somehow resolve them, and a systematized way of doing that is called government. Certain governments seem to making, not resolving conflicts between people. And they purposefully make these said conflicts in order to generate profit for tiny segments of the population. Iraq, Afghanistan, Libya, Syria, Ukraine, Venezuela, [...Iran?]. I get your initial point, but th…

I made no claim that everything we can call government is a good idea. Just saying that the notion that you have bitcoin so now you don't need government is missing at least a few steps (if any similar claim holds at all). We might be able to implement some parts of government atop technology (we already do, really), but that doesn't mean there's no government.

"I get your initial point, but the past century has shown that democracy needs to be direct and NOT delegated."

I'm not at all sure that direct democracy makes things better. Just look at the history of referenda in CA.

More generally, there is the tremendous problem that as an individual, I don't have the time to fully research every issue. The median position of a bunch of half-informed individuals plied with advertising is not something I have a lot of confidence in.

All of that said, I'm not convinced direct democracy is actually worse either - it does address the agency problems with representative democracy, which can be significant. Possibly some variant of liquid democracy could prove to be the best system.

Post reply on HN