Recently, we at the GetBlok.io team launched a new software library called GetBlok.io Plasma, enabling dApp developers on Ergo to easily integrate AVL Trees into their smart contracts and off-chain code. As mentioned in our previous article [link here], GetBlok Plasma enables a whole new world of opportunities for our SubPools. We have successfully integrated Plasma contracts into three of our SubPools, and plan to integrate Plasma into all future pools launched.
As stated previously, Plasma allows the potential for huge amounts of data to be stored in a small collection of 32 bytes. With the success of our Plasma contracts, and the start of Plasma integration into other projects in the Ergo ecosystem, we believe it to be a good time to discuss why GetBlok.io Plasma was created. We will explore the use cases beyond Plasma SubPool contracts, and what it means to become a fully decentralized layer-2 mining platform built on Ergo.
The Future of Plasma
Prior to the initial conception of GetBlok.io SmartPools, we’ve believed that decentralization and transparency are important tenets to follow. All actions on the SmartPool are broadcasted on-chain, in a way that allows miners to easily see their payouts and shares. However, while payouts themselves are secured on-chain, central points of failure still exist on the Smart Pool. One of the largest and most challenging parts to decentralize is share handling.
Share handling refers to the storage of individual shares submitted by each miner in the pool. To calculate payouts, shares for each miner must be collected, which can be used to estimate the amount of work each miner performed. , The work for each share is finally accumulated into a single share score, which represents the miner’s proportion of the block reward. With nearly 300+ GH/s on our Smart Pool, we store upwards of 1 million shares at any given time. It is easy then to see why share handling poses such a problem in decentralization. Direct storage of each share onto the chain is inviable, the huge amounts of data stored would inflate the size of the blockchain. In addition, there is a computational bottleneck that will occur when trying to verify so many shares at once.
The second point of centralization involves job handling and ties into censorship resistance. All mining pools on Ergo run their own nodes, which send out block candidates to miners who then try to find the nonce which solves the PoW algorithm. In general, this works quite well with stratum-based software. However, a key problem exists here.
If mining pools create and send block candidates to miners, then they control all aspects of the block that makes it on-chain. This means the mining pools receive the block reward to their own wallet. Moreover, mining pools have the ability to pick and choose what transactions make it on-chain. An adversarial actor may therefore censor certain transactions for whatever reason they choose. This centralization of jobs also means that PoW based governance is controlled not by the miners, but by the mining pools who create the block candidates that are sent to miners. Although our Proof-of-Vote protocol, helped to mitigate this problem, it was not perfect in that the mining pool acted more as a republic rather than a work-based democracy.
Plasma-based Share Handling
The above problems are not easy to fix, and for that reason we have been researching different methods to help solve them. In fact, one of the original purposes of GetBlok Plasma was to help find a solution to these issues that prevent full decentralization. Through our research over the past few months, we now believe that we have a framework to start decentralizing the mining pool further. We’ve drawn inspiration from various sources, including the Ergo Smart Pool paper, the ETH Smart Pool paper, and Alex Chepernoy’s (a.k.a Kushti) own research on collateralized mining pools.
To begin, let’s analyze the problem of share handling. With the huge amounts of data required, it seems only natural that the solution involves AVL Trees through Plasma. By using AVL Trees to store miner shares, we are able to take the millions of shares needed for payouts and store them all into packets that are 32-bytes in size. We will call these packets, work digests, and they represent the shares and work each miner performed for the pool. With the storage problem complete, we must still be able to verify that the shares of each miner are correct, and then assign this batch of shares a share score. We have a few different methods to solve this problem, though we will delve more deeply into them in a later writing on the subject.
Job Handling Dilemma
There is quite a bit more research on dealing with the problem of centralized job handling in Ergo. In general, miners must run their own nodes in order to create their own candidates. This poses a problem, if each miner runs their own node then each miner will simply receive their own block reward. This is no different than each miner solo mining, and does not allow for miners to receive the consistent payment benefits of pooled mining.
One solution to this problem is to force miners to collateralize ERG in order to participate in the Smart Pool. By collateralizing a minimum of the current block reward, miners are able to participate in the pool using only an Ergo node, without any need for a stratum connection to some third-party pool. However, requiring collateralization clashes with one of the greatest benefits of a PoW ecosystem, in that new miners with 0 ERG in their balance are unable to participate in the PoW consensus mechanism through a decentralized mining pool.
Third-party collateral, provided by lenders can help to solve this problem. By providing collateral, new miners will be able to participate in the Smart Pool without requiring any ERG themselves. Of course, to properly incentivize lenders to lock up their ERG, a fee must be taken from each uncollateralized miner’s payout. While this is doable, it poses a problem in that the protocol is now charging miners to participate in the decentralized pool.
A Path Forward - Layer 2 Tokenization
We believe that decentralization should be free-of-charge for miners, and that miners should not have to pay to participate in a fully decentralized pool. To compensate for this, miners must receive a token to help incentivize them to participate in the decentralized pool. Moreover, the layer-2 protocol we wish to build will involve more than just decentralized mining pools, and will instead be the backbone of an entire Proof-of-Work economy.
This token will serve as the base asset for the protocol, and it will open up a world of new possibilities backed by the security of decentralized mining pools. We will have another article later explaining the capabilities of this token, its usecases, and how it will provide a unique fusion between Proof-of-Work and Decentralized Finance. GetBlok.io wishes to create a true economy of Ergo miners, and we plan to release more information regarding our Layer-2 protocol in the near future.
Questions? Suggestions? Ideas? Let us know as a comment below!