Here I present a new way of computing chance using a Draw Percentage Rate. The DPR allows prize pools to operate autonomously, automatically scale prizes as deposits grow, and offer infrequent larger prizes. The existing V4 prize pools can be modified to support this new model.
Note: this is a very technical post and serves as a primer to the DPR concept that will be introduced next week as part of a broader push to simplify the protocol.
Background
PoolTogether V4 introduced the idea of a prize pool network: a set of prize pools that share prizes. This is accomplished by dividing the probability space proportionally to the liquidity held by each prize pool. The “probability space” is the total number of combinations available; in PT we call this the total picks.
For example: if a prize pool has 50% of the TVL for the network then that pool is allocated 50% of the probability space. If there are 1000 picks, then the prize pool is allocated 500 picks, and users within that pool get a portion of the 500 based on their share of the TWAB. In this way chance is distributed fairly across the entire prize pool network.
However, this approach has downsides:
-
The probability space is fully allocated every draw; this means that on average the grand prize will be awarded once per draw. We cannot have less frequent, larger prizes.
-
Each prize pool needs to be aware of the TVL of the prize pool network which means, because the data lives across blockchains, that governance has to push that data to each chain for each draw.
How can we avoid this complexity?
Draw Percentage Rate
The prizes that a prize pool wins are the returns for the pool. The ratio of prizes to prize pool TVL can be considered a percentage rate. Let’s explore the Percentage Rate for an example prize pool network.
Assume the total prize amount is $1000 and we have three pools in the network:
- Pool A: $10,000
- Pool B: $20,000
- Pool C: $30,000
The Network TVL is $60,000. Each pool will be allocated a portion of the probability space (chance) like so:
Chance = Prize Pool TVL / Network TVL
- Pool A Chance = (10,000 / 60,000) = 0.166
- Pool B Chance = (20,000 / 60,000) = 0.333
- Pool C Chance = (30,000 / 60,000) = 0.5
We can see that Pool C, with 50% of TVL, gets 50% of the probability space.
Now let’s calculate the expected value of the draw:
Expected Value = Chance * Total Prize
- Pool A EV = 0.166 * $1000 = $166 per draw
- Pool B EV = 0.333 * $1000 = $333 per draw
- Pool C EV = 0.5 * $1000 = $500 per draw
What do these winnings look like in terms of percentage rate?
Percentage Rate = Expected Value / Prize Pool TVL
- Pool A returns = $166 / $10,000 = 0.0166
- Pool B returns = $333 / $20,000 = 0.0166
- Pool C returns = $500 / $30,000 = 0.0166
Intuitively, this makes sense. $1000 prize for $60,000 TVL is $1000/$60,000 or a 0.0166 rate of return. It’s the same for all prize pools on the network. The Draw Percentage Rate is 1.66%.
Eliminating the Network TVL Variable
If we explicitly set the Draw Percentage Rate, then we can calculate Chance without Network TVL.
Let’s solve for Chance with the above Expected Value equation:
Expected Value = Chance * Total Prize
Chance = Expected Value / Total Prize
We can substitute Expected Value with another formula: the Percentage Rate. Let’s solve for Expected Value with the Percentage Rate equation:
Percentage Rate = Expected Value / Prize Pool TVL
Expected Value = Percentage Rate * Prize Pool TVL
Now let’s substitute the EV equation into the Chance derivation above:
Chance = (Percentage Rate * Prize Pool TVL) / Total Prize
Great! We’ve eliminated the Network TVL variable. Let’s try it out:
- Pool A Chance = (0.0166 * 10,000) / 1000 = 0.166
- Pool B Chance = (0.0166 * 20,000) / 1000 = 0.333
- Pool C Chance = (0.0166 * 30,000) / 1000 = 0.5
Fantastic! If we explicitly set a DPR for each pool, then we no longer need to rely on knowing the Network TVL. We just need to make sure the DPR is the same for all prize pools across the network.
Draw Percentage Rate in Action
Now that we’ve defined the DPR and can derive chance from it, we can have arbitrary prize distributions!
Example Prize Distribution
DPR: 0.02%
TVL: $10m
Prize Distribution:
Prize | Est. Count |
---|---|
$100,000 | 1 |
$8,333 | 12 |
$2,083 | 48 |
$521 | 192 |
$130 | 768 |
$33 | 3072 |
$8 | 12288 |
$2 | 49152 |
$1 | 196608 |
Chance = (Percentage Rate * Prize Pool TVL) / Total Prize
Chance = (0.0002 * 10,000,000) / 1,000,000 = 0.002
This means that the prize pool should only have 0.2% of the probability space for the $1,000,000 in prizes. Assuming a daily draw, that means we’d get:
Prize | Est. Daily Count | Est. Yearly Count |
---|---|---|
$100,000 | 0.0020 | 0.7300 |
$8,333 | 0.0240 | 8.7600 |
$2,083 | 0.0960 | 35.0400 |
$521 | 0.3840 | 140.1600 |
$130 | 1.5360 | 560.6400 |
$33 | 6.1440 | 2242.5600 |
$8 | 24.5760 | 8970.2400 |
$2 | 98.3040 | 35880.9600 |
$1 | 393.2160 | 143523.8400 |
Now we can have arbitrary prize distributions! You can see that the $100,000 prize will occur every year and a quarter, or so, on average.
Summary
Introducing a Draw Percentage Rate will allow us to:
- Have arbitrary prize distributions
- Have prizes that occur less frequent than daily
- Eliminate Governance acting as an oracle
- Show the EV for a prize pool as a simple DPR %
Next Steps
The PT Inc. team is planning on developing this code along with additional improvements as part of a push to simplify the protocol. We will require:
- PT auditing resources.
- Governance to install the new contracts when they are ready.
We’ll have more information about the full plan next week. This is a primer on the DPR, so please ask questions or feel free to comment.