The potential of blockchain and the cloud
This article is not here to teach you about blockchain, but to offer a glimpse into the potential of blockchain in/and/on the cloud.
A blockchain is a distributed, write-once-read-only ("WORO") database that leverages tokens. Blockchain is sometimes designated as a potential future protocol, as TCP/IP once was. More often than not can we read comparisons between the blockchain and the internet. Because it’s decentralized. Because it’s slowly growing. Because it could change the way everything works. Because of the amount of money poured into it. Because of the flash-millionaires. And of course, because of the upcoming bubbles.
Yet there is no official "blockchain protocol". There is not even an "official blockchain". There is Bitcoin, that started it all. Then came Ethereum, that kick started Smart Contracts. And then followed the hundreds of projects, the thousands of ICOs, the millions of miners. That’s the current state of the battlefield, and the battle will keep raging for the next few years.
Cloud providers have been the growing face of the tech industry for the last ten years, and it may be the case for quite some time. As such, I find it intriguing to think about how the two could work together, or even compete.
The state of blockchain integration in the cloud
Let’s start with a look at what currently exists in the Cloudiverse when it comes to blockchain solutions or integration. For the sake of simplicity, we’ll cover the major cloud providers: Amazon Web Services, Google Cloud Platform and Microsoft Azure.
Until recently, no major cloud provider offered a blockchain-as-a-service product.
- Azure maintains its own Ethereum & Hyperledger images and offers them, along with other partners managed images, on its marketplace.
- AWS recently announced and deployed a Cloudformation template integration, allowing easy deployment of Hyperledger and Ethereum nodes.
- GCP doesn’t seem to provide any solution, (although they present an interesting integration of Bitcoin data in BigQuery).
Although companies are already using the cloud to implement blockchain solutions, there doesn’t seem to be any particular incentive to deploy a fully integrated "blockchain-as-a-service" solution from a cloud provider. It makes sense: on one hand, blockchain is still an emerging technology - and as such stills requires some time to mature. On the other hand it’s not their core business.
Giants such as Microsoft, Amazon or Google are more likely to invest in blockchain through startups (Google has recently been driving a new blockchain adoption strategy), contests (as Microsoft did with Remme) and partners than directly develop and deploy their own blockchain solution. Not only isn’t it their core business, but the absence of a clear "winner" protocol and the obsession over cryptocurrencies the community has shown for the last couple years has meant it’s probably worth waiting for the dust to settle before over-investing in the field. That, and the lack of use-case, according to AWS CEO, Andy Jassy.
Cloud challenger IBM’s Bluemix is one of the few fully integrated blockchain-as-a-services available on a public cloud platform at this time, relying on Hyperledger for their service (a blockchain solution IBM has been involved with for quite some time now). It seems IBM isn’t willing to let a possible opportunity pass as it did with the cloud.
What does the future have in store?
Cloud providers and blockchain actors don’t seem to be very excited at the idea of working together. Initiatives are being led, but there is no real lead showing a future integration of blockchain in the cloud. But it doesn’t mean nothing could be done. When considering such matters, two options arise: using the cloud for the blockchain, and using the blockchain for the cloud. Let’s dive into them.
Using the cloud for blockchain
Blockchains rely on networks of interconnected and distributed nodes and network that can take different shapes and sizes (take a look a delayed-PoW for some fun) depending on the implementation of the blockchain.
Nodes can host, mine, validate, handle authorizations, yet eventually, nodes are just servers. And as such, they can be hosted anywhere there is an internet access.
There is debate on whether cloud goes against the aimed decentralization of blockchain (hosting too many nodes on the same cloud provider) as it triggers governance and availability concerns, but basic knowledge of both cloud and blockchain answer these concerns quite easily, and actually underlines how the cloud is an opportunity for the blockchain.
As Reddit user ydtm outlines it, the future of blockchain may very well rest in data centers:
"In the early years of the World Wide Web, many people - mostly hobbyists and geeks - actually ran webservers from their homes. But eventually, the World Wide Web moved to webservers / mailservers in datacenters / in the cloud.
In the early years of the World Wide Blockchain, many people - mostly hobbyists and geeks - actually ran full-nodes from their homes. But eventually, the World Wide Ledger / Blockchain will move to "blockservers" in datacenters / in the cloud."
Cloud also adds in several percs that could be useful to a blockchain: auto-healing, highly-available and highly-scalable (that could scale automatically to prevent a 51% attack, for example), CDN in some cases (dPoW anyone?), etc. Consortium and private blockchains are a no brainer when it comes to being hosted on the cloud.
Public blockchains may raise concerns within the community, but eventually even those that are willing to offer a truly anonymous service don’t rely on the infrastructure to offer these services, and IaaS solutions seem a viable solution (until PaaS solution arise, that is).
Using blockchain for the cloud
When it comes to using blockchain for the cloud, very few solutions seem to exist, yet some use cases can easily be thought of: document versioning could be one, allowing for an virtually infinite and highly-price-competitive file history. Logs and audits could also be easily stored on a blockchain, and made accessible, when necessary, to auditors, facilitating reviews and control. Key-Pairs management could also add a great layer of security, integrating a solution similar to Remme, and removing the need for passwords once and for all.
All in all, there are real arguments for cloud and blockchain to work together, each bringing each others’ advantages. As blockchain is still maturing, some time may be needed to see if the two really integrate, but the path is there and is getting clearer.
Could blockchain even replace the cloud?
As much as the internet was decentralized at it’s beginning, cloud is recentralizing it in several hubs that offer value-adding options and solutions and new ways of working with IT infrastructures. But centralized solutions sometimes scare people, so do monopolies, and more and more projects are aiming at decentralizing existing solutions. In the end, Bitcoin is aiming at decentralizing money…
Some solutions already exists. Storj (a blockchain-based decentralized cloud-storage) is one of the most renowned, as it offers a simple yet effective solution for anyone in need of a decentralized Dropbox alternative.
iExec aims, plain and simple, at replacing the cloud. Relying on dApps (sorts of virtual-machines hosted on a blockchain), it would allow for anyone to host any application on its blockchain, using nodes resources all over the world to deliver service, and rewarding the nodes with cryptocurrency. Some may say that distributed computing has been around for a while, and as much as they may be true, truly integrated pay & reward mechanism wasn’t thought of through until then. A highly-available, scalable and predictable decentralized solution based on blockchain is definitely feasible, although it would require tremendous efforts to reach the same level of service as major existing cloud providers.
Does that mean that the blockchain is to replace the cloud, someday? Hard to tell, but we’re far from there. Several obstacles remain to be solved: how to ensure confidentiality at hardware level is probably the biggest, as it is doubtful companies would accept letting their data sit, even encrypted, on someone else’s machine. Intel SGX could be thought of an answer to that point, but recent Spectre attacks proved to be adaptable to SGX, limiting the possible adoption. Apart from non-critical data and workload, we’re still waiting for a broad adoption of blockchain-based cloud as long as this point isn’t solved.
Other than this main technical challenge, some simple governance questions are to be answered: eventually, a third party is useful. The AWS shared responsibility model is a great example of why: they secure the physical and virtualization layers, you secure everything on top. Also, being sure of having someone at the end of the line in case something goes wrong is greatly reassuring to companies. Solutions such as iExec most likely plan on offering such support, but that would then recentralize the blockchain, and a truly decentralized blockchain-based cloud would let its users manage the solution on their own.
Finally, the need for a decentralized cloud is yet to be proven. Unless an earth-shattering event is to turn off all 5 GAFAMs overnight, only leaving decentralized solutions to communication and offer services, hub-centralized IT infrastructure seems the way to go. Ten years from now, maybe blockchain-based cloud will offer a price-competitive solution with equivalent level of services. In the meantime, we’re stuck to that good old cloud, and it may not be such a bad thing.