Blockchain, lessons learned

After a 3-year deep dive into blockchains and cryptocurrencies it is time to pause and look back at what it brought us.

Sense of wonder and excitement

The feeling I got after my first encounter with blockchains was not new to me. Being a software professional living through the nineties and zeroes you slowly got used to new technical marvels coming at you at an ever increasing speed. Graphical user interfaces, e-mail, 3D graphics, the first web browser, IoT, chat applications, mobile computing, social media, they all inspired me with a sense of wonder which possibilities this new technology would enable. Each advancement provided new vistas into previously unreachable worlds. New ways of communicating, playing, learning, sharing, caring, etcetera were sometime obviously visible from the get go. In other cases the technology was so new and unlike any other technology that proceeded it, that it took a while before the new vista began to gain contours.

Blockchains were certainly in the latter category. Although having heard about bitcoin and its underlying blockchain years before, it wasn’t until early 2014 that I gave blockchains some serious thought. The initial reaction that is by now probably very recognizable by anybody that studied blockchain was a curious mix of wonder and excitement. My long term passion for technology spurred me to dive into the technical details of how a blockchain works. Learning the hard way that diving into the details of certain technology was the fastest way to obtain a well-grounded understanding of both its possibilities and limitations. In case of blockchains this initially resulted in a sense of wonder. Nakamoto’s solution for building a consensus system upon which a cryptocurrency could be implemented was pure genius. Although it can easily be understood at a superficial level, a deep understanding of the underlying technical details and ideas was very hard to reach. It took a while before my wonder how this new thing worked made place for understanding.

Once understood, blockchains became a phenomenal source of excitement. The case for cryptocurrencies was quite obvious, but use cases where trusted third parties could be replaced by a blockchain started to slowly trickle in over time. The more I thought about it the more use cases I saw where trusted third parties were a source of trouble. Replacing them with a blockchain could potentially have a massive impact on almost every aspect of our lives.

As smart ecosystem engineer I started wondering whether blockchains could be a useful new tool in my toolbox. In other words, could they help with our Web11 mission?

Spreading the gospel

Contracts11 was started early 2015 and focussed on contracts-based information systems. This is an old idea from computer science whose time had finally come. The required technology was finally ready to reap the benefits of building information systems with contracts instead of data as their core concept. Limitations of the data-oriented approach in building information systems were in sight. Realizing data was often a liability, and that privacy and data-ownership issues were popping up all over the place, we figured there were plenty of opportunities to build systems with contracts-based approach.

As may come as a surprise to many in the blockchain community, a contracts-based approach for building information systems stems from the 1980’s. Bertrand Meyer came up with the idea of ‘Design by contract’, an approach largely buried by the tsunami of new internet technologies that quickly followed it. Fortunately this to Contracts11 so valuable insight was largely reinvigorated by the smart contracts possibilities championed by Ethereum.

With smart contracts in our mind we started skimming the market for business opportunities. Since Contracts11 is a commercial company everything it does should solve a problem for potential customers. Like any healthy company it is problem driven, not technology driven. But as always technology opens new ways to solve old problems. The question was which old problems blockchains could solve. Before long we were in talks with, the by now obvious, parties such as notaries, land registries, insurance companies, financial institutions, government, education, and many more.

Behind the scenes

While trying to find commercial applications for blockchains we dove ever further into the details of the technology as well as the ecosystem that produced it. Reading every white- and yellow paper, going through the source code, following discussions, reading every possible blogpost (still doable by that time), going to meetups, and talking to community members. Mostly within the Ethereum sphere since that was by far the most serious effort.

First thing that struck us was the intellectual power that drove the Ethereum project. It was obvious from the start that this was not the next social media platform but a gathering of highly skilled technologists with an almost religious drive to build what they believed would overthrow old institutions and replace it with a new digital world order.

The next thing that caught our attention was the way the project was run. It was more like a startup building the next best thing instead of a group of software professionals building, say, the software for a Mars mission. It was unclear to us how the project was exactly run. There were implementations in different languages, by different persons with varying levels of quality. It was also unclear who was in charge of the development effort. The only thing that was obvious was the univocal believe in the powers of Vitalik Buterin. Although indisputably extremely smart, his skills for running a large software project were unclear.

It was also hard to figure out who the stakeholders in Ethereum were. Who wanted the project to succeed? Who provided capital? Who would be responsible when things would go wrong?

Another thing that came to our attention were the different views of what Ethereum was and what it should be. Some considered it a very idealistic project, others a technical exercise, and yet others a business opportunity.

All in all, despite the intellectual firepower the overall feeling of the project was not very professional. In the end intellect is not a substitute for experience. It takes a while to get an idea about what’s going on behind the scenes, but having seen many software projects before, over time it dawned on us that the organizational part of the Ethereum project had room for improvement.

Contributing

Since Contracts11 prefers to contribute to a solution instead of pointing out problems, it started working on a semantic programming language for smart contracts called ACE. A semantic programming language allows domain experts to describe information systems using a language they readily understand. These descriptions then get compiled to a skeleton of a working system.

The primary reason for creating ACE was that we figured it was a bad idea to write contracts in a regular programming language such as Lisp, Python or JavaScript. This was a direct result from Contracts11’s Henk Doornbos’ long term goal to close the gap between the domain expert and the programmer by having the former becoming the system designer. Smart contracts programming languages seemed to be in dire need for such an improvement since programming bugs could have immediate and severe consequences.

Another improvement proposed by Contracts11 was the notion of a hybrid smart contract. Realizing that the existing smart contract languages lacked a fundamental property, exception handling, Contracts11 came up with hybrid contracts. These are contracts that are partly smart contracts and partly regular contracts. The latter ensured parties would always be backed by regular law in case a dispute came about.

To our surprise we found out by talking to Ethereum representatives that they prefered to lure programmers to the platform by using a familiar programming language. That these were, in our eyes, unfit for writing contracts did not convince them.

Cracks

Shortly after warning both developers and users of Ethereum that there would be big risks with any smart contract that would go live, ‘The DAO’ attack took place. Although we had over 60 million (at the time of writing) reasons to say, “I told you so”, we preferred to work harder on what we saw as the right way forward. Maybe we didn’t push hard enough, but to our surprise there was still little interest in working on better alternatives.

A year later, at the time of this writing another hack of Ethereum occurred. In a surprisingly simple way a hacker got hold of 31 million dollar worth of ether.

I’m afraid these kind of problems are a result of a very fundamental design decision and won’t simply go away. Unfortunately solving it is not just a simple technical matter, but requires changes at many different levels.

Critical thinking

Our academic background in the area of computer science has taught us the value of critical thinking when new technologies pop up. Rigorously and structurally examining new ideas is the best way to assess their validity. A long career in the software industry added the much needed experience. So that is also how we approached blockchains.

Many involved in blockchains do not have the time (or required skills) to fully understand their intricate details because they are potential users, not developers. Without fully understanding the technology, and maybe without a critical thinking approach, users had to trust others (mostly developers) for giving meaning to that mysterious thing called ‘the blockchain’. As is often the case with ideas that are very complex and/or big, making it your own becomes some sort of believe. The result of blockchains going mainstream was that an increasing share of followers became emotionally attached to them.

This is at stark odds with the critical thinking approach. Something we increasingly experienced while talking with the fast growing blockchain community. There was an ever decreasing willingness to discuss technical merits or realistically analysing use cases at blockchain meetings. They slowly turned into religious gatherings of semi-confused disciples lured by the siren of this mysterious new technology. A setting in which critical thinking was seen as a negative endeavour to spoil the party. Although we were just as inspired by blockchains as others, we increasingly felt like party poopers at those meetings. At a certain point in time we drastically lowered the number of events we joined because our voice was drowning in the swelling cacophony. And because it pushed us in a role we didn’t want to play. We are scientists following facts, not lawyers arguing a case. But more importantly, we are creators of something good (Web11), not fixers of something that is broken.

Still early days?

Confronted with a critical view blockchain believers increasingly resided to moving the moment of truth over the horizon. “Don’t judge it yet, it’s still early days for this technology, its time will come once the dust settles”. An often made comparison was with the introduction of the web. Having actually lived through both the introduction of the web (electronic superhighway!) and bitcoin, this struck us as somewhat odd. From day one the usefulness of HTTP, hypertext and browsers was crystal clear. Within months an enormous wave of innovation was spurred. And the scope of applications was beyond what any of the founding fathers would ever have imagined.

This was quite different for blockchain applications besides cryptocurrencies. Since the introduction of bitcoin in 2008 some of the brightest minds in the world have spent a lot of time trying to find realistic blockchain use cases. So far the result is so meager that it reminds me of Newton spending the latter part of his life as an alchemist trying to turn base metals into gold.

Of course, it should be a giant writing on the wall that after about 8 years some of the brightest minds in the world still haven’t found a good use case. That is troublesome for any new technology. The big question is why it is so hard to find a good use case.

Which use case?

Just like everybody else we were inspired by blockchains and thought about possible use cases. We started with notaries, ticketing, land registry, etc. but always came to the conclusion that the problem in each domain was seldomly technical, and if it was, it could easier be solved by other technologies than blockchains.

Our defining insight is what we started to call Contracts11’s Trust Locator and can be explained as follows:

Use cases that need data from the outside world to enter a blockchain require trust outside the blockchain since participants in the execution of a smart contract need to trust the entered data to be valid. Without this unique trust-in-the-machine property blockchains turn into expensive and slow computer for which many viable alternatives exist.

For instance, a smart contract backed self-driving taxi transports a passenger from A to B and deducts his wallet. But then the passenger disputes this saying the taxi never drove him there. This leads to two problems. First of all the passenger has nowhere to go with his complaint. There is no legal entity backing up the blockchain-based contract. As they say, it’s smart contracts all the way down. Secondly, if there would be a legal backup there would still be the requirement for the provided information to be correct. There should be some level of trust that whatever was entered into the blockchain was correct. No matter how you look at it, for use cases like this there needs to be trust outside the blockchain.

It was rather disappointing to realize that every use case we could think of required external data to enter the blockchain. Except for cryptocurrencies, but that was what blockchains were invented for in the first place. Disappointing, but it did explain why there still was no good example of a highly successful blockchain-based product.

The dystopian vision of a world without trust

Although we were disappointed that most of our high flying blockchain based dreams shattered to pieces, we found some comfort in the fact that the human world wouldn’t work without humans trusting each other. The techno-utopian vision where the only thing you needed to trust was a machine was kind of uncomforting and unrealistic to us. For machines that is fine, but humans depend on reputation, trust and legally backed contracts to live together.

Lessons learned

Blockchains have been, and will be, a phenomenal source of inspiration for us. It sparked our creativity, satisfied our intellectual curiosity and sharpened our critical thinking. The latter both with regards to information systems in general as with regards to blockchains itself. Besides that, following the blockchain (r)evolution has taught us an incredible amount about the rise, and maybe fall, of highly sophisticated technologies. About the technical aspects, but much more about the human aspects. In that respect it is comforting to realize that for both blockchains themselves as for their use cases, it is the human aspect that is the most important.

Still, blockchains have fulfilled their promise of changing the world. Albeit in a somewhat different way than most expected at the onset. But that is the nice thing about technological innovation, you never know what you are going to get.

Onward

It is great to see the success of blockchains in inspiring so many people to rethink existing information systems. And truth be told, many of the latter indeed need a long overdue overhaul. It would on the other hand be healthy if the majority of the blockchain followers took a somewhat more critical and investigative stance. Just to prevent future disillusionment and sharpen the focus on use cases that are truly promising.

We will continue working on Web11 and keep a close eye on blockchains. But we will always start with the problem at hand and critically reason, and follow the facts, about possible ways technology can help. Whatever technology it is. Maybe blockchains, maybe not.