Smart contracts are perhaps one of the most touted features of blockchain technology. While the idea itself dates from the end of the last century, blockchains provided the platform for actual implementation in the Internet era. Undoubtedly, Ethereum was the real disruptive innovator by enhancing the original but limited Bitcoin architecture with a plethora of programmable new features, smart contracts being one of them.1 In fact, Ethereum is defined as a Turing-complete platform.. This same development also opened the door for clearly distinguishing between blockchains and cryptocurrencies, the latter being just one application of the former, a general-purpose technology of sorts.
Analysis of smart contracts can be undertaken from at least three different angles. These are 1. Finance; 2. Law; and 3. Technology. While my focus will be on the last one, I will also address the first two succinctly.
Finance and legal overview
If anything, blockchains effectively solve the Internet’s double-spending issue by adding a new application layer to the standard TCP/IP protocol. This, in turn, implies that a centralized authority managing and overseeing financial transactions on the Internet is no longer needed. Some analysts have labeled this new development as the Internet of value – a new feature that, according to them, will bring dramatic, unstoppable social change. Regardless, blockchains allow for secure and trusted financial transactions over the Internet. In this light, contracts that involve financial transactions can thus be safely run on the Internet thanks to blockchain technology.
Contracts are legally binding agreements. That is, they are supported by laws and legislation. So when we stamp our signature on a deal, there are lots of legal obligations we are implicitly assuming, backed by institutions (judiciary, the police, etc.) and institutional mechanisms that will address any emerging issues in a balanced fashion. In this context, the question is: are contracts implemented on blockchains legal in the usual sense? While the jury is still out, some authors have argued that (some) smart contracts are compatible with current legislation, at least in a few countries. More generally, it seems laws will need to be changed or updated in most others.
One outstanding issue relates to dispute resolution for smart contracts as no third parties are involved. Imagine one gets con into a fraudulent smart contract. How does one get out of such an agreement? Who do we call to get help? It appears that an independent authority might be required. I do think democratic institutions must necessarily be in place to ensure a balanced distribution of justice – not limited to contracts only, smart or not.
We finally get to technology.2 The “code is law” issue will be considered in a future post. Ethereum provides the software and platform to program and execute contracts. This means that transactions envisaged in a given deal can be triggered at a pre-established date and/or by action (or lack thereof) of one of the parties involved. Contractual transactions are thus automatically executed and, since the parties have direct access to digital currency, payments should smoothly occur. Programming such a contract should not be complicated.
For example, if a contractual payment is due on a particular date, the program can check the digital currency balance of the payee a few days before and issue an alert if it is short of the expected amount. If you are a software developer, this is simple to program and can be done with a few code lines. Many other things can also be checked or programmed before, during and after transactions are made.
Note that when we take a closer look from the technology viewpoint, we see that smart contracts are actually automated contracts. That is, contracts agreed upon among two or more parties whose execution is accomplished via one or more algorithms running on a blockchain platform that guarantees secured and trusted implementation. So smart here becomes a synonym of automation. Automation has been going on for centuries now, and while nowadays it is accelerating at a rapid pace, it is indeed not the new kid on the block(chain). The real innovation here is that now we can run automated contracts over the Internet in a secure fashion.
So, how smart are smart contracts?
For starters, we should point out that not everything in a contract (or process) can be coded. We have already mentioned dispute resolution as an example. But this does not detract from smart contracts as this limitation is common to many other software programs. In the latter, when an unexpected action takes place, the program just crashes.
In the last ten years or so, programming itself has been changing thanks in part to the renaissance of Artificial Intelligence and Machine Learning (AI/ML). These technologies are more about knowledge and learning than about programming itself. While programmers usually go the extra mile trying to code every single possible process related to the task at hand, AI/ML works in an entirely different fashion. Here, smart is a synonym for both learning and prediction.
In the end, (some) contract execution is now prone to digital automation. But that does not necessarily make contracts smart. For that to happen, the marriage between blockchain technology and AI/ML must first take place.
This is already happening, by the way. The question then is which technology will lead this process, bearing in mind the current limitations of most blockchains platforms.