...by Daniel Szego
"On a long enough timeline we will all become Satoshi Nakamoto.."
Daniel Szego

Tuesday, May 16, 2017

Comparing enterprise Blockchain frameworks: Hyperledger vs Azure Blockchain as a Service

Current trends of the Blockchain revolution reached from the Blockchain 1.0 version to the 3.0 with rocket speed. As Blockchain 1.0 systems concentrated mostly on the different versions of Bitcoin, like LiteCoin, Dogcoin, Blockchain 2.0 systems tried to extend the original concept to a general programming paradigm. Most prominent examples are Ethereum, Counterparty or RKS.

Blockchain 3.0 systems try to extend or further develop the different versions of smart contract systems in a way that they are applicable for typical enterprise scenarios as consortium Blokchain solutions. Two major examples are Azure Blockchain as a Service and Hyperledger. Both frameworks starts with the basic problem statement that in a real enterprise scenario a pure Smart Contract based system is simply not efficient enough. It does not scale enough for the different enterprise use cases and putting everything from data to business logic into a smart contract is not necessarily a suitable scenario. Despite of the same problem statement they use two fundamentally different approaches. 

At Azure Blockchain as a Service (Figure 1) basically a third party SmartContract system has been integrated. Typically Ethereum or different versions of Ethereum, but some other solutions are also possible out of the box  at the moment, like Chain or Emercoin. To extend the business functionality an Off-Chain highly secure system is proposed, the so called cryptlets, that are cryptographically  secured small programs that are running in dedicated hardware containers, called Enclaves. Crpytlets are planned to realize secure business logic and communication with the Blockchain in two directions: on the hand external input data via Oracles can be securely integrated by Cryptlets, on the other hand Business logic that requires a higher performance but should not necessarily run on the Blockchain can be efficiently implemented. On top, Azure Blockchain as a Service provides some additional elements, like key vault for securely storing keys, or Azure Active Directory integration for identity management. 

Figure 1. Azure Blockchain as a Service Architecture

Hyperledger on the other hand redefines the whole Blockchain concept with different building blocks (Figure 2). The consensus mechanism and transaction validation are split into different parts, like Consensus manager, Distributed Ledger or Ledger Storage that provides the possibility to implement different kind of Blockchain or Blockchain style protocols. They usually provide a state based representation that is pretty far from the original UTXO based concept, so probably it is better to speak about a rather Blockchain style protocol. SmartContracts and business logic can be implemented by the so called Chaincode services. They are practically secure nodes, virtual machines, containing a secure container and executing a certain program at each of the chaincode node. They can be implemented in different languages (at the moment is Golem, but other programming languages will be available as well). The framework is extended with additional services as well, like identity management.

Figure 2. Hyperledger Architecture.

The following table tries to summarize the major ideas of the two architectures:

From a conceptional point of view the two frameworks represent two different directions. Hyperledger moves into the direction of defining a general framework and building blocks for implementing different kind of a consortium Blockchain protocols, Azure Blockchain as a Service integrates exiting Blockchain solutions and extends them with a crypto framework to realize any kind of highly secure on-chain - off-chain protocol. In this sense they should not necessarily regarded as competitor technologies to each other, as an example Cryptlet technology can have the realistic use-case for instance to extend a Hyperledger based Blockchain system.

Friday, May 12, 2017

Notes on corporate Blockchain solutions

Corporate Blockchain solutions provide exciting ways of building up new solutions for existing business use-cases and they provide the way for implementing brand new use-cases as well. Some companies and frameworks concentrate strong on the corporate Blockchain direction, like Hyperledger  from Linux foundation or Azure Blockchain as a Service from Microsoft. 

However getting technology alive with some of the classical multinational enterprises will be much more difficult than it is expected. Most of these companies and decision makers are still struggling with the cloud technology and regard to Blockchain as something suspicions alien thing. They have the very traditional, "If it is working do not modify" mindset. Even if corporate Blockchain solutions are being experimented they are used in reimplementing some old-fashioned use-cases one by one, usually in which Blockchain is not the best technology choice at all, instead of brainstorming on brand-new services that are only available with a Blockchain technology. The result of such experiments will show that Blockchain is a nice technology, but it is actually not really necessary, it can be replaced for instance by a classical distributed database. They will start to take the situation seriously as really competitors appear that provide the same service cheaper and much better just because they started the whole Business already on Blochchain ... but then it will be too late.