gPOOL and the Centralization of Power
A few days ago PT Inc began working on a project called gPOOL, which would allow users on L2s and sidechains such as Polygon to have a soft “vote”. After digging in, we quickly realized that the project dangerously centralized control of the protocol. We decided to stop and re-evaluate.
We’re going to break down the motivation behind gPOOL, how it works, and why it is deeply problematic.
Motivation
Many PoolTogether users reside on Polygon, which is a sidechain that is tightly coupled to Ethereum. Being a separate chain, Polygon is insulated from Ethereum so smart contract communication across chains is limited.
PoolTogether’s governance system lives on Ethereum. POOL token holders vote on transactions that are executed by the Timelock. The Timelock contract essentially is governance, at the moment. The Timelock holds the treasury and controls key contracts.
The POOL token has a special feature that allows us to see a user’s balance in the past. This feature is what allows users to vote on proposals for the Timelock.
The POOL token bridge to Polygon locks up POOL tokens in Ethereum, and mints new tokens on Polygon. The token on the Polygon side is a simple ERC20. Since the POOL tokens are locked up on Ethereum, they cannot be used for voting. POOL tokens on Polygon do not have any voting power.
Implementation
gPOOL intended to give POOL holders on Polygon concrete voting power.
- The gPOOL contract would live on Ethereum.
- Users would deposit POOL in exchange for gPOOL at a 1:1 ratio.
- The POOL tokens held by the gPOOL contract would be delegated to a multisig decided by governance
- gPOOL tokens would be bridged via the standard Polygon or L2 token bridges
- gPOOL token holders on Polygon or L2s would “vote” by signalling on a Snapshot vote
- The multisig to whom the POOL is delegated would vote according to the results of the Snapshot vote.
Problems
You can see how gPOOL holders, across all L2s, would delegate their voting power to a single multisig. Even without any utility on Polygon about ~100k POOL tokens have been bridged. Assuming gPOOL is successful, that means the multisig would control 1% of the total supply of POOL. That’s enough for quorum, meaning the multisig could pass a vote itself.
What is interesting is that we the same problem with pPOOL. The V3 POOL Prize Pool on Ethereum has over 775k POOL deposited into it. On Sybil, you can see that the voting weight of pPOOL is now ~41%. That’s quite a concentration of power.
While the protocol is small, this is not a problem. However as the treasury grows and the protocol expands this is a critical point of failure of the DAO. Adding gPOOL will compound this problem.
Summary
After digging more deeply into L2 optimizations, we realized that:
- gPOOL is a bad idea
- We need to migrate away from the pPOOL
This led us to cancel the gPOOL project, and these ideas are helping inform what our governance endgame will look like.
Stay tuned for an upcoming exploratory post…