Blockchain Beyond the Hype

Written by Lorenz Sommer
 

wega Informatik is one of the leading pharmaceutical and life science IT service providers in Switzerland. Wega is running several initiatives to explore the potential of new technologies. This article looks at the hype surrounding blockchain-based systems. We have implemented smart-contracts-based applications for the Ethereum blockchain to better understand the use of blockchain-based applications and also for pharma-related use cases.

The aim of this article is to give you an introduction to some of the principles of blockchain-based systems. This will help you decide under which conditions and for which use cases blockchain can and cannot be useful. I have written this article with the intention of starting a discussion. If you're missing something specific, don't worry - we have some follow-up articles planned that will dive deeper into specific areas. I'm not going to explain the blockchain data structure itself, as there are already countless articles on this topic. Instead, in this article I want to highlight the philosophy behind blockchain systems and why they are built with a specific design in mind.

 

I don't know how familiar you are with some principles of software architecture therefore, I am going to use some simplified analogies in this write-up. Moreover, I will demonstrate so by using a household and a heading system.

 

Principle one: The household model vs operational/layering model for software

The household model

Let's start this journey with a little story:

I have two friends, Alex and Carla. When we were still students, we all lived in a shared flat. After they graduated and started working, they moved into their own rented apartment. And I moved into my own apartment, where I've lived happily ever since. Alex and Carla played the lottery for several years and were lucky enough to win. That's why they could afford to buy a house.

This story might sound rather common, nevertheless let us continue and highlight the differences of the household models.

Alex and Carla lived in different household models, every model makes sense in a certain case and they all depend on certain aspects. Most people feel comfortable to have a privately owned household or having a rental household. Shared communities are not seen so often. When joining a shared community, the privacy level is much lower compared to a private household. And making a decision in a household it's easier, as nobody needs to be involved, changing something in a community is more complicated as you need to find consensus between all parties.

 

If you need to choose a certain household model, you could use this sketch:

 

But how does the household model relate to the blockchain based systems?

The operating/shift model for software

Layering and operating software uses a similar model. If you want to have full control over your system, you will mainly go for a privately owned infrastructure (your own home). Software as a Service (SaaS) is like renting as you don't need to own the software, but you still have your privacy and allows you easily to collaborate with anybody, examples: Dropbox, Office 365, G Suite and so on.

 

But what happened to the shared community / shared ownership?

Blockchain is a special case of a distributed software system, it is a peer-to-peer (P2P) network. Such systems are often built to remove ownership and centralization. In addition it allows us to share data with everybody without any (legal) restrictions. Examples are Bittorent, Shareaza, eMule, Gnutella, Vuze, Limeware, Kazaa etc.. Most of these examples are file-sharing P2P networks and they are built around a distributed hash-database (DHT). In comparison, blockchain uses a distributed blockchain data structure.

 

Peer-to-peer software makes sense for communities or consortiums where data should be shared. Making decisions in a fully-owned private software system is easier than in a community-driven distributed blockchain system, as in the latter case all parties need to find a consensus. Consensus is the key element when using blockchain-based technology.

 

The transformed household model into an operation/layering model is displayed in this sketch:

 

So keep in mind to choose the software model/layering that fits best for you needs, it has a lot to do with your personal opinion and privacy. Blockchains are built to be transparent, so everybody can check the transaction histories.

 

Principle two: The household heating system vs data management system

The household heating system

So let's get back to our previous story with Alex and Carla. They bought land and got in touch with a construction company. They had several meetings about the different possibilities to build their house. One topic was the heating system, that we will use in this example as analogy.

In Canada, winter-time can be harsh and cold. That's why choosing the right heating system is essential. The architect proposes three different heating systems:

  • Solar (thermal, electric)
  • Heat pumps (air to air/air to water)
  • Fossil heating system (gas, oil, wood)

All different heating solutions will solve the same problem. They are just using a different implementation and they are (more or less) exchangeable. It's obviously not the optimal approach, but you can heat a house in Canada using solar technology. Whereas burning wood as heating source is - at least in Canada - a much more economical solution.

 

For another country the decision could be different.

 

 

If you need to choose a certain heating system, you could use this sketch:

 

But how does the heating model fit into the blockchain based systems?

The data management system

Well, one central component in a computer system is the data management system, that's the place where all your data will be stored. In our analogy the data management system could be seen as the heating system of a house. As there are different heating system, there also exists several well know common data management system to store data. In the data management landscape Blockchain can be seen as a very special case.

The transformed heating system model into a data management model is seen in this sketch:

 

 

Blockchain is a very specialized data management system that has certain properties:

  • Data can only be appended
  • The data is unchangeable and secured by cryptography
  • Data is transparent and traceable by the community
  • Data is validated and accessible by the community
  • With every generated block the probability increases that the transaction is valid, but generation of blocks costs time and energy which in the end means money.

 

But you can emulate/fulfil most requirements by adapting other data management systems. It's a little bit like having different heating system. All systems can be used to solve a common problem, it only differs on the implementation. The data-structure of the blockchain can also be stored in a relational database and it is even possible to distribute those systems (e.g. using NewSQL). But without a specialized distributed network (P2P) on top, you lose the distributed validation or fail-safety which has to be solved differently for traditional systems.

Some further points for discussion

Blockchain as a service (Baas)

Cloud service providers such as Amazon, Google and Microsoft have added a new service for their cloud environments: Blockchain as a Service (BaaS). By using BaaS you can run private blockchain nodes in the cloud. This does sound good at first (especially for the revenue forecast of the service providers), but by using one provider, you're centralizing your nodes. By design you lose the fail-safety of the distribution aspect. If your cloud environment has an issue, your whole private blockchain will be down. As an example Amazon had a downtime of 68 hours and Microsoft Azure 272 hours in 2013 regarding this paper: Downtime Statistics of Current Cloud Solutions.

To avoid this, you need to run at least some nodes somewhere else. Using BaaS is then not anymore so different than having a traditional data management system, if you only run one node or a few nodes of a blockchain system.

Blockchain-based applications

Blockchain based applications are not so different from traditional applications. The high level architecture of a blockchain based application is very similar to the traditional 3-tier application design, simply using a different multi-location data storage concept. An additional storage location is used to store data with the ability to track all changes and it allows you to prove when and by whom it was changed. It could also store small code parts into the blockchain e.g. smart-contracts as interaction points between your application and the blockchain system. As the block space is limited and the usage will cause costs,it will force you to setup a second storage location for data or files that shouldn't be added into the blockchain. At the end you will end up with a mix between a traditional setup for the application-layer and persistence-layer using blockchain. The blockchain itself will only secure some relevant part of the data. The rest of the application will have all advantages and issues of a traditional system.

Using blockchain in the backend causes higher complexity and costs. But for the data stored in the blockchain you get validation and transparency if you need to prove it to collaborators or authorities. Blockchain is a platform that increases trust between collaborators.
 

Summary

Using a distributed peer to peer network for sharing the blockchain structure makes a lot of sense for crypto-currency. As this is a community-driven use case,there is a strong motivation to avoid centralized ownership, and it is crucial to guarantee full transparency.

But to use the same principles to business application may not be the correct approach. Tracking changes or history in privately owned applications is nothing new and has already been implemented and established in many implementations. Some examples are the Temporal Patterns, direct Support in Databases like SQL-Server, or SCD Manangement Methodologies Type 4.

When building blockchain based web-application you will lose fail-safety, as the web-application will run on a traditional web-server. If you have only one web-sever you introduce a single point of failure and if you web-sever goes down, your users will not be able to work anymore, even if the blockchain behind is fail-safe. Going back to a web-server brings back all techniques used there to make you application fail-safe in a traditional way, with multiple web-servers, proxies and load-balancers.

 

The next article will be "Can blockchain be applied in pharma and healthcare?"

 

I'm a Consultant at wega Informatik AG in Basel. wega Informatik is one of the leading Pharma and LifeScience IT Service Providers in Switzerland.

I hope this article was interesting and brought you a different perspective to the whole blockchain technology discussion. If you have any questions don't hesitate to contact me at lorenz.sommer@wega-it.com.