Deep Dive: Decentralized Compute
Learn what decentralized compute is and how it works.
Every blockchain network is comprised of compute nodes. These nodes range from all sorts of hardware and configurations, from home computers and laptops to enterprise servers located in massive data centers. Traditional centralized cloud computing providers make up a large portion of the nodes that are located on popular chains. For example, AWS hosted nodes make up over 50% of the nodes on the Ethereum network.
While blockchains strive to be as decentralized as possible, using centralized providers to host blockchain nodes can contradict how decentralized they actually are. While using cloud providers can be a better solution than hosting multiple blockchain nodes on your own local hardware since you can configure different nodes to run in data centers in different regions, it still isn’t the best solution.
Sometimes, these cloud providers have access to your user data and the analytics data of the virtual machines that runs your blockchain nodes. Some providers also have access to the data on any virtual machine they host for you, which can be intrusive and go against the Web3 value of data ownership.
Another concern of using traditional centralized cloud computing providers is that data is hosted and stored in a traditional Web2 manner, which is prone to data breaches and outages. While it might be easier than hosting nodes yourself, shouldn’t Web3 infrastructure be as decentralized as possible?
Decentralized compute providers leverage blockchain technology to offer compute services in a decentralized and secure manner that utilizes the core values and benefits of Web3. Users can choose to either share their excess computing resources to be used by others for cloud computing, or they can utilize shared resources to run blockchain nodes.
Many decentralized compute providers utilize their own blockchain network. These networks are often a layer-2 network that processes transactions on-chain and then sends the results off-chain to a layer-1 network such as Ethereum for publication. Each decentralized compute infrastructure uses a different configuration and backend programmatic method for resource determination and authentication, but the workflow is often similar. The general workflow involves resources that are pooled together and purchased by users to run applications or software, which utilizes blockchain networks on the backend for confirming and validating transactions.
There are two types of decentralized cloud computing providers. The first type provides cloud computing that can be used for any use-case, while the second focuses on providing resources for hosting blockchain nodes specifically. Within these types of providers, there are different types of decentralized compute nodes. There are full nodes, also called dedicated or private nodes, and shared or public nodes.
When a user accesses a full node, they have complete access to the node’s entire compute resources and anything that they run on the node has been deployed by them. In contrast, multiple users can utilize shared nodes for various workflows simultaneously, each using a small percentage of the node’s total resources. If a user deploys an application using a shared node, their application is typically either small in size or it is being deployed across a number of nodes which can benefit the application through increased reliability and performance.
Some decentralized compute platforms provide the option for users to contribute their resources in a marketplace format where they can monetize the resources they provide. In contrast, there are other decentralized compute platforms that use a private network of resources that they control the rental of and do not allow users to contribute their resources as providers themselves. The Akash Network is an example of a decentralized compute platform that allows users to contribute their resources in exchange for monetization, while QuickNode is an example of an infrastructure with private resources that it rents out to its users.
To use a decentralized compute provider, first a user must request the amount of resources they’d like to rent from the provider’s marketplace. These resources typically include amount of CPU processing power, RAM memory capacity, and sometimes include GPU processing power. Once a request has been made for the resources, a validator node on the compute provider’s infrastructure must approve the request.
This approval process matches the resource request with a provider that can provide those resources. If the provider allows users to contribute resources, this process includes a bidding process. If the provider uses a private network of resources, the request is approved much quicker. Once the request has been approved and the resources have been provided, the user who requested the resources and the provider enter a lease agreement facilitated by a smart contract that outlines the terms of the resource rental. A portion of the lease price sometimes includes a fee that gets paid back to the compute provider.