Sad truth about Smart contracts private life

Anton Trantin
6 min readDec 5, 2017

--

This is an English version of original Russian article

For most people the world of blockchain technologies today is tightly connected with bitcoin and cryptocurrencies trading. It looks like soon everyone at this planet will get used to candle technical analysis. The problem is that when the tide goes out all these genius crypto-teachers will turn into a pumpkin.

However, blockchain is a little more.

First of all it is a technology which is forecasted (or just marketed, lol) to be a basement for the whole new industry. For more emotionality and weigh in people minds blockchain is used often in a row with such words like “big data”, “artificial intelligence”, “internet of things”, “machine learning”, “computer vision”, “any other marketing buzz-word” — even though the relatedness is slightly less than nothing.

Since Ethereum was released we got even more: everyone got an opportunity to create new decentralized applications based on smart contracts. For “masses” this technology could be described in the following way:

Smart contracts real face

We are told that since today we will get rid of corruption, argues, bribes and human mistakes: all the decisions will be made by zero-emotional and trustful math/machine. Applications and relationships between people and organizations will reach absolutely new level and nature: no disputes, no disagreements and no routine professions like lawyers and accountants anymore!

Looks like a truth but…

Let me open the curtain and tell you the real truth which I often do on my private workshops and lectures related to blockchain technology and it’s use in production…

Smart contract: what is this?

Smart contract is just a piece of code responsible for your decentralized application business logic. It is absolutely the same business logic as in your Web-site, mobile app or other program.

The main difference compared to any other software is that smart contract is executed inside blockchain platform such as Ethereum. Once written it will have unique address and users who use methods from this contract will be sure that code is not changed and logic inside the application exactly those one he agreed with.

The first rule for smart contract is the following: it MUST have simple and mathematically descriptive logic without variations or misinterpretations. However, real life is tough: contracts usually contain external links to specifications and enactments, force majeure situations and other cases which might be considered as cases for judical proceedings. Real world, unfortunately or happily, is not binary: just “yes” and “no”.

Well, one might say that in the nearest future each person will be measured and digitalized (hopefully, I won’t see this) but more nuances exist.

Human factor

As any other piece of code smart contract is not born by itself: it is written by … programmers! Unfortunately, ALL programmers (except me, of course) do mistakes. Do you remember TheDAO or the Parity cases? I will describe them in one shot:

Some smart contract with a mistake in crypto economy

One might tell about external security audits but this is just a small piece of code verification: light-weight peer reviews or more formal Fagan Inspections are just a process for reducing probability of errors in production. The only way to avoid errors in the code — not to write it. Even more strict and expensive procedures like Formal modeling won’t help you.

System isolation

Well, let’s imagine I’m too pessimistic: you have a software developer who doesn’t make mistakes (like me). The problem is that usually there is an external world exists outside of blockchain. This is exactly those type of world when absolutely correct and trustful smart contract must have very close contact and interaction with it. Such platform as Ethereum can’t go out of Aladdin lamp!

Let me show you a good classical example of smart contract when we don’t need the external world for decision making process: the voting system. Citizens vote for candidates and March, 18th 8 p.m. the system stops getting votes: it announces who is the winner, absolutely honestly and impartially, using just simple arithmetic.

Bad classical example with smart contract: Basil and Peter bet on match result “Manchester United” VS “Real Madrid”. After match ended the system looks on the Champions League FIFA site for the result and transfers money to the winner. The problem is: HOW? Smart contracts can’t do this today! Well, there are projects like Chain Link exist or some other platforms with “smarter” contracts compared to Ethereum. One can even say that I’m too old and outdated for all these new technologies. Although…

Oracle problem

I still have one more trump card: so called “oracle problem”. You still have an ideal software engineer (and she stays being so with every new smart contract update with 100% security audit correctness), your blockchain platform allows you to take external data …

Do you believe this external source of data?

One more classical example of smart contract: if air temperature on the plane exceeds the maximum value all passengers get immediate compensation (in cryptocurrency, of course, there is no place for fiat currency in the future, or I’m wrong?). Well, you have written simple smart contract with low mistake probability:

if (t > 30) {

transferMoney(passengerAddress);

}

However, what is the sensor is broken (yeah, shit happens)? Smart contract did his job absolutely correct: it got an external data but the data itself is not correct!

Do we have to create a special commission for such cases? Why do we need blockchain then? How to avoid sensor’s data fraud (with one more blockchain, we have to put everything into blockchain, lol)? And what about commission impartiality? Do we have to put people into blockchain too and send them to gold mining for better consensus inside the group?

In another classical example with document exchange smart contract works according to … buttons pressed by a human! She can not to press it…or even press not this button…or even not in the right time. Moreover, the “phone law” still exists in every part of this planet.

Instead of postmortem

Please, turn on your head: there are more problems and questions than solutions and answers. This is not the last note about “dark side of the moon/blockchain”, we will definitely talk about “ideal” white paper and even decentralized applications architecture.

Today it is nice to claim that bitcoin has a lot of architectural and technical issues but every decision made was not by accident and absolutely correct. All the following attempts to change and improve than lead to just turning blockchain into classical decentralized database and smart contracts in a common business logic. Both work for a long time and problems we try to solve are far away from blockchain application.

Just focus on services which solve real user pain. Work with your reputation which might bring you faith and love more than any blockchain or ICO being in most cases scam or failure projects.

Well, you still can do the opposite thing and win the jack pot: why not if it is your goal?

--

--

Anton Trantin

Principal at @Angelneers. Tech Entrepreneur & Executive. Yorso founder. https://trantin.com