Menu logo

Thoughts on Software Engineering

The Upcoming “Decentralized Cloud” (DPaaS): Decentralized Computing + DB + Storage as a Service

I had a talk at a blockchain conference regarding the upcoming public “Decentralized Cloud” systems, which will combine the best of the public cloud platforms (like AWS, Azure, Google Cloud, Heroku, …) with the blockchain and peer-to-peer networks (Ethereum, IPFS, EOS, TRON, NEM, NEO, Storj, Sia, …). Why? Because the trend towards decentralized organizations (DAO) and decentralized computing is emerging and the industry needs more powerful platforms for building and running DApps (decentralized applications).

Let me share with you what I think about the future of the decentralized computing networks, also known as “decentralized cloud platforms“.

Computing models and software systems are evolving: from standalone software, through client-server systems, to cloud-based infrastructure and platforms. Now, the next big transformation for the computing models is coming and it will affect many industries: the decentralized model, which consists of a new type of decentralized organizations, executing decentralized processes, using decentralized data storage, decentralized computing systems, operating and evolving under decentralized governance. The blockchain and the other distributed ledger technologies (DLT), along with the upcoming decentralized databases, storage systems and other decentralized computing components will be the heart of the new “decentralized cloud”, which will allow running decentralized IT infrastructures and “software organizations” (DAO) with no owner, with no employees, under decentralized governance. Due to its transparency, security, traceability, reduced costs and ability to cut the middle-man, this blockchain and decentralization movement brings innovation and transformations to many industries: finances, supply chain, healthcare, government, forecasting, insurance, mobility, voting, IT infrastructure, telecom and others.

The Evolution of Decentralized Computing

Computing models evolve: single computer -> data centers -> cloud platforms -> decentralized cloud platforms. I agree that not everything is possible to be decentralized and not everything should be decentralized, but for the cases in which we want to build decentralized organizations and decentralized apps, we need decentralized cloud platforms, where we will be able to develop and deploy decentralized apps, which will use decentralized databases, decentralized storage, decentralized messaging and other decentralized services, just like in the traditional cloud platforms (especially in the PaaS cloud model).

Decentralized Organizations

From a technical perspective, a truly decentralized organization involves:

  • Decentralized processes – the execution of the organization’s activities should be done in decentralized way, e.g. throughsmart contracts or some kind of program logic, executed in public decentralized network (e.g. Ethereum, EOS, NEO, NEM). Currently the decentralized computing platforms combine smart contracts with oracles to execute decentralized data processing and many public decentralized networks exist (like Ethereum), so in the upcoming decentralized cloud platforms these computing services will be further extended, scaled and improved.
  • Decentralized data – all the data in the organization should be stored in a public decentralized network. This includes decentralized database system, decentralized storage system, decentralized APIs to access the data, etc. Still, the blockchain technologies are not fully solved the problem of decentralized data. We have decentralized storage systems like IPFS, Storj and Sia, but we don’t have strong enough player in the decentralized database services, nor in the decentralized messaging service. Such systems will emerge and will become typical for the decentralized cloud platforms.
  • Decentralized governance – in the Decentralized Autonomous Organizations (DAO) model the governance is also decentralized, which means that the decisions about the future of the organization, about the changes in the protocols, processes or data structures and data flow are taken by its stakers (e.g. voting by token holders or community voting). Thus, the organization has collective ownership and is driven by its community. This is more business than technical part of each DAO organization, but still the decentralized cloud should have services and APIs to simplify common governance processes, such as voting.

The “Decentralized Cloud Platforms”

My vision about the upcoming decentralized cloud platforms is that they will copy the existing platform-as-a-services (PaaS) cloud model and will implement it in a decentralized way, into a highly-replicated peer-to-peer incentivized distributed environment.

I call this model DPaaS (decentralized platform-as-a-service), which means that new generations of blockchain and p2p networks will emerge that will provide hosting of decentralized apps, along with services like decentralized computing (e.g. smart contracts), decentralized databases (along with CRAB APIs – Create / Retrieve / Append / Burn, query and analytics APIs, etc.), decentralized storage (upload / download / burn / streaming APIs), decentralized messaging (e.g. the publish / subscribe model) and many others like token transfers, interaction with the external data (e.g. using decentralized oracles), decentralized governance services (voting, escrow, dispute resolutions), etc.

The Future “Miners” Will Be Mini Data Centers in the Decentralized Cloud

I believe that miners today lose huge computing resources in very inefficient way: to calculate hashes in the proof-of-work (PoW) consensus algorithms driven by large mining pools. They are min-data centers, highly specialized in hash calculations. What if the miners turn into mini data centers for app hosting?

Miners could host your apps or app services, e.g. run your WordPress site on the blockchain or small part of it, run your decentralized database (e.g. blockchain-replicated MongoDB or MySQL) or host your app files (e.g. static content like images, scripts and videos).

We already have this partially implemented in the blockchain and p2p decentralized systems, but not all pieces are available.

  • Ethereum public blockchain network runs decentralized logic (smart contracts) in secure, peer-to-peer, highly-replicated execution environment. This works pretty well, but has serious scalability issues, which stop large scale deployments. Also the prices are not acceptable for many applications with intensive data load.
  • The IPFS decentralized storage system already hosts in decentralized way static content (like images, scripts, documents and videos), which combined its IPNS system can run any serverless Web application on the decentralized Web. For example, this static Web site in the IPFS system, is replicated in thousands of IPFS nodes across the globe:
  • We still don’t have reliable blockchain backend systems, e.g. a way to run server-side PHP scripts or Java code on the blockchain (or in other decentralized execution environment). This will emerge, because decentralized apps need “decentralized backend” or other computational model instead of it, like serverless architecture with blockchain-based peer-to-peer ephemeral containers. Maybe the upcoming public blockchains like EOS and TRON will solve this, but still the industry is uncertain about the future of blockchain backends.
  • We still don’t have blockchain databases or peer-to-peer replicated decentralized database systems. DApps need to store and query data, just like any traditional app. If you have an app, where shall you store user’s data? Usually you use backend with some kind of database behind. This is unclear with the blockchain and DApps, and this area will emerge. We have some early stage decentralized database players like OrbitDB and BigChainDB and a large place for innovation.

I believe that the future “decentralized cloud platforms” will connect miners (service providers) with businesses (service consumers) in a peer-to-peer app service marketplace where a token mechanics will be used to pay for the consumed resources.

The Future Miners: Paid for Providing Computing Resources

In traditional cloud businesses pay to cloud providers (like Amazon and Azure) to run apps: to consume shared cloud resources like computing power, databases, storage, network bandwidth, etc. Payments are in fiat money.

In traditional blockchains systems users also pay for using the network resources to the miners / stakers. Payments are in crypto money (coins or tokens).

In both service consumers pay to service providers for their services.

In the upcoming “decentralized cloud DPaaS” model, miners will be paid to host and run decentralized apps, host Web sites and Web services, provide storage for code, images, videos and files, host decentralized databases, execute database queries, send/receive messages, process blockchain transactions etc.

Future blockchain networks will consist of peer-to-peer nodes that will host decentralized apps or services, will compute the resources used and will be paid for these resources. Miners will run data centers (instead of mining farms).

Miners: Individuals at Home or Hosting Companies Running Big Data Centers?

Most probably, the hosting companies and the leaders in the cloud industry will be the future miners in the decentralized clouds, because they already have experience providing high-quality hosting and cloud services at efficient price with high uptime and excellent service.

Individual miners might not be so competitive, but will be able to take a portion from the p2p hosting market. They will improve over the time and will learn how to keep high uptime and provide high-quality app hosting services.

The biggest challenge will be to develop the decentralized cloud software, that will be able to manage the decentralized resources, ensure replication and redundancy, not-interruption of services and incentives-based system to stimulate high-quality miners and guarantee the services will be up and running and no data will be lost due to lost miners.

Some decentralized clouds might implement a token mechanic in order to incentivize having a big number of small service providers (miners) to keep the decentralization high. Others might stimulate having a small number of highly-reliable professional miners (industrial data centers), who will provide uptime at industrial level (e.g. 99.999% SLA).

The Future Decentralized Cloud: Pay for Using Computing Resources

Businesses and developers will pay in crypto for their DApps and data being hosted and logic executed in the decentralized cloud. For example, a decentralized cloud user might host and run a decentralized WordPress site, decentralized e-commerce system, decentralized social network or mobile app’s decentralized backend and will pay by some crypto-tokens.

Example: Decentralized Uber

A simple example will be to execute and run a Decentralized Uber – an autonomous decentralized organization (DAO), which will be a software platform, connecting drivers with passengers, running in the decentralized cloud, with no owner, with decentralized governance, using decentralized app hosting, decentralized database and storage and technically unstoppable. This might be a truly software organization, running without human interventions, with no legal entity behind it, just truly decentralized app:

  • Drivers will access the driver’s DApp through a decentralized web / app platform on their mobile device and will watch for trip orders coming for the passengers. They can take and server the orders from the DApp, changing the order status in the public decentralized database. Eventually, drivers might pay the decentralized cloud a mini-fee for the computing resources consumed. Honest drivers’ behavior will be awarded with a built-in reputation system.
  • Passengers will access their passenger’s DApp through a decentralized web / app platform on their mobile device and will place orders. Passengers will post their orders in the public decentralized database, so that drivers can view them. They might pay mini-fee for the consumed cloud resources.
  • The entire system might work without a human involvement, with no person or company behind the system, with no middleman, just decentralized software and decentralized governance: smart contracts, decentralized database, decentralized mobile app, decentralized payments and reputation-based dispute resolution. Still, this model has problems (e.g. spam, dishonest passengers, dishonest drivers, etc.), but it clearly shows the future: decentralized organizations will be able to in the decentralized cloud platforms, with almost no human supervision.

The Decentralized Cloud Platforms are Coming!

Currently (April 2018), the blockchain and peer-to-peer technologies are not mature enough to provide robust infrastructure for fully decentralized apps, but this will change in the next few years, with the emerging technologies and platforms, so we shall be prepared.

And remember: the blockchain is about decentralization of computing and economy, not about cryptocurrencies, coins, tokens, and exchanges!

Comments (10)

10 Responses to “The Upcoming “Decentralized Cloud” (DPaaS): Decentralized Computing + DB + Storage as a Service”

  1. This is exactly what Ethernity Cloud is about.

  2. Dev says:

    Looks like Ethernity Cloud have a working concept how to build a decentralized cloud:
    – Ethereum contract arranges the buy / sell / bid process.
    – The platform provisions a VMs for the purchased resources.
    – The data synchronization is done by standard tools like MySQL replication, file system replication.
    – The failover is not automatic, but can be created.
    – The resource consumption accounting will be done manually, by some scripts.

  3. […] “Most probably, the hosting companies and the leaders in the cloud industry will be the future miners in the decentralized clouds, because they already have experience providing high-quality hosting and cloud services at efficient price with high up-time and excellent service,” Nakov wrote. […]

  4. Sid says:

    BonusCloud is doing this now

  5. Steve says:

    Decentralization is secure, but slow.

    We don’t need “blockchain”, except to prevent persistent attacks (i.e. hackers, government).

    This is why the only real “use case” for blockchain is money.

    In 99% of cases, a centralized DB is better.

    Torrent technology is decentralized, but doesn’t need a blockchain.

    Ultimately, decentralized PaaS will be realized in two forms:

    1) unstable but robust peer seeding of data (a’la torrents), similar to ZeroNet or IFS

    2) stable but less robust (i.e. semi-centralized) standards-based “plug n’ play” PaaS backends, similar to Mastodon, RemoteStorage, Gun

    No… we will not store the internet on the blockchain

RSS feed for comments on this post. TrackBack URL