Are “Smart Contracts” Contracts?
…or: why you should not feed cheese to your computer mouse…
Can a “smart contract” be a contract in the legal sense, that is: can it be legally enforceable? We cannot address this question without knowing what a “smart contract” is and what a contract is.
Let’s start with “smart contracts.”
The US National Institute of Standards and Technology describes them as a “collection of code and data (sometimes referred to as functions and state) that is deployed using cryptographically signed transactions on the blockchain network.”
Those dudes are pretty smart so if they say a “smart contract” is a “collection of code,” they probably know what they are talking about.
But: the term “smart contract” has gained popularity with the development of the Ethereum blockchain, so maybe it is worth having a look the Ethereum.org website. It states:
“A “smart contract” is simply a program that runs on the Ethereum blockchain. It’s a collection of code (its functions) and data (its state) that resides at a specific address on the Ethereum blockchain. Smart contracts are a type of Ethereum account. This means they have a balance and they can send transactions over the network. However they’re not controlled by a user, instead they are deployed to the network and run as programmed. User accounts can then interact with a smart contract by submitting transactions that execute a function defined on the smart contract. Smart contracts can define rules, like a regular contract, and automatically enforce them via the code.”
Ok. So it is a collection of code and a type of Ethereum account but “they define rules like a regular contract.” Interesting. I had no idea that regular contracts “define rules” but… I guess we could agree if we introduced heaps of clarifications and caveats and disregarded a large part of contractual doctrine… Nevermind.
One of the classic books on the topic, Mastering Ethereum, states:
“In the context of Ethereum, the term is actually a bit of a misnomer, given that Ethereum smart contracts are neither smart nor legal contracts, but the term has stuck. In this book, we use the term “smart contracts” to refer to immutable computer programs that run deterministically in the context of an Ethereum Virtual Machine as part of the Ethereum network protocol — i.e., on the decentralized Ethereum world computer.”
Vitalik Buterin observed that he regrets using the term “smart contract” for something that is a “persistent script.”
To complicate matters, technical writings (both academic and industry) contain dozens of inconsistent definitions/ descriptions of “smart contracts.” I mean: dozens.
Without a standard definition, it seems illogical to inquire “are smart contracts contracts?” as each “smart contract” must be analysed individually. Sometimes it looks like everybody's talking about a different thing. Especially when lawyers come into the picture. My question: why would we debate the legal character of a “persistent script”? How could “immutable computer programs” be contracts? Why would we want to use the analytical tools of contract law to examine computer programs?
Are we asking the right question(s)?
Maybe “smart contracts” are to contracts what computer mice are to rodents?
Now, let’s clarify what a contract is, in the legal sense. [Alert: boring.]
A contract is a legally enforceable agreement. An agreement is the product of two parties intending to be bound by their respective promises. Sometimes we also speak of “offer and acceptance.” The latter concepts are not, however, indispensable components of a contract but analytical tools used to determine the exact time or place a contact is formed.
(0) The common law of contract is quite messy because — guess what. It developed in a decentralized fashion! There was no single, centralized wise dude who proclaimed the principles of contract law. It was more like, hundreds of dudes over hundreds of years in different locations that gradually created the principles of contract law in response to actual disputes. As decentralized and organic as it gets, baby. (Civil law jurisdictions are a bit different — they rely on Roman law and dudes in long dresses; this post is only about the Common Law of Contract).
(1) Contract law does not always clearly differentiate between enforceability and validity. A seemingly valid contract may be unenforceable due to the presence of so-called “vitiating factors,” like, economic duress, mistake or misrepresentation, as well as on grounds of illegality (think: Silk Road, where many transactions had an illegal subject matter). Also, a contract will not be enforceable if one or both parties have no contractual capacity (e.g. they are 10 years old or have brain damage because they crashed in their Lambos).
In principle, if you want your agreement to be a contract in the legal sense, you need two basic components:
Intention + consideration
The parties must intend to be legally bound. Usually, whether somebody intends to be legally bound depends on the context in which an interaction occurs or in which words are spoken. If it looks, objectively speaking, that you want to transact — the law automatically assumes that you have contractual intention. (To fully “get” this — you need to read about 500 pages of cases and attend hours of boring lectures. The theory is difficult, the practice is easy. If you want to buy stuff, the law will assume you want to contract and that you have the necessary intention.)
Next, intention must be manifested in some manner. This is simple in practice. The parties can express their intention in any way they want because contract law is indifferent to the manner or form of expressing intention. Subject to few exceptions, contracts need not be in writing or formalized in any manner. Many self-proclaimed “smart contract” gurus proclaim that contracts in general require notaries etc. Total nonsense. Very very few contracts require formalities — not to mention notaries. Also, there are no legal obstacles to expressing a contract in code. I address this issue here:
Can we express contracts in code?
…or: why it is totally fine to enter into contracts you don't understand…
In practice, most contracts are formed by conduct or orally. Think: malls, markets, supermarkets, ticketing machines, amazon etc.
You have been forming legal contracts all your life: buying groceries, lambos, laptops, drinks, tickets, houses, insurance etc. (and how often have you used a lawyer or a notary? just asking…)
This is where things get complicated. Consideration emphasizes the reciprocal nature of contracts. It is something given in return. We contract to get something from the other party — think: dollars for stilettos or bitcoin for bubble gum. The stilettos are consideration for dollars and dollars are consideration for stilettos. Bitcoin is consideration for bubblegum and bubblegum is consideration for bitcoin. Each party has to provide consideration to the other.
For something to be a contract, it must have at least two parties and each of them must provide consideration to the other (there is one exception that's irrelevant here).
In the context of consideration, two questions arise: 1. “can crypto-assets be consideration?” and 2. “does the smart contract involve an exchange?”
Question 1: easy. Yes. Consideration need not be adequate; it only needs to be sufficient in the eyes of the law. In laymen’s terms: courts will (almost) never enquire whether the price adequately represents the value of the things being exchanged or whether a transaction makes commercial sense. Bitcoins or tokens can constitute valid consideration. I can exchange my Lambo for 1 ETH or for 1 dogecoin or for 100 USD. Perfectly fine in contract law — but you might get in trouble with the tax man (note I am using the word “exchange” not “sell” — a sale requires that the price be paid in fiat, tasty USD or CHF, not crypto…).
Question 2: hard. Contract law does not require equivalence of value — but it requires an exchange. One party does something or promises something to the other party and, in return, obtains a promise or an act from that party. Most contracts are bilateral in nature: two parties make and receive executory promises. Don’t be confused by the term “unilateral contract” — it does not mean that it is one sided or that it does not require an exchange. It only means that one party makes an executory promise in return for the doing of an act. (vending machines are offers in unilateral contracts — you accept the offer by payment.)
If, however, something is not given (or promised to be given) in return for something else, there is no contract. Why is this important? Because: if a “smart contract” does not involve reciprocity, questions of its enforceability are pointless. We are simply not dealing with something that can be analyzed as a contract.
Many smart contracts, seem to be unilateral transfer mechanisms: instructions of varying degrees of complexity to transfer some crypto from one account to another. Such transfer mechanism, to be clear, can facilitate the provision of consideration — if the consideration takes the form of cryptocurrencies of tokens. It is not. however, a contract.
For example: a credit card (issued by your evil bank) can be used to pay for stuff, including vodka. The card is a technology that facilitates payment, moving juicy dollars from one account to another. It helps you to provide your side of the bargain— payment for goods/services — but it is not a contract.
Unfortunately, the fact that contracts require or involve exchanges often passes unnoticed. Many of the existing implementations of “smart contracts” confirm that they are programs enabling the transfer of crypto-assets or, to be more technical, programs codifying the conditions of such transfer. Many “smart contracts” are really “just” apps executing on various blockchains… They “just sit there” and wait to be called… If you look at the “Mastering Ethereum” book, smart contracts are described as the back-end of dapps… and dapps can be anything: games, collectibles, investment schemes etc. Check out some dapps here:
State of the DApps - A list of 3,734 blockchain apps for Ethereum, Hive, EOS, and more
The curated list of decentralized applications
or maybe dig around https://etherscan.io for some “smart contract” code…
Most importantly, contracts require 2 parties.
The “smart contract” itself cannot be a party. I think it is fair to assume that “smart contract” developers do not become parties just by creating a “smart contract” and deploying it in a live environment…
To be clear: I am not saying that “smart contracts” cannot be contracts in the legal sense. Theoretically, they could. All I’m saying is that, in practice, given what they actually are asking whether they can be contracts makes little sense… For something to be a contract, it needs to be an agreement first (clumsy sentence, sorry). How is a dapp an agreement?
If you want to inflict an entire paper upon yourself, here it is:
Smart Contracts: A Requiem
22 Pages Posted: 29 Dec 2019 Date Written: December 7, 2019 "Smart contracts" are technologies that facilitate the…
It’s got all the references— and it has been peer reviewed.
Disclaimer: this blog is separate from my teaching position at the Faculty of Law, CUHK. All brilliant and not-brilliant views are mine.