Pocket — The Decentralized RPC Network

The RPC Centralization Issue in Web3:

URGS
7 min readMar 15, 2022

Everyone is worried about the validator’s decentralization, but no one is worried about the centralized way people access blockchain networks nowadays.

Why is this centralized ATM?

All Dapps need a way to communicate with a blockchain network. Without that, Dapps cannot trigger transactions or access information on the blockchain. This communication between Dapps and full-nodes (where the blockchain data is stored) happens via RPC (Remote Procedure Call) nodes.

Currently, there is an apparent flaw in the Web3 stack. The only component from this infrastructure that is decentralized is Layer 1 (with regards to block production, and we cannot even say this about every chain since decentralization is a spectrum), and the access to that Layer 1 is still centralized in the majority of the cases.

How do RPC works?

Basically, when an RPC call is executed, a request-response process occurs between a client and a server. The client requests a procedure to be executed in a remote server, and then the server runs that request and sends back a response.

Usually, developers have two options to request data from the blockchain network to their Dapp:

  • Self-build and self-maintain full-nodes for each blockchain network they want to communicate with. In this scenario, the developers forward the RPC requests to the full nodes they maintain.
  • Use external & centralized full-node RPC services, like Infura, Alchemy, or Quicknode, which is faster to set up and easier to manage but do not guarantee privacy in the requests data since they keep every piece of metadata that go through them.

Most of the RPC requests are made using the centralized option since the cost of building their full node is not low and requires technical capability and daily maintenance. This can lead to outages and unexpected downtime periods that have already happened in the past. For example, Infura, the default Metamask RPC provider for Ethereum connections, was down recently this year in February.

Let me make it clear to everyone how these kinds of centralized RPC systems are used:

  • When you are using your wallet to sign a transaction, your data flows through one of those centralized clusters of RPC nodes.

Pocket is positioned as the TPC/IP of the Web3 node infrastructure by building an agnostic protocol that incentivizes nodes to provide RPC services to connect different blockchain networks with Dapps and help developers access on-chain data in a decentralized way. It’s completely decentralized, removing the single point of failure and leading to more resiliency and robustness.

How is Pocket different from the centralized relay systems?

  • The data source is entirely decentralized
  • The flow is transparent and verifiable
  • Provides more privacy since each node relays only a fraction of all application’s data, while Infura, Alchemy, or Quicknode is unified.

Let’s see how Pocket is achieving this:

The Pocket Network is composed of 3 components:

  • Dapps → submits relay requests (same as RPC requests) that should be routed to the target blockchain (called relay chain in this case).
  • RPC Nodes → receives these requests, submits them to the target blockchain, and sends the response back to the Dapp.
  • Full-nodes Clusters → the target blockchain full-nodes that Pocket interacts with, the data source. Eg: Ethereum, Solana, etc

The mechanism used to regulate the communication between Dapps and nodes is called a session. Sessions are generated pseudorandomly to group one Dapp with a set of nodes that provide service for a certain amount of time, guaranteeing redundancy and decentralization.

I’m sorry for the diagram, and I’m not a designer or anything similar to that.

Pocket Network RPCs

This number of nodes per session was increased recently to 24. More nodes mean more redundancy, availability, randomization, and more security. If a node goes offline, the application can still connect to the other RPC nodes in the session. However, if all nodes from the session’s cluster go offline, the protocol will randomly pair the app with other nodes.

Basic Lifecycle:

  1. Dapp stakes POKT to access decentralized relay requests (more POKT staked means higher throughput). This helps Dapps reduce their costs by cutting recurring monthly payments to centralized RPC providers.
  2. RPC Nodes stake POKT to provide decentralized relay services (minimum 15K $POKT)
  3. A Dapp is then pseudorandomly paired with RPC nodes for a period of time (a session).
  4. A Dapp executes a relay request (same as an API request).
  5. One of the RPC nodes picks the request and submits it to the target blockchain by choosing a random operator of a full node (from that specific blockchain which data is being requested).
  6. The RPC node sends back the response to the Dapp.
  7. The node produces a Zero-Knowledge Range Proof (ZKRP) to assure the relay was completed as requested.

The RPC nodes are incentivized by receiving a POKT reward for fulfilling RPC requests proportional to the throughput served per request. Every relay mints POKT tokens (similar to the existing POW consensus, where nodes are rewarded with inflaction). Dapps are incentivized to stake and lock their tokens to receive more throughput, without receiving staking rewards, which balances the inflation.

In the bootstrapping phase, the rewards are relatively high per request, and the goal is to attract users and expand the network. In the maturity phase, the rewards per relay will decrease. The protocol will start the burning mechanism of the POKT token in every RPC request validation to balance the number of node rewards minted and maintain long-term stability. In the end, supply will be limited. The protocol is expected to reach equilibrium between the tokens being sold by nodes to pay for hardware costs and the tokens being bought by Dapps to access a decentralized RPC Network.

The target users of the Pocket Network are not regular users of other protocols. Here, the target users are mainly Dapps and public chains. We can say that the business depends on the usage of all Dapps.

The Tech Behind it:

Pocket’s mainnet was launched in mid-2020 to deploy an MVP to prove the team’s visions and product fast.

Developing a chain from scratch is not an easy task, and it requires balancing security, decentralization, performance, and security. That’s the reason why the current solution is developed using Tendermint Core, open-source software that allows devs to write blockchain-based applications in any language of their choice. The team needed a fast solution, so it was a decision that made sense by the time.

However, Tendermint is ready to handle around 10k nodes, and Pocket already has 33k+ nodes and is overgrowing. It had a ~27% increase in just a month and is already pushing Tendermint to handle 230% more nodes than it is ready to.

The team decided to create and optimize their technology stack to achieve better scalability — that’s what they call version 1.0. Keep an eye on this profile for more info about this new version.

Some Stats:

A few networks that are already supported by Pocket:

  • Ethereum
  • Avalanche
  • Harmony
  • BSC
  • Polygon

The majority of relay requests handled by Pocket Network are currently in Harmony, followed by Polygon and Ethereum.

Let’s look at some data:

  • The POKT price: $0.72 at the time of writing
  • The daily number of relay requests processed: 200M+/day

There is quite an interesting thing happening here. You can check from the graphics above that there seems to be a correlation between the $POKT price and the daily relays, as more relays usually mean an increase in the token price.

Two factors will boost this correlation is the future:

  • Dapps will increase their POKT amount staked during times with more networks congestion to obtain more requests throughput (once self-staking is available)
  • The number of nodes and the POKT amount staked will also increase during times like this because the yield increases.

Back to the stats:

  • The number of active nodes: 35,000+
  • Total Staked POKT: 400M+ $POKT
  • Total Apps: 2298
  • Number of Large Apps (with more than 1M relays in 24 hours): 54
  • Total relays on Feb 2022: -8.1B
  • Expanded globally across 6 continents

(Source: http://c0d3r.org, 15/03/2022)

Advantages:

  • Web3 unstoppable & decentralized access.
  • Cheaper: staking instead of paying per request.
  • More privacy — centralized systems record every metadata request, and in Pocket, the information is shared in a timed session-based mechanism.
  • Agnostic protocol.
  • Existing Dapps become more efficient.

Conclusion:

Infura, Alchemy & Quicknode are already dealing with billions of relay requests per day. Pocket Network’s daily 300M+ relay requests processed and the small number of applications account for a minimal market share in the current infrastructure market.

Alchemy is used mostly for NFT projects which represents only one of the possible sectors in the blockchain industry and already powers over $45B in transaction volume around the globe with a valuation of $10.2B. Pocket is currently with a fully diluted market cap equals to $627M, not even $1B. The possibilities to capture a small percentage of all these three centralized RPC providers combined are tremendous and super bullish for this project.

Using or buying POKT right now is a bet in demand for blockchain data and interactions. With more developers building Dapps using Pocket to communicate with blockchain networks, and more node operators joining the network, the demand for POKT is expected to grow since both need to buy POKT to stake it.

--

--

URGS

Full-time blockchain developer. Part-time blockchain researcher.