This is the fifth 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 skip to the conclusion.
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.
Solving the equation
In the previous post, we left off with the equation:
Readers familiar with calculus should immediately recognize this as a differential equation. Specifically, it is a first-order separable differential equation involving a low-degree rational function, which leads us to suspect that an exact symbolic solution may be possible.
Solving the equation, s = 0
solution
When s = 0
the solution is:
Let's take a quick look at the graph of this function (with e.g. A = B = 1
):
It's clear from this graph that the solution rises quickly early on, but slows as R
becomes larger. We can clearly see that the total weight issued, W(R)
, goes toward B = 1
as W
becomes large. Interestingly, B
represents the maximum amount of weight the algorithm is ever "allowed" to issue to a post's upvoters, regardless of how many upvoters there are -- it's a "weight ceiling". The fact that the weight does have a ceiling was not one of our starting assumptions; rather it was a consequence of them. I was actually quite astonished when I discovered that the existence of a ceiling actually follows from the principles!
There is an interesting little corner of the graph, which I've outlined with a small box near the origin. Let's blow up the box to a full-sized graph:
So actually W
starts off flat, starts to rise at an increasing rate, then (by eyeball, at about R = 0.5
) its rate of increase starts to fall. Where the function changes from rising rate of increase to a falling rate of increase is called an inflection point.
To further study W(R)
, let's use calculus to compute the first and second derivatives:
We can determine the inflection point exactly from this expression. The inflection point occurs when W''
is zero, at R = 1 / (2A)
. The "eyeball estimate" of R = 0.5
was spot-on!
The monotonic supply schedule principle requires the W
curve to have a decreasing slope everywhere. The region before the inflection point, where the slope increases, violates the monotonic supply schedule principle. As a result, the s = 0
solution isn't compatible with the principles listed earlier in this series. In the next post in this series we will examine the s > 0
solution.
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. The most basic accelerating scheme simply determines the total curation reward for a post as the square of the number of upvoting R-shares, V(R) = R^2
; this is the "curation reward curve".
In today's post, we discovered a problem: The mathematical consequences of the first four principles, applied to the curation reward curve V(R) = R^2
, result in a system where sometimes later upvoters get more weight per R-share than earlier voters! In the next post we'll examine a different curation reward curve and show that it doesn't suffer from this problem.
[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.