An analysis on curation reward distribution algorithm

in #steem8 years ago

We're trying to design the curation reward distribution algorithm. This is a re-post of some text I've written in Slack Channel.

Things we need to consider

  1. reward distribution among several posts,
  2. reward distribution among early votes vs late votes,
  3. reward distribution among whale voters and small voters

We want

A. encourage holding of SP, so 3 should be linear or steeper
B. encourage concentration of SP, so 2 should be some steeper than flat, e.g. inversely linear
C. decentralization of curation reward / don't piss off small guys too much, so 3 should not be too much steeper than linear
D. prevent sybil attacks, so 3 should be linear or steeper(so big holders can down-vote a post which got up-voted by many small holders) (although this goal has nothing to do with reward distribution)
E. encourage content finding, so 2 should be some steep, and the combination of 1 and 2 should be in favor of early voters
F. Winner effect, so 1 should be some superlinear
G. decentralization of author reward (this conflicts to winner effect somehow), so perhaps make it flatter after certain limit (same design can apply to curation reward)
H. anti-bots? not sure. perhaps 2 should not be too steep

Current implementation
1: superlinear (n^2),
2: inversely superlinear (n^-2),
3: superlinear (n^3),

Result: we got A, B, D, E, F, but not C, G

@killerstorm's idea
1: unrevealed,
2: near inversely linear (~ n^-1),
3: near linear (< n),

Results:

  • if 1 is (n^2), we'll have A, B, C, D, F, but not E, G
  • if 1 is (n*log(n+x)) ~ (n), we'll have A, B, C, D, G, but not E, F
  • if 1 is less than (n), we'll have A, B, C, D, E, G, but not F

Looks like it's hard if not impossible to fit all requirements, so we need to design an algorithm based on the priority of requirements. Different people may have different opinions on the priorities. In my opinion, @killstorm's idea with a flatter than linear 1st rule is the best.

Thoughts?

Sort:  

I think the problem is is trying to pigeonhole everything in to binary options. We need a third option. I think that there should be a button called flag. This button would be for inappropriate material and bots. This option would give an additional signal to the algorithm which then could be used to filter the content better and better allocate Rewards.

this may be appropriate (maybe keep hidden in tools button or something)

Looks you're trying to address the "sybil attack" part, which has been addressed by stake voting by design.
By the way do you know "botnet"? Bots would take advantage of that button if have chance..

o_O Ouch. Its too early for equations.

I'm glad there are smart people on this. That's way above my pay grade.

Coin Marketplace

STEEM 0.19
TRX 0.13
JST 0.028
BTC 66646.40
ETH 3314.59
USDT 1.00
SBD 2.69