PoolTogether

[PROPOSAL] Incentivizing Protocol Operations

On February 17 the users of PoolTogether became the governors of the protocol. As one of the core contributors I’m extremely excited to evolve the protocol as part of the community! However, there is one final step that needs to be taken in order to transition the current prize pools to being fully decentralized: decentralizing protocol operations.

The first operation that needs to be decentralized is the act of awarding the prize pools. Currently, all prize pools are weekly which means they can be awarded at most once per week. Anyone can trigger the award process, which consists of two transactions: startAward() and completeAward(). At current gas prices the two award transactions together cost about $1000 USD to execute. With four prize pools, that’s about $4000 per week. The awarding process is currently sponsored, but the sponsorship will not last forever.

What we need is to incentivize people to award.

Given that awarding prize pools is a core operation of the protocol, I think the simplest approach is to award the user with POOL tokens. The flow would look something like:

  1. We deploy an “operations” contract that allows anyone to award a pool “through” the contract; in other words the user transacts with the operations contract which then transacts with a prize pool.

  2. If the transaction is successful, then the user is given a certain amount of POOL tokens.

Governance would determine eligible operations and payout amounts per operation, and transfer POOL tokens to the contract for payouts.

Having a list of pools approved for operations also means that it would be easy to identify a “protocol pool” vs a “community pool”. Community pools are operated by third parties, while protocol pools are managed and operated by the protocol. In the future we can add additional benefits for protocol-operated pools.

I would love to hear everyone’s thoughts on this idea! This is one of the last steps towards decentralization.

15 Likes

I think this is very important for the long-term sustainability of the protocol.
Is there any way we can make the POOL reward dependent on the gas price at the time? Basically if ETH price, POOL price, or gas price fluctuate wildly, the reward operation could become either unprofitable, leaving the pool unawarded, or too profitable, costing the treasury more POOL than would be required.
I guess this would need some kind of Oracle service, which have been known to be an attack vector on other protocols.

3 Likes

This is a very good point. With gas prices fluctuating we will likely want to adjust the compensation regularly.

My initial thought was that we could over-compensate the operator, but in times of high volatility that may not be enough.

Another problem that @qwercus pointed out was that there would be contention for the transaction: essentially it would go to the person who set the highest gas price.

What is interesting is that this is a similar problem that the Keep3r network has. They solved the pricing issue by measuring gas used (although with the new proposed EVM changes that may break), but it still becomes a gas auction between workers when completing jobs.

I’m going to do some more digging here, and see what we can do.

5 Likes

Personally I’d actually advocate setting the POOL amount a bit lower than what actual gas costs might be. That would leave it open for someone to do it who wants the POOL and is aligned long term and willing to sacrifice a bit to get it.

If it’s higher than gas costs, it’s just going to become a gas race.

1 Like

Update: Chainlink is rolling out Keepers in a few weeks. This project is modelled after the Keep3r system, but uses Chainlink operators to do the work.

Essentially it functions as the Operation contract above, but the cost is calculated to be the gas cost plus a premium of 0.25% or so. The cost is calculated using Chainlink Oracles.

Another difference is that the Keepers are paid in LINK tokens. The spot price of LINK is used to cover the gas costs.

So this proposal now becomes:

  1. There is a registry of protocol operated prize pools
  2. A Keeper contract allows Chainlink Keepers to interface with the prize pools
  3. The protocol exchanges some of the treasury for LINK tokens and deposits into the Chainlink Keeper Registry (where payments are made)
5 Likes

@leighton If the amount was lower than the gas costs, the discrepancy would have to be lower than the transaction fees on Uniswap.
Otherwise a rational actor would go to Uniswap to accumulate POOL, rather than earning it for awarding the prize.

Sounds great @Brendan will be interesting to follow how Chainlink Keepers progress within other projects and any teething issues. Can I suggest once this is further fleshed out an economic audit is also done prior to implementation. Unforeseen, creative
economic exploits are the new black these days :slight_smile:

1 Like

You guys have my vote - well, if my delegate votes for it! Just waiting for the proposal to go live by a delegate that can propose it.

2 Likes

he definitely will! this proposal has my full support.

2 Likes