The Steem reward system, Part 6: Curation rewards calculus with s > 0

in #steem8 years ago (edited)

This is the sixth post in a series about the Steem reward system. Please read my disclaimer. For previous posts, see my blog.

This post is a mathematically intense post. In order to follow everything in this post, your mathematical toolbox will need to include sharp algebra and calculus skills. Non-mathematically-inclined readers may wish to only read the conclusion and skim the rest.

I will frequently reference equations and principles discussed earlier in the series. If you have questions about an equation or principle, try reading the previous posts in this series.

The story so far

In this series of posts, we've developed some principles, which are mostly different specific mathematical ways to quantify the idea of a "fair" reward system. We found a differential equation which follows as a consequence of the principles:

{dW \over dR} = {W \over A ((R+s)^2 - s^2)}

In the previous post, we showed that when s = 0, the solution of this differential equation is unsatisfactory and inconsistent with the monotonic supply schedule principle. The current post's main task is to examine the s > 0 case.

Solving the equation, s > 0 solution

The s > 0 case is actually fairly straightforward with a quick side trip to Wikipedia's table of integrals:

curation-derivation-calculus-s-nonzero.svg

This is a formal result, but we should do some sanity checks: Check that the derivative matches, plot the function, and determine whether inflection points are possible, to be sure that this solution does not suffer from the same flaw as the s = 0 solution.

Checking the equation

To start off, we'll algebraically verify the expression for W satisfies the original differential equation. A matter of some algebra shows that it does:

curation-derivation-calculus-s-nonzero-check-first-derivative.svg

Building intuition

Let's think about the sub-expression R / (R+2s), which I'll call q. Initially q starts out at zero when R = 0, and q grows to approach 1 as R gets much larger that 2s. Raising to the power 1 / (2As), which I'll call p, maps the interval [0, 1] to itself in a monotonically increasing way, meaning the W curve as a whole should increase monotonically from 0 to B. Higher values of p means that for small q, the response of W to increasing q is flatter, but also accelerates more for moderate values of q. For a fixed value of s, higher values of p correspond to lower values of A. Plotting the curves gives a clear picture:

weight.png

Again like the s = 0 case, the parameter B (originally arising from a constant of integration) is the maximum weight that will ever be issued as R-shares goes to infinity. As emphasized by the tick labels on this plot, the parameters s and B can be viewed as establishing horizontal and vertical scales: Changing either simply gives the same picture stretched or squashed.

Inflection point analysis

One of these curves is not like the others. The blue A = 0.5 / 2s curve in the picture actually accelerates for small values of R. This curve violates the monotonic supply schedule principle and should be ruled out. Similarly to the previous post, we can find the second derivative and check for inflection points:

curation-derivation-calculus-s-nonzero-second-derivative.svg

An inflection point occurs when W'' = 0. Only the middle term of the three-term product for W'' may be zero, which occurs when:

curation-derivation-calculus-s-nonzero-second-derivative-zero.svg

Thus, as long as we set s >= 1 / (2A), the inflection point occurs when R <= 0 and we no longer violate the monotonic supply schedule principle!

Conclusion

We started out with some principles, which are mostly different specific mathematical ways to quantify the idea of a "fair" reward system which accelerates [1] the reward on a single post as upvotes accumulate. In the previous post, we decided V(R) = (R+s)^2 - s^2 (or equivalently, V(R) = R^2 + 2Rs) is the simplest curation reward curve [2] which might be compatible with the principles.

In this post, we took this curation reward curve as a given, and found that our principles imply a particular weight curve [4] given by:

curation-result.svg

This curve is actually a family of curves; we must choose a member of this family by setting the values of the parameters A, B and s. All three parameters must be positive; in addition we have the constraint s >= 1 / (2A). The values of A and B are fixed by certain practical implementation concerns [5], leaving s as the only "free" parameter. In a future post I will discuss some considerations of how the value of s should be set.

Footnotes

[1] The reward (as measured in V-shares) actually does continue to accelerate forever. But since V-shares are claims on a pool of STEEM whose size is bounded by the allowed inflation, a post accumulating truly huge numbers of upvotes would see the increases in its reward (as measured in STEEM) eventually start to slow due to its V-shares beginning to represent a large majority of the pool.

[2] The curation reward curve V(R) is the formula which determines "the size of the pie": How many V-shares will be assigned to the post's total curation rewards as a function of the number [3] of upvotes.

[3] Upvotes are measured in R-shares, which are determined by Steem Power times voting power. Voting power is usually near 100% and regenerates over time, but a little bit is consumed with each upvote, meaning that curation rewards are subject to diminishing returns if you use a very large number of upvotes in a short period of time.

[4] The weight curve W(R) is the formula which determines "the slicing of the pie": How much weight is given out based on the number of R-shares. Specifically, if your upvote increases the R-shares on the post from R0 to R1, the weight will increase from W(R0) to W(R1); your curation reward weight will be W(R1) - W(R0). The total number of V-shares for the post's curation reward is calculated by the curation reward curve, then divided among all upvoters proportional to their weights.

[5] The choice A = 1 / (2s) is the only principles-compliant choice for which computing W does not require computing a non-integer power. The choice of B is completely inconsequential as long as it's large enough to avoid rounding errors.

Sort:  

I'm going to have to watch your blog closely; I'll be taking liberally from your math as I think about the incentives in Steem in my upcoming series on the Game Theory of Steem. You've always impressed me with your mathematical acuity; I'd greatly value your thoughts on my series as it progresses!

OMG that looks like a great article. Most of the maths is in the picture unfortunatly and the pictures are ripped. Please re upload ? :(

xoxo

It's amazing that nowadays behavior of a currency can be fine-tuned like this!

Edited to fix an algebra mistake when checking the derived expression for W satisfies the original DE. (Missing brackets led to the -1 in the exponent being incorrectly placed in the denominator.) I also slightly clarified the expression by putting the entire exponent in parentheses.

Yes thank you :D

Saves me having to convert all this stuff on my own your awesome!

As @heimindanger pointed out none of the images are showing... Would be nice if that were fixed!