Ethereum co-founder Vitalik Buterin recently expressed namer’s remorse at calling the applications that run on the Ethereum platform “smart contracts.”
Buterin’s comments followed a line of controversy about the terminology that suggests to some people that the code running on a blockchain platform reflects a legal relationship. Here’s a sample of opinions:
The “smart contract” banner is a very catchy marketing ploy. It has been instrumental as an adoption driver. It’s edgy, contrastive and highly-prescriptive: if you’re not hip to “smart contracts,” well, then, maybe you’re just not … smart.
Posted by CleanApp (To be fair, the piece actually argues against calling them smart contracts.)
Developers refer to smart contracts as distributed applications or Dapps (pronounced dee-apps or dapps). That nomenclature avoids misperceptions about what the programs actually are, and what they can and can’t do.
–Lawyer James F. Brashear
So, let’s call smart contracts what they actually are: Dapps.” (footnoted citation excluded).
Smart contracts are not contracts in the legal sense. They are not drafted by lawyers; they are written by computer programmers—they are software.
Lawyer Amir Azaran at the CDX Academy Blockchain Brand Innovation Summit in New York.
It’s not surprising. Calling something a “contract” means something to lawyers. Maybe we see it as invasion on our territory (when we’re not counting the potential billable hours when we realize that technology that is the next BIG THING involves “contracts” and the number of lawyers who have even read about smart contracts can be counted in the double digits (I submit the traffic report from my Google Analytics account for this blog as evidence.)
But the lawyers and Buterin have a point. There’s about a 10,000 year tradition of defining a contract to include these elements: (1) an offer, (2) acceptance of the offer, (3) consideration a/k/a a promise of an exchange of value and (4) mutuality — “meeting of the minds” a/k/a a common understanding of the terms that were offered and accepted. And, if you’re about to Google my claim about the length of the tradition, please just stop. I have no idea how long that tradition goes back, but I kinda suspect it dates back to whenever humans started trading with each other, so actually more like 50,000 years ago (and, again, stop with the Googling).
It doesn’t take something very formal to create a contract. Soccer (football, for my handful of U.K. readers) superstar Leo Messi’s original contract with Barcelona, a team which he helped make into one of the greatest of all time, was written on a napkin. And, of course, this blog post would not be complete without mentioning computer scientist and lawyer Nick Szabo’s example of a vending machine as a smart contract (yeah, back in 1997 he used the term “smart contract”).
Perhaps, part of the confusion arises from associating the legal relationship — what we call a contract — from the document (or in the case of a vending machine, the system) that memorializes the relationship. I suppose that technically a 100-page asset purchase agreement that is sitting on conference room table waiting to be signed may not be a “contract” in the strictest sense since there has been no acceptance, but every lawyer would call that a contract (actually, we’d call it an agreement or an APA because that’s how we roll).
But every piece of code is not a contract. The following standing alone doesn’t reflect an offer, acceptance, consideration or mutuality (although it probably does reflect my bad Python coding skills):
if x==20 : # btw, in Python, the == means equals
print(“Hello World!”)
But what if the code reflected that if Wilma paid 20 Bitcoin to Fred, then Fred would print a banner for her that said “Hello World!” along with offer and acceptance and some evidence of mutuality That sounds like a contract to me, at least in the sense of a document or system that reflects the elements of a contractual relationship. It also sounds like a pretty bad deal for Wilma unless the value of Bitcoin goes down a lot further than it already has.
So, how about this for a compromise: we call software code a contract only when it actually is a legal contract or at least it reflects a relationship with the 4 elements of a contract, the same way a paper document reflects those elements? That doesn’t mean that computer code can’t be “smart.” That’s the brilliance of smart contracts, they effectuate at least part of the relationship formed by the contract automatically. In the vending machine example, I put my dollar in the machine and a package of those horrible (but delicious) peanut butter crackers comes out. With software, for example, funds can transferred automatically when certain events occur or a title to property recorded on a blockchain ledger can be transferred when a payment is received.