Smart contracts are not that smart


Smart contracts are perhaps one of the most touted features of blockchain technology. While the idea itself dates from the end of 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 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 dimension that, according to them, will bring dramatic, unstoppable change. Regardless, blockchains allow for secure and trusted financial transactions over the Internet. In this light, contracts that involve any sort of 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 attempt to address any emerging issues in balanced fashion. In this context, the question is if contracts implemented on blockchains are legal in the usual sense. While here 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.

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 a contract? Who do I 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.

Technology perspective

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 amount expected. If you are a software developer, this is simple to program and can be done in a few lines of code. Many other things can also be checked or programmed before, during and after transactions are made. The critical point here is that programming does not need to be extremely complex.

Note then that when we take a closer look from the technology viewpoint, we see that smart contracts are actually automated contracts. That is, contracts agreed among two or more parties whose execution is accomplished via one or more algorithms running on a blockchain platform which guarantees secure and trusted implementation. So smart here becomes a synonym of automation. Automation has been going on for centuries now, and while nowadays is accelerating at 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 and try to code every single process possibly related to the task at hand, AI/ML learn from first outputs, use them to add and aggregate knowledge to then get ready to generate the next round of outputs more effectively. And so on and so forth. Here, smart is a synonym of both learning and knowledge.

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 is which technology will lead this process, bearing in mind the current limitations of most blockchains platforms.

Cheers, Raúl










Endnotes   [ + ]

1. In fact, Ethereum is defined as a Turing-complete platform.
2. The “code is law” issue will be considered in a future post.