Appendix B

The reward mechanism in Core isn’t terribly complicated, but it does have a lot of moving parts. This section presents two simple examples to elucidate its inner workings.

Part 1

Let's assume there are two validators, both of which have been elected:

  • Validator A, which has:

    • two units of delegated hash power

    • one unit of CORE stake

    • one unit of non-custodial BTC stake.

  • Validator B, which has

    • one unit of hash power

    • three units of CORE stake

    • two units of non-custodial BTC stake

Let’s assume that there are 10 total units of Bitcoin hash power on the Core network. This would mean validator A has 20% of the hash power (2/10) and validator B has 10% of the hash power (1/10).

Let’s also assume there are 20 total units of CORE staked on the network. This would mean validator A has 5% of the CORE staked (1/20) and validator B has 15% of the CORE staked (3/20).

Let’s further assume there are 10 total units of non-custodial BTC staked on the network. This would mean validator A has 10% of the BTC staked (1/10) and validator B has 20% of the BTC staked (2/10).

For this example, m is set to 1/3 and n is set to 1/5.

To simplify the calculations, the number of earned rewards distributed is set to one for both validators. And to make things easier, the equations for the hybrid score and rewards are reproduced here:

Hybrid Score:

S=rHptHpm+(rSp+rBpn)(tSp+tBpn)(1m)\mathrm{S} = \frac{\mathrm{rHp}}{\mathrm{tHp}} * \mathrm{m} + \frac{\mathrm{(rSp+rBp*n)}}{\mathrm{(tSp+tBp*n)}} * \mathrm{(1 - m)}

Rewards:

rH=rHptHpmSR\begin{align*} \mathrm{rH} &= \frac{\mathrm{rHp}}{\mathrm{tHp}} * \frac{\mathrm{m}}{\mathrm{S}} * \mathrm{R} \end{align*}
rS=rSp(tSp+tBpn)(1m)SR\begin{align*} \mathrm{rS} &= \frac{\mathrm{rSp}}{\mathrm{(tSp+tBp*n)}} * \frac{\mathrm{(1 - m)}}{\mathrm{S}} * \mathrm{R} \end{align*}
rB=(rBpn)(tSp+tBpn)(1m)SR\begin{align*} \mathrm{rB} &= \frac{\mathrm{(rBp*n)}}{\mathrm{(tSp+tBp*n)}}*\frac{\mathrm{(1-m)}}{\mathrm{S*R}} \end{align*}

The rewards per unit:

rHu=rHrHprSu=rSrSprBu=rBrBp​​\begin{align*} \mathrm{rHu} = \frac{\mathrm{rH}}{\mathrm{rHp}} \\ \mathrm{rSu} = \frac{\mathrm{rS}}{\mathrm{rSp}} \\ \mathrm{rBu} = \frac{\mathrm{rB}}{\mathrm{rBp}} \end{align*}​​

Here are the hybrid scores for validator A (designated as “SA”) and validator B (designated as “SB”):

SA=(2/10)+[(1+1)/(20+101/5)]=17/165\mathrm{SA} = (2/10) * ⅓ + [(1 + 1*⅕ ) / (20 + 10*1/5)] * ⅔ = 17/165

SB=(1/10)+[(3+2)/(20+101/5)]=3/22\mathrm{SB} = (1/10) * ⅓ + [(3 + 2*⅕ ) / (20 + 10*1/5)] * ⅔ = 3/22

Here is the distribution of the respective hash power rewards and staking rewards for the two validators:

rHA=(2/101/3)/SA=11/17rSA=[(1/(20+101/5)]2/3)/SA=5/17rBA=[11/5/(20+10)]2/3/SA=1/17\mathrm{rH_A} = (2/10 * 1/3)/\mathrm{SA} = 11/17 \\ \mathrm{rS_A} = [(1/(20+10*1/5)] * 2/3)/\mathrm{SA} = 5/17 \\ \mathrm{rB_A} = [1*1/5/(20+10*⅕)] *2/3/\mathrm{SA} = 1/17

rHB=(1/101/3)/SB=11/45rSB=[(3/(20+101/5)]2/3/SB=30/45rBB=[(21/5)/(20+101/5)]2/3/SB=4/45\mathrm{rH_B} = (1/10 * 1/3)/\mathrm{SB} = 11/45 \\ \mathrm{rS_B} = [(3/(20+10*1/5)] * 2/3/\mathrm{SB} = 30/45 \\ \mathrm{rB_B} = [(2 * 1/5)/(20+10*1/5)]*2/3/\mathrm{SB} = 4/45

And here is the rewards per unit for the two validators:

rHuA=rHA/rHp=(11/17)/2=11/34rSuA=rSA/rSp=(5/17)/1=10/34rBuA=rBA/rBp=(1/17)/1=2/34\mathrm{rHu_A} = \mathrm{rH_A}/\mathrm{rHp} = (11/17)/2 = 11/34 \\ \mathrm{rSu_A} = \mathrm{rS_A}/\mathrm{rSp} = (5/17)/1 = 10/34 \\ \mathrm{rBu_A} = \mathrm{rB_A}/\mathrm{rBp} = (1/17)/1 = 2/34

rHuB=rHB/rHp=(11/45)/1=11/45rSuB=rSB/rSp=(30/45)/3=10/45rBuB=rBB/rBp=(4/45)/2=2/45\mathrm{rHu_B} = \mathrm{rH_B}/\mathrm{rHp} = (11/45)/1 = 11/45 \\ \mathrm{rSu_B} = \mathrm{rS_B}/\mathrm{rSp} = (30/45)/3 = 10/45 \\ \mathrm{rBu_B} = \mathrm{rB_B}/\mathrm{rBp} = (4/45)/2 = 2/45

Part 2

Here, we'll work through an identical example, except we'll make a few different assumptions about the relationships between different quantities.

If you carefully study both examples, you should have a firm intuitive grasp on how Core's reward mechanics function.

Let's assume there are two validators, both of which have been elected:

  • Validator A, which has:

    • 60 units of delegated hash power

    • 5M units of CORE stake

    • 400 units of non-custodial BTC stake.

  • Validator B, which has

    • 30 unit of hash power

    • 15M units of CORE stake

    • 200 units of non-custodial BTC stake

Let’s assume that there are 300 total units of Bitcoin hash power on the Core network. This would mean validator A has 20% of the hash power (60/300) and validator B has 10% of the hash power (30/300).

Let’s also assume there are 100M total units of CORE staked on the network. This would mean validator A has 5% of the CORE staked (5,000,000/100,000,000) and validator B has 15% of the CORE staked (15,000,000/100,000,000).

Let’s further assume there are 4,000 total units of non-custodial BTC staked on the network. This would mean validator A has 10% of the BTC staked (400/4,000) and validator B has 5% of the BTC staked (200/4,000).

For this example, m is set to 1/3 and n is set to 10000.

Here are the hybrid scores for validator A (designated as “SA”) and validator B (designated as “SB”):

SA=(60/300)+[(5M+40010,000)/(100M+400010,000)]=23/210\mathrm{SA} = (60/300) * ⅓ + [(5M + 400 *10,000 ) / (100M + 4000*10,000)] * ⅔ = 23/210
SB=(30/300)+[(15M+20010,000)/(100M+4,00010,000)]=24/210\mathrm{SB} = (30/300) * ⅓ + [(15M + 200 * 10,000 ) / (100M + 4,000 * 10,000)] * ⅔ = 24/210

Here is the distribution of the respective hash power rewards and staking rewards for the two validators:

rHA=(60/3001/3)/SA=14/23rSA=[(5M/(100M+4,00010,000)]2/3)/SA=5/23rBA=[40010,000/(100M+4,00010,000)]2/3/SA=4/23\mathrm{rH_A} = (60/300 * 1/3)/\mathrm{SA} = 14/23 \\ \mathrm{rS_A} = [(5M/(100M+4,000 * 10,000)] * 2/3)/\mathrm{SA} = 5/23 \\ \mathrm{rB_A} = [400 * 10,000/(100M+4,000 * 10,000)] *2/3/\mathrm{SA} = 4/23
rHB=(30/3001/3)/SB=7/24rSB=[(15M/(100M+4,00010,000)]2/3/SB=15/24rBB=[(20010,000)/(100M+4,00010,000)]2/3/SB=2/24\mathrm{rH_B} = (30/300 * 1/3)/\mathrm{SB} = 7/24 \\ \mathrm{rS_B} = [(15M/(100M+4,000 * 10,000)] * 2/3/\mathrm{SB} = 15/24 \\ \mathrm{rB_B} = [(200 * 10,000)/(100M + 4,000 * 10,000)]*2/3/\mathrm{SB} = 2/24

And here are the rewards per unit for the two validators:

rHuA=rHA/rHp=(14/23)/60rSuA=rSA/rSp=(5/23)/5MrBuA=rBA/rBp=(4/23)/400\mathrm{rHu_A} = \mathrm{rH_A}/\mathrm{rHp} = (14/23)/60 \\ \mathrm{rSu_A} = \mathrm{rS_A}/\mathrm{rSp} = (5/23)/5M \\ \mathrm{rBu_A} = \mathrm{rB_A}/\mathrm{rBp} = (4/23)/400

rHu_A = 1.0145% of (validator A reward - commission) per delegated hash.

rSu_A = 0.043478% of (validator A reward - commission) per 10,000 CORE

rBu_A = 0.043478% of (validator A reward - commission) per BTC

rHuB=rHB/rHp=(7/24)/30rSuB=rSB/rSp=(15/24)/15MrBuB=rBB/rBp=(2/24)/200\mathrm{rHu_B} = \mathrm{rH_B}/\mathrm{rHp} = (7/24)/30 \\ \mathrm{rSu_B} = \mathrm{rS_B}/\mathrm{rSp} = (15/24)/15M \\ \mathrm{rBu_B} = \mathrm{rB_B}/\mathrm{rBp} = (2/24)/200

rHu_B = 0.9722% of (validator B reward - commission) per delegated hash

rSu_B = 0.041667% of (validator B reward - commission) per 10,000 CORE

rBu_B = 0.041667% of (validator B reward - commission) per BTC

Last updated