Hi all, we are posting this in hopes creating discussion and feedback of what we’re building. The following proposes a solution for incentivizing individuals to run full archival nodes for Ethereum and any other blockchain as well. First off we want to tip our hat to @MicahZoltu, @jamesray1 and others for the thinking and research they have done in EIP908, this post, and this post. We hope this adds to the conversation in a meaningful manner.
The node incentivization problem is something we recognized about 18 months ago and have been planning a solution since then. For about 15 months we’ve assumed this was going to be a set of smart contracts on Ethereum, but realized that it was not going to be a viable solution due to the limitations and cost of saving state on a set of smart contracts. You can see the first version of these smart contracts in one of our repositories.
We then dove deep into Plasma, hoping this could be a viable scaling solution for what we were building. We got really excited because all of a sudden we had this whole design space available to us, and we could use Ethereum as its security. We still think this can be built as a plasma chain.
Due to the flexibility of designing a system on Plasma, we started to spec out our own separate blockchain, and decided to completely remove it from there with the assumption of our project being its own blockchain. Our design has significant influence from the Dash protocol, as the original idea of masternodes was meant to combat the problem of incentivizing full state nodes.
We have a white paper that I’ve attached to this post that contains a detailed specification of the protocol itself. Below is a high level explanation of the pieces that go into it. I would also like to point out that we’ve built a lot of the high level tools explained in the paper that make it easy to access decentralized infrastructure on our github too.
Pocket Network is a protocol that pays individuals to run full nodes for any blockchain. This is accomplished by enabling Service Nodes to easily spin up an API for blockchains to service reads and writes.
Each API request (reads or writes) is validated by a group of trusted Federated Nodes known as Validators. Validation is accomplished through a client and service node cryptographic signing scheme explained in greater detail in section 3.2 of the white paper. Anyone can run a Service Node in the Pocket Network with the goal of becoming a Validator. Service Nodes earn Karma for each successful API request, and when certain threshold requirements are met, can become a Validator. There is no limit to how many validators there can be in the Pocket Network. Pocket supports up to ⅓ malicious or replicated nodes using a modified version of PBFT. Thus, the more Validator nodes in the system, the more resilient it is.
At maturity, Pocket Network could be serving many quintillions of API requests a year. Recording each API request into the blockchain is infeasible. The Validators condense the results of the Session (section 3.2 of the white paper) into a single transaction and submit it to the Pocket Blockchain every epoch.
Pocket Network is a developer-driven protocol - there can only be as many API requests served as there are applications using Pocket. Instead of paying fees to access service node API’s developers must stake the protocol token (POKT) in advance. The protocol does not deplete the developer’s stake as they use the API services. It throttles the number of API requests a developer can send to a service node in a given Epoch. Once a developer reaches ROI on their staked POKT, they can continue using service nodes at the throttled amount allowed. They can choose to unstake their POKT after an initial lockup period or stake more if their application grows in usage.
While Service Nodes earn Karma for providing an API service, federated nodes mint POKT for each API request validated. Similar to other master node protocols like Dash, service nodes and federated nodes must also stake POKT. This staking and minting mechanism is the basis for the economic model of the protocol. Various burning mechanisms are proposed in the economic paper for the economic sustainability of the protocol at maturity.
Federated nodes provide an important governance layer as well. Inspired by the Dash protocol, 10% of each mint from a validated API request goes to a DAO (section 5). Participants must burn POKT to submit a proposal for some amount of POKT from the DAO. This ensures the long-term sustainability of the Pocket Network through native allocation of POKT for future protocol development.
POCKET WHITEPAPER V0.1.0.pdf (401.0 KB)