The blockchain voyage – from the Bitcoin network t...
Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
If you are regularly following the Tech news, you have recognized that the topic of Bitcoin/Blockchain becomes more and more hyped. As part of our activities within ICN at SAP we’ve started looking at the topic as outlined in a separate post from my colleague raimund.gross[1].
I’m working as a software architect and have followed (still ongoing) the evolution from software installed in the customer landscape (on-premise) to the Software-as-a-Service (SaaS) delivery model. Throughout this article I therefore like to share my thoughts on the topic Blockchain-as-a-Service that recently came up in the blockchain community, but let me start with my view on Bitcoin and blockchain in general.
Bitcoin – a crypto currency
Bitcoin is often referred to as digital money, a crypto currency. Basically bitcoins are a kind of digital commodity assets (I prefer not to use the term money) that is spread around the Bitcoin network, a public, distributed peer-to-peer network in which all Bitcoin transactions are persisted in the Bitcoin network. With the use of cryptographic hash functions, digital signatures and a proof of work mechanism these transactions are secured in an immutable and public verifiable way.
The proof of work is an activity, called mining, where the members of the Bitcoin network, called miners, verify the recent transactions, a block of transactions, by providing computing power to solve resource-intensive cryptographical math puzzles. Once verified, the block of transactions are added to the global chain of Bitcoin transaction blocks. I like to refer to the proof of work as the synonym of a commit in a relational database. In order to compensate the miners work, they are rewarded with Bitcoins. This is the only way new Bitcoins are created, so that we have a scarce commodity in a closed market and you can use Bitcoins as a commodity such as gold or as money coins. Theoretically you can hack, or at least cripple, the network, in particular the global chain of transactions if you have more than 50% of the computing power on the network. However the amount of computing power required to undermine the network makes it less efficient than just to mine bitcoins legitimately.
What exactly is a Bitcoin transaction? Basically a Bitcoin transfer from person A to person B. Person A and B are represented by private/public key tokens. This is why you can say Bitcoin transactions are anonymous (or more precisely pseudonymous).
Along with executing a Bitcoin transaction you can also store a few characters (~ 40-80 bytes). Utilizing this possibility there are many applications on top of Bitcoin that go beyond the money transfer use case. These applications store a hash value of any object in this field and execute a dummy transaction of a minor amount of Bitcoins to make the hashed value immutable in the Bitcoin network. For instance, Satoshi Proof[2] is a proof of existence application that allows you to store hashes of pictures (or text) on the network to have a unique identifier of the picture on the Bitcoin network. Therefore you can prove that a picture has already existed at a certain point of time, for instance you can prove that a damage on your rental car has already existed or a patent relevant idea has already existed at a certain point of time.
However, over the last six years the Bitcoin network has shown up some limitations that prevented new use cases to be built on that network. One critical issue is the performance or throughput limitation of 7 transactions per second (limited by the block to be mined every ~10 minutes and the maximum block size of 1MB). There could be some optimization in the Bitcoin protocol in the future (although very difficult to implement such a protocol change), but we will not end-up with thousands of transaction per second. For instance, 760 millions of credit card transactions were issued in 2014 only in Germany and thus credit card payments is not a use case for the Bitcoin network. Looking on the resource consumption of the Bitcoin network, there is a second major issue in the Bitcoin network usage. The proof of work activity requires so much electricity power that Bitcoin network energy consumption is comparable to Irish national energy consumption [3].
Having these cons in mind, it is obvious to say that many use cases in corporate business cannot be implemented using the Bitcoin network only. So should we fully give-up with Bitcoin in the corporate space or what can we do? The Bitcoin community proposed to take the underlying technology of Bitcoin and adopt it also for other use cases. This brought us to the (not well-defined) technology term Blockchain 2.0.
Blockchain 2.0
As described above, the basis of the Bitcoin network is a distributed peer-to-peer network with the ability to securely store (Bitcoin) transactions. The technology underneath that network is named “blockchain“ since we store data in a chain of blocks. Some refer to blockchain as a distributed database or ledger. Personally I prefer the term distributed data storage since it does not provide a high data throughput compared to databases nor is it limited to transactions in a financial ledger.
In the past 6 month the term blockchain became even more hyped than the term Bitcoin. Many start-up companies have been founded (named FinTech dealing with new technologies in the Financial Services industry). They promise a technology disruption similar to the Internet protocol in the 90s, for instance the open-source platform Multichain [4]or Ethereum, the world computer [5]. The later one also supports smart contracts, programmable assets to allow more flexibility in blockchains at the expense of performance and concurrency. While these platforms claim to support a variety of different use cases, there also exists some use-case specific platforms such as Provenance [6] (actually built on top of Ethereum) for product traceability, ShoCard[7] for digital identity services and Everledger [8] for diamonds verification.
The way the companies use blockchain forms the new technology term Blockchain 2.0. The technology goes beyond the Bitcoin blockchain by persisting other data than money transactions. They have higher throughput and lower energy consumption by using consensus technics other than proof of work and being more flexible with configuration options and programmable smart contracts.
However, no start-up company has yet released a product that is adapted with huge commercial success or big adoption (except the Bitcoin network). One reason is that the hype is technology driven. With Blockchain we have a new technology in place and are now searching for business use cases beyond crypto currency. This was different when the Bitcoin network was introduced because its use case was only a crypto currency in a transparent, tamper-proofed and decentralized way. Another reason might be the fact that even if all companies somehow deal with blockchain technology there is not yet a common understanding of the pros and cons of blockchain technology. There are different features that make blockchain technology unique but in the community there are different assumptions about the relevant features and the irrelevant ones. Let’s look deeper into these features and discuss them.
First is the distributed character of any blockchain. All data is replicated to all participants (and can therefore be verified locally). The distribution is a similar feature we have seen when Peer-to-Peer (P2P) networks became famous. Today, when P2P networks are mentioned, you usually refer to the use case of file sharing (legally or not). There are no business application use cases implemented on top of a P2P network. Therefore I don’t think distribution is the killer feature of blockchain. An important ingredient for local (or remote) chain verification – but not more.
A second feature is the use of cryptography for identifying the participants (using digital signatures) and building the blocks using hashes. The magic behind this feature is that once a block is verified and added we can trust the entire chain as each block was verified earlier. This feature is not blockchain-specific but is a pure cryptographical one. Since all transactions are added to one global chain, there is another important property of a blockchain derived from cryptographically building chains. The Insert-Only paradigm of storing data on the blockchain. No data will ever be deleted or overwritten.
A third feature is finding a consensus about the order of transactions in the chain (to avoid double-spending in case of crypto currencies). This is an important feature to make distributed data replication feasible. Without this feature data consistency cannot be guaranteed. From database technology view you can refer it to the MultiVersion Concurrency Control (MVCC) property. The Bitcoin network uses a resource-intensive proof-of-work mechanism that allows the participating nodes to find a consensus without a trusted party. This proof-of-work mechanism in the Bitcoin network is executed every 10 minutes so that a transaction is not “committed” up to 10 minutes.
While finding a consensus is certainly a mandatory feature for every blockchain, it is under discussions in the blockchain community how much efforts in finding a consensus is necessary. Do we really have to use resource-intensive consensus mechanism to avoid any level of trust? While the answer is certainly ‘yes’ for crypto currency use cases is this also valid for business-related (private) networks where you usually work together with business partners? If you get rid of or lower the trustless paradigm do we then still talk of blockchain? These questions are still open in the blockchain community and the success or failure of upcoming business scenarios with blockchain will eventually give the answers. Personally I expect a higher drift to private blockchain with at least less trust requirements in business-oriented use cases.
Another topic that is discussed in the blockchain community is the relevance of cloud and blockchains. Microsoft just released a press quote to support Ethereum in Microsoft Azure as Blockchain-as-a-Service [9]. What does this mean? Let’s elaborate on it in the following chapter.
Blockchain-as-a-Service
Nowadays almost every new business software is released as a cloud service. We talk of Software-as-a Service (SaaS) if you can access the application using an URL or Platform-as-a-Service (PaaS) if you have a hosted platform to build own applications on it. If we can run a blockchain node on a PaaS offering we speak of Blockchain-as-a-Service (BaaS).
Now we have blockchain technology where one of the benefits is the trustless paradigm. You do not need to trust anyone since your blockchain node is a copy of the global chain verifiable on your own premises. This benefit seems to be gone once you handover your (mining) node to a cloud provider, either in a SaaS or PaaS manner. The node is under control of the cloud provider and if many nodes are hosted on the same cloud provider the risk of a 50% majority becomes relevant.
Is the new innovative blockchain technology therefore not adaptable to any cloud approaches? I would not say this. It might be true for the Bitcoin network or any other crypto currency blockchains. In these scenarios you operate in a complete trustless scenario, where a handover of trust to the cloud provider is nobody’s intention. However, if you run your blockchain with identified business partners you anyhow have contracts with, you can expect that they act honestly, maybe enforced by contractual penalties. In such private blockchains I would say Blockchain-as-a-Service is the preferable deployment option, because of the higher speed and lower cost of set-up and relatively small operational costs. These private blockchains will also be the target group for the Microsoft announcement to setup Ethereum nodes on the PaaS offering Microsoft Azure in an easy way.
It might be questioned if, in private networks, blockchain technology is beneficial over traditional ways such as Client-Server technology. Personally, I go with the ‘yes’ fraction. Vitalik Buterin, founder of Ethereum, uses the term consortium blockchain for the kind of business networks running on blockchain technology [10]. In such a blockchain network the consensus process is controlled by an identified set of nodes; for example, one might imagine a group of 20 business trading partners in the manufacturing industry, each of which operates a node and of which 15 must sign every block in order for the block to be valid. Where in public blockchain the main benefit might be the trustless paradigm, in the private blockchain (consortium blockchain) more value comes from the cryptographic authentication. The benefits of a private blockchain are:
identified members of the blockchain network (a majority of unknown mining nodes cannot overtake the network)
permissions can assigned for different actions such as read-only, write-access, ability to mine, create assets
more flexibility in changing/optimizing the network rules (have in mind how difficult it is for the Bitcoin blockchain to change its block size and with it the throughput)
lower costs due to simpler consensus mechanism (and therefore less energy consumption compared to the massive energy resources needed for the Bitcoin network)
higher privacy especially needed in business context (in business scenarios companies often do not want full transparency on data)
Personally, I’m convinced that in most of the future corporate business scenarios with blockchain we will see the private or consortium blockchain type, especially in Business-to-Business (B2B) scenarios. Nevertheless, the public blockchain as known from the Bitcoin network will still remain for use cases, such as Business-to-Consumers (B2C) or Governance-to-Consumers (G2C) scenarios or, of course, crypto currency such as Bitcoin.