This is the sixth post in a series about the Steem reward system. Please read my [disclaimer](what-my-posts-arent). For previous posts, see my [blog](/@theoretical). 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](the-steem-reward-system-part-3-curation-rewards-principles), which are mostly different specific mathematical ways to quantify the idea of a "fair" reward system. We [found](the-steem-reward-system-part-4-curation-rewards-algebra) a differential equation which follows as a consequence of the principles:  In the [previous post](the-steem-reward-system-part-5-curation-rewards-calculus-s-0-case), 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](https://en.wikipedia.org/wiki/List_of_integrals_of_rational_functions):  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](the-steem-reward-system-part-3-curation-rewards-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](the-steem-reward-system-part-5-curation-rewards-calculus-s-0-case), 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.
author | theoretical |
---|---|
permlink | the-steem-reward-system-part-6-curation-rewards-calculus-with-s-greater-than-0 |
category | steem |
json_metadata | {"tags":["steem","theoretical"]} |
created | 2016-07-07 06:03:54 |
last_update | 2016-07-07 14:55:39 |
depth | 0 |
children | 6 |
last_payout | 2016-08-23 20:50:27 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 28.106 HBD |
curator_payout_value | 1.842 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 7,579 |
author_reputation | 30,164,760,525,645 |
root_title | "The Steem reward system, Part 6: Curation rewards calculus with s > 0" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 59,865 |
net_rshares | 51,007,213,933,877 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
skywalker | 0 | 7,137,544,134,252 | 100% | ||
firstclass | 0 | 7,459,277,199,220 | 100% | ||
freedom | 0 | 5,975,208,471,590 | 100% | ||
samupaha | 0 | 2,151,801,500,565 | 100% | ||
bitcube | 0 | 2,872,111,569,385 | 100% | ||
theoretical | 0 | 256,402,696,479 | 100% | ||
wang | 0 | 3,732,234,349,039 | 100% | ||
xeroc | 0 | 1,669,351,334,307 | 100% | ||
complexring | 0 | 2,303,074,069,779 | 100% | ||
arhag | 0 | 5,052,187,130,203 | 100% | ||
aizensou | 0 | 0 | 100% | ||
au1nethyb1 | 0 | 4,678,258,469,468 | 100% | ||
benjojo | 0 | 907,521,456,460 | 100% | ||
proctologic | 0 | 11,899,301,078 | 100% | ||
markopaasila | 0 | 174,188,204,750 | 100% | ||
team | 0 | 121,670,144,385 | 100% | ||
ash | 0 | 255,535,281,237 | 100% | ||
linouxis9 | 0 | 80,822,084,097 | 100% | ||
valtr | 0 | 13,936,087,737 | 100% | ||
noaommerrr | 0 | 448,420,918,585 | 100% | ||
void | 0 | 356,635,159,377 | 100% | ||
vato | 0 | 143,411,070,733 | 100% | ||
imadev | 0 | 2,270,796,319,839 | 100% | ||
dedmatvey | 0 | 17,751,310,332 | 100% | ||
pextdr | 0 | 3,133,768,459 | 100% | ||
eeks | 0 | 526,478,832,364 | 100% | ||
hipster | 0 | 694,731,502,405 | 100% | ||
spaninv | 0 | 4,801,685,383 | 100% | ||
teamsteem | 0 | 51,956,986,359 | 100% | ||
cryptoctopus | 0 | 1,154,603,838,657 | 100% | ||
jerome-colley | 0 | 5,438,668,046 | 100% | ||
marta-zaidel | 0 | 5,933,324,631 | 100% | ||
justtryme90 | 0 | 4,291,369,314 | 100% | ||
stiletto | 0 | 367,080,600 | 100% | ||
ratel | 0 | 26,791,826,619 | 100% | ||
will-zewe | 0 | 98,678,691,660 | 100% | ||
brandonp | 0 | 28,043,851,175 | 100% | ||
tee-em | 0 | 836,661,293 | 100% | ||
thedashguy | 0 | 50,128,429,375 | 100% | ||
hendry-cie-poe | 0 | 192,120,751 | 100% | ||
gtg | 0 | 15,124,702,052 | 100% | ||
frankjones | 0 | 125,613,401 | 100% | ||
primus | 0 | 7,066,771,141 | 100% | ||
clement | 0 | 15,922,565,872 | 100% | ||
norbu | 0 | 2,575,918,181 | 100% | ||
marina | 0 | 167,542,921,494 | 100% | ||
artem-sokoloff | 0 | 232,924,603 | 100% | ||
volent | 0 | 165,991,727 | 100% | ||
nicholasparr | 0 | 110,229,034 | 100% | ||
vkoreshkoff | 0 | 11,652,058 | 100% | ||
biophil | 0 | 933,437,269 | 100% | ||
dr2073 | 0 | 218,409,236 | 100% | ||
heimindanger | 0 | 1,453,772,720 | 100% | ||
liberosist | 0 | 46,418,343,593 | 100% | ||
crypto.owl | 0 | 2,804,861,631 | 100% | ||
goodluckcanuck | 0 | 58,919,877 | 100% | ||
vonpetro | 0 | 0 | 100% |
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.](https://steemit.com/steem/@biophil/what-does-game-theory-say-about-steem-part-1) You've always impressed me with your mathematical acuity; I'd greatly value your thoughts on my series as it progresses!
author | biophil |
---|---|
permlink | re-theoretical-the-steem-reward-system-part-6-curation-rewards-calculus-with-s-greater-than-0-20160713t170126020z |
category | steem |
json_metadata | {"tags":["steem"],"links":["https://steemit.com/steem/@biophil/what-does-game-theory-say-about-steem-part-1"]} |
created | 2016-07-13 17:01:24 |
last_update | 2016-07-13 17:01:24 |
depth | 1 |
children | 0 |
last_payout | 2016-08-23 20:50:27 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 381 |
author_reputation | 45,223,914,794,461 |
root_title | "The Steem reward system, Part 6: Curation rewards calculus with s > 0" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 97,536 |
net_rshares | 933,437,269 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
biophil | 0 | 933,437,269 | 100% |
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
author | heimindanger |
---|---|
permlink | re-theoretical-the-steem-reward-system-part-6-curation-rewards-calculus-with-s-greater-than-0-20160726t173404704z |
category | steem |
json_metadata | {"tags":["steem"]} |
created | 2016-07-26 17:34:06 |
last_update | 2016-07-26 17:34:06 |
depth | 1 |
children | 0 |
last_payout | 2016-08-23 20:50:27 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 142 |
author_reputation | -16,507,408,909,111 |
root_title | "The Steem reward system, Part 6: Curation rewards calculus with s > 0" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 379,682 |
net_rshares | 373,581,953 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
telos | 0 | 373,581,953 | 100% | ||
tukey | 0 | 0 | 100% |
It's amazing that nowadays behavior of a currency can be fine-tuned like this!
author | markopaasila |
---|---|
permlink | re-theoretical-the-steem-reward-system-part-6-curation-rewards-calculus-with-s-greater-than-0-20160707t061212899z |
category | steem |
json_metadata | {"tags":["steem"]} |
created | 2016-07-07 06:12:12 |
last_update | 2016-07-07 06:12:12 |
depth | 1 |
children | 0 |
last_payout | 2016-08-23 20:50:27 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 78 |
author_reputation | 32,771,884,740,822 |
root_title | "The Steem reward system, Part 6: Curation rewards calculus with s > 0" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 59,875 |
net_rshares | 0 |
Yes thank you :D Saves me having to convert all this stuff on my own your awesome!
author | stealthtrader |
---|---|
permlink | re-theoretical-the-steem-reward-system-part-6-curation-rewards-calculus-with-s-greater-than-0-20160713t195938386z |
category | steem |
json_metadata | {"tags":["steem"]} |
created | 2016-07-13 19:59:18 |
last_update | 2016-07-13 19:59:18 |
depth | 1 |
children | 0 |
last_payout | 2016-08-23 20:50:27 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 83 |
author_reputation | 74,266,337,461,760 |
root_title | "The Steem reward system, Part 6: Curation rewards calculus with s > 0" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 99,980 |
net_rshares | 0 |
As @heimindanger pointed out none of the images are showing... Would be nice if that were fixed!
author | telos |
---|---|
permlink | re-theoretical-the-steem-reward-system-part-6-curation-rewards-calculus-with-s-greater-than-0-20160821t003715655z |
category | steem |
json_metadata | {"tags":["steem"],"users":["heimindanger"]} |
created | 2016-08-21 00:37:18 |
last_update | 2016-08-21 00:37:18 |
depth | 1 |
children | 0 |
last_payout | 2016-08-23 20:50:27 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 96 |
author_reputation | 3,975,075,719,043 |
root_title | "The Steem reward system, Part 6: Curation rewards calculus with s > 0" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 913,899 |
net_rshares | 0 |
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.
author | theoretical |
---|---|
permlink | re-theoretical-the-steem-reward-system-part-6-curation-rewards-calculus-with-s-greater-than-0-20160707t145857298z |
category | steem |
json_metadata | {"tags":["steem"]} |
created | 2016-07-07 14:58:57 |
last_update | 2016-07-07 14:58:57 |
depth | 1 |
children | 0 |
last_payout | 2016-08-23 20:50:27 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 286 |
author_reputation | 30,164,760,525,645 |
root_title | "The Steem reward system, Part 6: Curation rewards calculus with s > 0" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 60,902 |
net_rshares | 0 |