Smart Contracts are Neither

Not smart: the things called “Smart Contracts” fail to be smart in the same way that many similarly-named things fail to be smart. Marketing entities use “Smart” to mean, not “intelligent”, but just “has a computer in it, and does some things that might be good, and that it might not be able to do without a computer.”

So a Smart Phone is a phone that, as well as making and receiving calls and texts, also lets you get notifications of things that you don’t care about, and waste your time in pointless apps. As well as, of course, lots of good and useful things, none particularly involving intelligence. And a Smart Toaster, Smart Washer, Smart Watch, and so on are different from the usual versions primarily in that there are more ways for them to go wrong. They are “Smart”, but not smart.

The things called “Smart Contracts” are, similarly, not intelligent, but rather contain a computer (or in this case, since they are abstract entities, a computer program), and can go wrong in all sorts of new and complicated ways.

One could also say that they are “not smart” in the sense that they are not a good idea, the way that for instance joining an MLM is not smart. This would also, in general, be correct.

Not contracts: In law, a contract is a legally-binding agreement between two parties, or (more loosely) a record that demonstrates that such an agreement exists. There are various laws and treaties governing the nature of contracts, and lots and lots of case law (i.e. legal decisions, findings and what-have-you) spelling out how those laws should be interpreted in various situations.

The things called “Smart Contracts” are not contracts in this way. They are not even the kinds of things that can be contracts. They are little computer programs (much too little to be “intelligent” even in the sense that we call some computer programs “intelligent”), sometimes written in the Solidity language for instance, sometimes stored within or adjacent to an Ethereum blockchain, which get run by the corresponding platform under certain circumstances, and which can cause various operations related to the blockchain and its associated artifacts to occur.

For instance, and speaking of NFTs, a “Smart Contract” might be a program that says (once translated more or less into human language):

If a party X sends 100 dogecoins to account 12345, and account 12345 still belongs to the party associated with NFT 27FA9/JQ, then change the association of NFT 27FA9/JQ to party X, and send 15 dogecoins from account 12345 to account 87655.

where 87655 is the account of someone who for whatever reason gets 15% of the sales of some set of NFTs.

Now this is clearly not a contract. The fact that 87655 gets 15% from the NFT-sale that this program implements might or might not be a consequence of some actual contract, some agreement between two people, but it is not that contract or agreement itself. Similarly, the fact that the ownership of the NFT changes to X when X sends 100 dogecoins to some address might or might not reflect or implement some real-world contract between two people, but it is not itself that contract or agreement.

As I pointed out last time, in deciding whether or not a legally-enforceable contract exists, a court will be far less interested in what some bits inside some computer did, than they will be in what agreement some humans actually formed, what information they had, what their intent was in taking certain actions, and what they knew or had reason to know in various circumstances. None of which the “Smart Contract” tells us anything about.

Code is not law: We have recently seen some (well) amusing “Smart Contracts”, which said things like:

Withdraw from this account five times as much as the account contains, and deposit it into account XYZ.

expressed in a complex-enough way that the platform on which it was running said “Sure, okay!” and gave XYZ five times as much as the owners of the platform would have preferred. The suggestion that this was fine and dandy, since it was just the code doing what the code does, and code is law, and a contract is a contract, was not, as far as I’m aware, generally entertained, or even proposed, in this case; it was regarded as naughty at best. (Variants of this have happened several times now; this was the first one I noticed.)

Another example:

Conduct a community poll called “Do sensible things in case a scam is discovered”; if this poll gets positive votes from at least half the community, transfer digital assets worth sixty-four million US dollars from the community, to the creator of this poll.

As far as I’m aware, someone looked hard enough at the code in the poll to realize it was probably a bad idea, and got word out in time to prevent it from getting enough votes to do its thing, but since the poll / “contract” exists on the blockchain, it will in some sense Always Be There.

There are lots of examples of these, from “Smart Contracts” that create fungible assets that can be bought only from the creator and never sold (thus creating, erhm, a significant upward pressure on price until people realize what’s going on), to “Smart Contracts” that take money from anyone trying to delete a random weird thing that shows up in their inbox and pressing Okay on your typical “Allow this to forfle the mongio?” popup, to pretty much anything else you can imagine.

Not to mention more traditional attacks involving stolen private keys, trojan horses in “apps”, NFTs pointing at digital goods to which the NFT creator has no rights, and investment schemes that suddenly vanish with all of the invested funds, of which there are too many to even bother linking to; web3 is going just great is a lovely source for all of this stuff.

And my point in mentioning all of these (as well as supporting the idea that “Smart Contracts” might be not-smart in the “not a good idea” sense above) is that if the writer of any of these programs was caught and taken to court, it’s imho very unlikely that the court would find that they get to keep the money, because a contract exists in which the victims agreed to pay it to the beneficiary.

And that’s, again, because these things called “Smart Contracts” are not contracts. They are just little computer programs. And Code is Not Law.


Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: