Smart contracts (or, the term I prefer, PETs) are pretty cool: they can reduce transaction costs by cutting out monitoring and enforcement. More philosophically, they allow people to credibly bind themselves. But, society probably shouldn’t want them to be legally enforceable.
The bull case for PETs is that they can eliminate the need for enforcement — especially litigation, the most expensive kind of enforcement there is. Moreover, they can increase opportunity by forcing people to keep their commitments. Companies can attract users by promising not to abuse their personal information…or they can be like Apple, and make it provably impossible to abuse that data. PETs put that commitment on steroids.
But, at the end of the day, “smart contracts” are neither smart nor contracts. They can’t adapt to ambiguity, and are only as good as the person coding them. Really, they’re “dumb” — just like the “pipes” of the Internet, which carry data without knowing what that data is. Similarly, they’re not contracts: a contract is essentially an agreement, and agreements live in people’s minds, not on hard drives. “Smart contracts” are really just programmatically-executed transactions (hence, PETs). They’re not agreements — they’re technology for enforcing agreements.
PETs can be fantastic…when they work. But contract law is all about what happens when things don’t work. It’s the messy process of figuring what was in each person’s head, and whether they made good-faith efforts toward the agreement or otherwise had good excuses.
By nature, “smart contracts” can’t deal with ambiguity, nor can their programmers plan for every contingency, nor do we have the capability of translating all the real-world data we might need (including the content of minds) to adjudicate such things.
Some factors contract law has to figure out: Who are the parties? What was the agreement? Was the offer/acceptance valid? Was value (“consideration”) flowing both ways? Were there good faith efforts, or excuses for breach? Partial performance? Strategic breach?
Sometimes, a contract isn’t enforceable. For example, it could be so obviously unfair as to bespeak duress: contracts are only valid with mutual consent. A contract might also lack mutual consideration; courts won’t hold people to one-sided contracts. A contract might also be void if it’s against public policy, such as a real estate covenant that only allows subsequent transfers to members of a certain race.
Let’s think of what it would mean for a PET to be legally-enforceable, using the DAO incident. Technically, when the “contract” was drained of ETH, it wasn’t breached. The rules were followed. Strategically and maliciously, yes…but followed nonetheless.
When the ETH community forked away from ETC, it was protecting the agreement (crowd-sourced venture capital!) in its users’ minds — but it did so via social repudiation (breach) of the “contract” itself. So, the “correct” answer (if “code is law”) is that the community should be bound by the terms. In other words, the community must honor the theft and should be legally prohibited from using ETH.
Clearly, banning forks is bonkers. “Law” is only as good as social consensus. But if the whole point of a “smart contract” is escaping the law…well, you’ve got a bit of a paradox, don’t you?
Some other problems: contracts require counterparties; PETs do not. When things go south…whom do you sue? The community as a whole? The network operators (i.e. miners)? The guy who wrote the code itself? Anyone with control over EIPs? @VitalikButerin?
In reality, “smart contracts” aren’t contracts. Rather, they’re a particular mechanism of enforcement for the contract that exists in the mind. In other words, the existence of a PET is evidence of a contract.
Put differently, it doesn’t matter if a “smart contract” executes incorrectly or is bugged. If it works, great; if not, a court will have something to say about it. The court might infer the agreement from the documentation/advertising/content of the code…which means that, in a sense, a “smart contract” was *always* legally-enforceable — just not (necessarily) by its own terms. And that’s probably how it should be, because you only need court ordering when things have gone really sour.
In sum: PETs reduce the need for litigation by clarifying basic obligations and automating performance. But once you’re in litigation mode, they have very little impact, except as evidence of the contract in people’s heads. Sometimes that’s unenforceable…and that’s good.