Proposal: Introducing a Probabilistic Approach to the vWINR Mining Multiplier Mechanism

Motivation

The purpose of this proposal is to enhance the user experience and optimize vWINR emissions by introducing a probabilistic element to the current multiplier. Through these proposed changes, we aim to bring more excitement and unpredictability, similar to a jackpot-like mechanism, to the minting of vWINR.

One of the main motivations for this proposal is to introduce gamified rewards. Currently, the amount of vWINR minted in a transaction depends solely on the epoch’s multiplier and the bet amount. The proposed change will add an extra element of fun, as players will not only anticipate the outcome of a game but also the amount of vWINR minted based on their bet.

Additionally, this change will slow down vWINR minting, resulting in positive effects on emissions. By implementing the revamped mechanism, our goal is to make the current dual vWINR/WINR model more sustainable.

In summary, these improvements aim to create a more dynamic and engaging experience for our users, and ultimately optimize the emissions system for the benefit of all stakeholders involved.

Proposed Additions

As described in detail at Token (WINR/vWINR) - The WINR Protocol, the current mining multiplier ranges from 0.25 to 1 (after the first halving). Instead of completely overhauling the existing system, our proposal suggests multiplying the current multiplier by a new probabilistic variable, denoted as “p.” This addition will make the amount of vWINR minted for a particular bet unpredictable.

The proposed probabilistic variable, “p,” has a range of 0.1 to 100, with decreasing probability. To achieve this decreasing probability, we utilize the inverse function f(x) = 1/x. Specifically, the random variable “p” will be determined by:

p = 0.1 / random.uniform(0.001, 1)

Where random.uniform(a, b) outputs a value that is randomly selected from the interval [a, b]. The probability of any output between a and b is the same.

The values of “p” range from 0.1 to 100, with values closer to 0.1 having a higher probability. This adjustment allows us to reduce current vWINR emissions by approximately 30%, given that the mean of “p” is around 0.68-0.70. The exact result is given by the following equation:

Mean = 0.1 * (ln 1 - ln 0.001) / (1 - 0.001) ~ 0.69

The following figure illustrates the frequency of each “p” value occurring over a simulation of N=1000000.

Screenshot 2023-07-10 at 18.32.29

Once the variable “p” is integrated into the current mining formula, the amount of vWINR minted per bet will be determined by:

vWINR minted = bet amount * current mining multiplier * p.

For instance, a bet that currently mints 100 vWINR will mint the following amounts for various “p” values:

Screenshot 2023-07-10 at 18.32.47

Conclusion

In summary, the proposed changes to the mining multiplier mechanism present a compelling opportunity to elevate the overall user experience and optimize vWINR emissions. By adding a probabilistic element to the existing multiplier, our objective is to inject a sense of thrill and unpredictability into the vWINR minting process. These proposed enhancements will gamify the currently placed rewards and foster a more dynamic experience for players.

Furthermore, the incorporation of the new probabilistic variable “p” will contribute to a controlled deceleration of vWINR minting, yielding favorable outcomes in terms of emissions. By multiplying the current multiplier by “p,” the amount of vWINR minted for a given bet will become inherently uncertain, adding each transaction an element of surprise.

Through the implementation of these suggested modifications, our ultimate aim is to cultivate an environment that is more immersive and gamified. In addition, this will optimize the emissions system, ensuring its efficacy and benefitting all stakeholders within the vWINR ecosystem.

5 Likes

This is a welcome development. Kinda levels the playing field. I hope this also applies to addresses without a multiplier.

1 Like

Yea :+1:t2: Thank you for this insight.

1 Like

This will be applied to all addresses, if accepted.

1 Like

I support this proposal.

First off, the timing is ideal… with halving just having occurred.

Secondly, I feel this change keeps to the primary objectives of the protocol, one of which is to provide gamified variability where possible. This comes at little expense to the user experience, I think, because, with halving behind us, the rate of return will most times be lowered already (with exception of only the highest mining multiplier days). In fact, this creates some “jackpot” upside for those playing, irrespective of mining multiplier, and could help level out volume distribution and remove some of the “disincentive” to play that is inherent in the mining multiplier method. In an ideal world, by providing variability in the form of this multiplier change, we might address variability in volume distribution. Big win.

Lastly, while some users may hit jackpot vWINR payouts, I am presuming, based on the proposal details, that net-net emissions will be reduced. While this translates into a lower “overall” mint rate, this is also in the best interest of long-term supporters/users/investors. In effect, the trade-off for the “reduced emissions” is the possibility to hit outsized jackpot vWINR payouts. Given the demographic of users (i.e. the customer base), I think this is a readily acceptable tradeoff.

Smart move, gents. Killin’ it, as usual.

I intend to vote for this proposal.

2 Likes

Love to see the creative thinking and detailed proposal, with formulas and all!
I support this motion, but potentially with a modified parameter.
While the average reduction in emissions is 30%, the median bet emissions is reduced by 80%
p = 0.1 / 0.5 = 0.2

The average of 0.69 is heavily skewed by the drastic increase at the top 0.1% of results, so is distinctly different than the “normal” user experience.

I would prefer to see p = 0.14 / random.uniform(0.001, 1) which has a mean value of ~1. The median value is still quite low at 0.28 but then at least you are paying out the same amount across the large population, just gamifying it. The emissions already got cut in half, which is good, and there will be more halvings. I don’t see additional 30% reduction being needed, and most bets actual will experience over 75% reduction individually.

Lastly, would be cool however it is done that if you hit a “lucky” p value there is a little celebration animation or something pointing it out :tada:

2 Likes

Yes,Anyway, it’s always good to try.

Hey Theophilus. I did not quite get how you reached that 80%. With the current values p is taking on, the average p is going to be 0.69, which will reduce overall emissions by 31%.

Hey Jack, I’m highlighting the difference between the mean and the median, which with a curve like this is pretty staggering.
For a flat random distribution, your median returned value of the random function is 0.5
and then p = 0.1 / 0.5 so p = 0.2, thus an 80% reduction at the median, meaning half of the bets will actually be worse than that.

Looking at it from another example, p = 1 when the random function returns 0.1 (and smaller from the random is better). Therefore ~90% of the time the p value will be less than 1 and mining reward on a bet lower than it would have been.

So yes the average emissions for the platform will reduce 31%, but the tokens you are distributing are highly concentrated to the lucky few. So there is an imbalanced affect to the users themselves. I am in favor of a random component here, but the curve should be less drastic. A 1 in 10 chance to even just get the “normal” payout kinda stinks.

Hey Theophilus.

While X is Uniform(0.001, 1), Y = 1/X has an inverse uniform distribution. The mean of Y=1 / X is calculated by the following formula:

Y = C/X where X is Uniform(a, b)

mean = C * (ln b -ln a) / (b - a)

In our scenario:

p = 0.1/X where X is Uniform(0.001, 1)

mean = 0.1 * (ln 1 - ln 0.001) / (1 - 0.001) ~ 0.69

Also, the way the distribution is designed right now resembles a jackpot for the vWINR emissions and gamify the vWINR rewards, that’s the main reason it’s planned to be implemented this way.

1 Like

All, sharing an update for posterity.

I clarified my opinion to the team in DMs. And strongly believe the probability curve on this should be adjusted to be less drastic. You can do the same total reduction in emissions without heavily reducing the median bet as much.
I’m leaning towards a no-vote as written, but am definitely a yes with an adjustment to the curve.

1 Like

I’m seeing good opportunity for a change to p = 0.5 + ( 0.025 / random.uniform(0.001, 1) )
Total reduction is still ~32%.
But now the majority of bets will get around 0.5x, instead of much lower than that on the low half of the current formula which goes all the way to 0.1x
Enough randomization to keep it interesting and mess with farmers, but much less aggressive and will let the WIP-2 jackpot fulfil its own function. We don’t need two jackpots.

1 Like

Thanks for the input @Theophilus! We’ve actually been working on the shape of the distribution for the last couple of days and currently, we are about to adopt a Gaussian mixture model. Your suggestion still keeps the emissions reduced at the same level but there also needs to be people rewarded with > 50x multipliers every once in a while. That’s why I thought of adding a little bit more weight on the p=100 side. What do you think?

1 Like

Ooooo now we’re getting fancy. Can you share the specifics on that? It is hard for me to vote on the proposal when it doesn’t include the actual formula somewhere, ideally here. Especially when the phrase “Some other bets will lead to less vWINR minted” doesn’t say how much “less” it goes which has been my main concern on an individual bet basis.

A somewhat modified curve that still has >50x but applies a mixture model of probability sounds like it could do everything we want. I mean even a normal distribution applied to the random function could get there possibly instead of an equal distribution. There should be something there that can keep a ~0.5x floor but also have >50x and the average still at 68% original

1 Like

Glad that we’re getting close to a deal here :wink: Let me just shoot you the raw data itself. The first array has the multipliers and the second array has the number of occurrences per one million runs. I would have shared the plot of the prob distribution, but the peaks are slim, so no good.

(array([ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,
1. , 1.1, 69. , 69.2, 70.3, 72. , 72.5, 73.7, 74. ,
74.2, 74.3, 75. , 75.4, 75.8, 75.9, 76.5, 76.7, 76.8,
77.1, 77.5, 77.6, 77.7, 77.9, 78. , 78.1, 78.3, 78.4,
78.5, 78.8, 78.9, 79. , 79.1, 79.5, 79.6, 79.7, 79.8,
80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.8, 80.9, 81. ,
81.1, 81.2, 81.3, 81.5, 81.6, 81.8, 81.9, 82. , 82.1,
82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.9, 83. , 83.1,
83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84. ,
84.1, 84.2, 84.3, 84.4, 84.5, 84.7, 84.8, 84.9, 85. ,
85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9,
86. , 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8,
86.9, 87. , 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7,
87.9, 88. , 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7,
88.8, 88.9, 89. , 89.1, 89.2, 89.3, 89.4, 89.5, 89.6,
89.7, 89.8, 89.9, 90. , 90.1, 90.2, 90.3, 90.4, 90.5,
90.6, 90.7, 90.8, 90.9, 91. , 91.1, 91.2, 91.3, 91.4,
91.5, 91.6, 91.7, 91.8, 91.9, 92. , 92.1, 92.2, 92.3,
92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93. , 93.1, 93.2,
93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94. , 94.1,
94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95. ,
95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9,
96. , 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8,
96.9, 97. , 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7,
97.8, 97.9, 98. , 98.1, 98.2, 98.3, 98.4, 98.5, 98.6,
98.7, 98.8, 98.9, 99. , 99.1, 99.2, 99.3, 99.4, 99.5,
99.6, 99.7, 99.8, 99.9, 100. ]),
array([ 2, 237, 5939, 60733, 240816, 382312, 241353, 60414,
5903, 223, 3, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 2, 1, 1,
1, 1, 1, 1, 2, 1, 1, 2,
2, 1, 1, 2, 3, 3, 2, 1,
2, 2, 2, 1, 2, 1, 1, 1,
3, 2, 2, 2, 2, 1, 1, 1,
1, 2, 1, 2, 1, 2, 2, 5,
2, 2, 1, 3, 1, 3, 1, 1,
2, 3, 3, 1, 3, 2, 4, 3,
2, 3, 2, 1, 1, 4, 4, 4,
3, 1, 2, 3, 2, 1, 1, 3,
3, 5, 2, 1, 3, 3, 5, 7,
3, 7, 3, 8, 5, 1, 4, 1,
1, 3, 5, 4, 2, 6, 3, 6,
2, 1, 4, 2, 3, 3, 4, 3,
4, 8, 5, 2, 9, 6, 2, 4,
11, 3, 4, 2, 6, 4, 7, 3,
7, 5, 6, 6, 8, 6, 11, 9,
7, 2, 6, 5, 3, 6, 4, 4,
4, 6, 9, 7, 7, 7, 5, 5,
5, 5, 7, 9, 5, 8, 4, 11,
9, 6, 12, 8, 10, 4, 7, 5,
9, 7, 5, 13, 9, 8, 6, 2,
8, 3, 11, 8, 11, 3, 8, 8,
7, 10, 11, 9, 6, 13, 6, 10,
9, 16, 10, 5, 11, 10, 9, 5,
7, 7, 5, 7, 7, 5, 7, 7,
7, 10, 4, 8, 10, 7, 11, 5,
7, 8, 6, 7, 16, 6, 5],
dtype=int64))

1 Like

For an exaggerated plot, you can have a look at this one, though. Keep in mind these are not the real values:

For the case actually proposed, we have the following:

np.mean(p)
0.6952900356971281

np.max(p)
99.9980702568439

np.min(p)
0.12260048350650121

1 Like

For posterity, we talked off line and I think this is great and good teamwork!

2 Likes