Can We Run the World on Smart Contracts? Computer Says No
When Ethereum introduced smart contracts into the blockchain ecosystem, everything changed. Suddenly, the possibility of building an entire financial system built on trustless principles came into view. How far can you take that idea? Well, that depends on who you ask.
The concept of smart contracts was first introduced in 1994 by Nick Szabo, a computer scientist, and legal scholar. He compared them to “the humble vending machine,” which automatically dispenses a product when the correct payment amount is inserted.
Essentially, a smart contract is a computer program that automatically executes the terms of a contract when certain conditions are met. It can be used to facilitate, verify, and enforce the negotiation or performance of a contract. It’s a way to use code to create self-executing agreements without using an intermediary (like a lawyer executing a will, for example.)
One early example of a smart contract existing outside of the blockchain is escrow services. During the early 2010s, these became the default way of executing transactions on dark web marketplaces, which required low human input to minimize the vulnerability to law enforcement. The buyer would place the funds – usually in BTC – in the escrow account and would only execute the smart contract to release the funds when the product had been delivered.
The implementation of smart contracts remained niche and largely theoretical in the years following Szabo’s initial proposal. However, since the launch of the Ethereum blockchain in 2015, smart contracts have come into their own.
The simple idea is that as you increase the complexity of smart contracts, you can create entire decentralized applications on the blockchain (dApps). In the case of DeFi, this has allowed for the creation of trading, lending, borrowing, and some insurance services. All of which are based on trustless principles with no human intermediary.
Beyond “Code Is Law”
The prehistory of smart contracts arguably begins with Lawrence Lessig’s book ‘Code and Other Laws of Cyberspace’ (1999). In it, he argued that within cyberspace, computer code was largely analogous to real-life laws and could even replace them. This idea seems quaint in 2023, when the internet permeates every aspect of our lives, and governments regulate almost every aspect of business and individual behavior. Back then, it was radical.
However, Lessig’s book gave the world one phrase with a long legacy: “code is law.” Contemporarily, this is often used as shorthand to describe how math and code can remove ambiguity and manipulation. Not everyone agrees it’s that easy.
“As we all saw with Luna/Terra, Celsius, and FTX last year and Mango DAO recently – code reaches its limits, and bad actors can instrument hostile takeovers, hacks, or other malicious advantages,” says Nicolas Biagosch, the co-initiator of the Q Blockchain, whose defining motto is “Beyond Code Is Law.”
“As more humans enter the Web3 world, good governance needs more room for nuance and human intention. “Code is law” works for some situations, but not all.”
Smart Contracts Have Drawbacks
One of the professions in the sights of smart contract maximalists is the legal profession. Why have a bureaucratic (and some would say corrupt, depending on where you are) hierarchy of arbitration when you can simply execute legal decisions in code; essentially, reversing Lessig’s idea of code being cyberspace law. Why not make code the real law?
There are a few simple rebuttals to this idea: courts can reverse bad decisions and reduce the likelihood of them occurring again in a widely comprehensible way. In a crypto context, if some BTC has been sent erroneously or fraudulently from one party to another, a court can consider the evidence and order the funds to be sent back.
But in an append-only system like blockchain, you will effectively write that transaction into stone. Blockchain is immutable, so smart contracts and verified transactions cannot be reversed, complicating things immeasurably. You can update a smart contract to fix bugs. But it is far more costly and time-consuming than downloading a patch for your game.
We can certainly go beyond DeFi and implement smart contracts elsewhere in society, continues Biagosch. “Can we rely solely on code? Not the way the code is now. Nuance, intention, and complexity are the limit of smart contacts today. To build decentralized societies and organizations, we need to find a way to combine trustless code with tools that account for human intention.”
“Code cannot account for every situation. And humans have the unique power to think retrospectively, judge intention, and determine whether certain actions align with or against the rules. Going beyond “code is law” does not mean moving away from using code as the fundamental governance layer in Web3. It means using code and human language together.”
Ironically, Humans Are The Missing Piece
Like a vending machine, smart contracts also cannot match the complexities of the human societies they operate in. They are not “smart” as we commonly understand them, says Cain Cao, a core member of KCC and GoDao. “They can not execute transactions automatically, store complex data structures, execute complex computations, and expensively, these are short-term problems.”
“In the long run, the biggest limitation of the smart contract or DeFi is its ability to perceive the real world,which means that we lack efficient and secure oracle services that require third-party proxies. There are still no mature solutions for more complex insurance, asset mortgages in the real world, and so on.”
One clear avenue for smart contracts is the potential to augment them with AI and machine learning. The inexorable rise of chatbots like ChatGPT has opened the possibility of adding a “human-like” dimension to them. Essentially creating self-fulfilling machines that can execute transactions themselves and call upon huge datasets. But, as anyone who has used an AI language model will know, they are far from perfect. If AI generated the input, how could we verify it was the correct one?
It only compounds a preexisting problem of smart contracts. They are written in code that most of us can’t read or write.
“The entire design behind smart contracts should be changed,” says Awa Sun Yin, co-founder at Anoma. “For users to interact with smart contracts safely and privately, they need to understand extremely well what’s happening not only in the direct smart contract but also the other smart contracts that are called and how the underlying blockchain works. This is unfeasible, and often results in people using these applications without understanding the risks – and paying a high price unexpectedly (e.g. exploits, leaking sensitive data).”