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

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:

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:

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:

### 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:

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:

An inflection point occurs when `W'' = 0`

. Only the middle term of the three-term product for `W''`

may be zero, which occurs when:

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:

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.

biophil (66)8 years agoI'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!

heimindanger (68)8 years agoOMG that looks like a great article. Most of the maths is in the picture unfortunatly and the pictures are ripped. Please re upload ? :(

xoxo

markopaasila (65)8 years agoIt's amazing that nowadays behavior of a currency can be fine-tuned like this!

theoretical (65)8 years agoEdited 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.

stealthtrader (67)8 years agoYes thank you :D

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

telos (57)8 years agoAs @heimindanger pointed out none of the images are showing... Would be nice if that were fixed!