Nick Szabo, the Father of Smart Contracts, Still Wants To Improve Smart Contracts
To continue in my series about the great speakers I saw in Korea last week, let's take a deep dive on how Nick Szabo, widely referred to as the "father" or inventor of smart contracts, feels his child is doing these days. Previously, I talked about his speech and how it related to "trust minimization", but this post will focus exclusively on smart contracts.
Szabo introduced the "smart contract" concept in 1994 in Extropy #16 with an article titled "Smart Contracts: Building Blocks for Digital Free Markets." He has been tweaking the concept ever since. In a rework of that same article that the University of Amsterdam published in 1996 and maintains here, he claims
Whether enforced by a government, or otherwise, the contract is the basic building block of a free market economy. Over many centuries of cultural evolution has emerged both the concept of contract and principles related to it, encoded into common law. Algorithmic information theory suggests that such evolved structures are often prohibitively costly to recompute.
Referencing Hayek, like all good libertarians do (his words not mine, see below), he makes the point that, "If we started from scratch, using reason and experience, it could take many centuries to redevelop sophisticated ideas like property rights that make the modern free market work."
Therefore, it makes sense to develop the smart contract as we power through into the digital future. Szabo states, "The basic idea of smart contracts is that many kinds of contractual clauses (such as liens, bonding, delineation of property rights, etc.) can be embedded in the hardware and software we deal with, in such a way as to make breach of contract expensive (if desired, sometimes prohibitively so) for the breacher."
Although he is known for other work, primarily Bit Gold, how we think of Szabo in retrospect will be primarily determined by how useful smart contracts end up being in the blockchain-backed world of the future.
In Korea, Szabo claimed that smart contracts, blockchain, and crypto “came out of all these libertarian ideas - how to privatize money, how to nonviolently 'enforce' or incentivize the performance of property protection.” Property rights are one of the hallmarks of civil society. We've known of their importance since Oxford's William Forster Lloyd postulated his theory of the "tragedy of the commons" way back in 1832. In the works of the most commonly cited author on the subject, first published in 1968 and expounded upon for the rest of his career, Garret Hardin cites James Madison in the Federalist Papers,
“If men were angels, no Government would be necessary.”
That, in a nutshell, is what smart contracts were intended to do - to save humans from their preternaturally devilish selves. The tragedy of the commons states that men will inevitably do what is in their own personal best interest, the best interests of society be damned. It is also widely known that agreements made under peace are hard to enforce under duress, but this is exactly what Szabo means when he points to the numerous benefits of smart contracts. They are "smart," by the way, not because they involve any sort of AI but rather because they are merely smart in comparison to their paper-bound ancestors. In 1994, making something digital was enough to render it "smart." That's just how it was back in AOL/Prodigy times.
Szabo believes that smart contracts are beneficial to society for a variety of reasons. First, they reduce mental transaction costs. For example, if you enter into a contract-for-difference (CFD), that which eToro is famous for, but you don't want to pay eToro-level fees... you can automate the sometimes complex calculations and enable settlement directly via smart contract without an intermediary. If you would like to manage a portfolio of tokenized assets according to an index that you create, you can oraclize the index data and automate the rebalancing of the portfolio as often as you believe is beneficial. The more predictable you can make the execution of such smart contracts, the simpler and less cumbersome the mental strain becomes, meaning that you can devote your excess mental effort to other pursuits more beneficial to society or your own personal gain even. Do what you want, we know from the "tragedy of commons" that you are a greedy bastard, but thanks to Adam Smith's "invisible hand" concept at least we can feel good about it!
Another advantage to smart contracts is that, in the long run, they certainly reduce the costs of trust, which involves the sometimes complicated task of finding a trusted third party (TTP). They also reduce the costs of maintaining security. After all, storing information on that TTP's centralized infrastructure dramatically increases the chance of being hacked. Finally, smart contracts reduce the ambiguity inherent within contract execution (it's all automated), which should dramatically reduce the amount of injustice found in the world. According to certain philosophical rubrics, for instance John Rawls' Veil of Ignorance, that should be our ultimate goal. Yeah, yeah, I know, you're greedy, we're all greedy. It's all about the Benjamins.
Going back to that bit about the tragedy of commons, (BTW, you have too many sheep on the town lawn! You gotta move 'em, buddy 😜)...
... contracts are the most useful legal covenant of all because they are most efficient at protecting property rights. To drive home this point, Szabo uses a quote from William Markham:
Contract law lies at the heart of our system of laws and serves as the foundation of our entire society.
Contracts are necessary to do deals. They essentially work to combine people who may otherwise be at odds with one another into value-producing entities that generate good for society. By atomizing each step in the dealmaking process, we can understand the competitive advantages of a particular business model and, by extension, better attempt to realize each particular step into code. Szabo delineates the phases of dealmaking as:
So far in the business models of the dot-com era, the first two steps of this process have been mastered. Think Google for search and Uber for negotiations, among many relevant examples. The other two have left a lot to be desired. Particularly in regards to post-performance evaluation, we have yet to find a satisfactory digital solution to this problem. You might say Yelp is a fine example, but think of all the criticism they get for their star review system. Another example is the lawsuit culture that is rampant in the United States. Web3, unlike the Internet and mobile revolutions that respectively comprised Web1 and Web2, truly has the potential to deliver on this promise. Soon we will be able to digitize the entire dealmaking process, which has vast implications for global commerce, the velocity of money, wealth inequality and more.
As a first year law student, Szabo looked at the long fascinating history of contract law, all steeped in culture and civilization and precedence, and decided that his great contribution to the world would be to figure out how to codify "such evolved structures" in the digital realm. Even he admits that he's still trying to get that part right. In his view, Ethereum's implementation of smart contracts is still just one step along the path of fully realized smart contracts.
It was at this point in Szabo's speech that he got a little too "inside baseball" for me. Because it was at that time that he asked the audience, "How to go from wet code to dry code?" When I first heard this phrase I thought he meant that "wet code" was the code of people, of history, of culture. That, like blood, it was messy. My assumption was that when the "centuries of cultural evolution" got codified into digital code it became "dry code" so to speak. Set in stone. Unmalleable.
Boy was I wrong! Well, I mean I somehow intuitively understood that the contracts we use today are mostly "wet code" and it is better to have "dry code." But in a coder's mind, the difference between WET code and DRY code is actually an acronym and not a description.
WET stands for "Write Everything Twice."
DRY stands for "Don't Repeat Yourself."
This cheeky little mnemonic leaves no doubt where coders stand. They prefer the DRY stuff, even though sometimes that may not exactly be the best way to go about it. I guess it's no coincidence that software engineers tend to be pretty dry people.
The key to smart contracts is that they provide incentives to perform. According to Szabo, smart contracts CAN be negotiated. Just like their paper-based ancestors, they are not written in stone. Non-programmers can negotiate between themselves and then coders can code the result of those negotiations. It should not work the other way around. This is a great example of WET code moving to DRY code. Each real-world instance of a paper contract being realized as a smart contract will help us move toward better code that can be applied to more and more situations.
The most fascinating, and potentially world-changing, example of WET code becoming more and more DRY via repetition is the case of writing the same smart contract (say for a security token) that is, by its nature, ever so slightly different due to the jurisdiction in which it is intended to be marketed. With each repeated instance of the execution of such a contract, the code has the potential to become more and more DRY. That's because the nuances of each "jurisdictional silo" are better understood and reflected in the code after each execution. If this particular aspect of smart contract coding can be well determined, lawsuits would almost become a thing of the past (because if the code is written well enough, a counterparty would literally not be able to breach the contract terms), thus dramatically lowering legal costs. Perhaps more importantly, this single blockchain innovation has the potential to provide "independence from financial & political institutions & seamless operation across borders." Were some entity to succeed at accomplishing this, the multinational corporations (MNCs) that dominate global trade today due to their high-powered and expensive legal teams enabling them to create nearly insurmountable moats around their cross-border businesses would finally be able to be outcompeted by smaller, more nimble multinational small businesses empowered by digitally enhanced seamless cross-border trade.
That's some heady stuff!
To enable more flexible and powerful smart contract coding, Szabo strongly urges people to use higher level languages to define financial contracts. He specifically warned against relying on Solidity or Go or whatever other computer language flavor of the day to initially conceive of these smart contracts. He provided the following examples:
First, to code a futures contract:
Second, to code an American option contract:
The idea, I guess, is to define what you want out of the code from a 30,000-foot view first. Then, you can port that basic idea over to any chain depending on whether you are creating the smart contract on Ethereum (using the Solidity programming language), Cosmos (Go), Polkadot (Rust), or any other smart contract protocol. By thinking with this top-level-down perspective, smart contracts can be made to be more robust. From my own personal perspective, I wholeheartedly agree with Szabo on this point. As with all things blockchain these days, the goal should be for the tech itself to be blockchain agnostic.
One of the fascinating improvements that smart contracts offer over paper-based contracts is that they can keep track of the "performance state" of the agreement (via some predefined oracle or set of oracles) as it progresses through time. Szabo offers the following predefined performance states, suggested but not limited to, that could be parameterized in a smart contract:
In a surprising statement at the end of Szabo's speech at D.Fine, he admitted that smart contracts are just a security protocol. They are in no way meant to be enforceable in a court of law, at least as they are currently constructed. The way forward should not be to think of smart contracts from a "code is law" perspective but rather from a "security philosophy" perspective. If we can “make security protocols correspond to the actual rights and obligations people expect,” then we can make a pretty substantial impact on society merely by reducing ambiguity and therefore social injustice.
In the end, smart contracts, as dry as the subject matter may be, are probably the most exciting innovation that blockchain currently has to offer. They are appropriate for financial contracts, dispute mediation, pools & assurance contracts, and smart property (seals, spaces, proplets, locks). Even from just the "DeFi" perspective, where DeFi means "decentralized and non-custodial finance," the potential is enormous. Smart contracts can underpin the aforementioned futures & options, but also swaps & swaptions, automated "token sets," and all sorts of derivatives.
Last year, just this last category represented $542 trillion in notional amounts demanded, which equates to approximately a $12.7 trillion market. With the Volfefe Index by JP Morgan proving that, "We can see, in real time, the president making a financial product more expensive through his public commentary that makes interest rates less predictable." When 77% of that notional amount is devoted to interest rate derivatives, the potential for cryptocurrency and blockchain to be massively profitable merely through the implementation of financial smart contracts is massive. Add to that the fact that globally seamless derivatives would be oh so much more in demand than the currently silo-ed contracts are, the effect is positively mind-blowing.