Skip to content

Commit 91d77fc

Browse files
committed
fill in vote inclusion math
1 parent 6f54380 commit 91d77fc

File tree

2 files changed

+37
-12
lines changed

2 files changed

+37
-12
lines changed

assets/0254-rewardstbl.png

69.9 KB
Loading

proposals/XXXX-template.md

+37-12
Original file line numberDiff line numberDiff line change
@@ -143,16 +143,22 @@ Vote base fees will be removed entirely.
143143
### Absolute Vote Credits
144144

145145
Instead of distributing rewards based on relative performance as we do today,
146-
each validator in the active validator set will have a maximum number of vote
147-
credits $M$ that they can earn in an epoch.
146+
each validator in the active validator set will have a maximum number of inflationary
147+
rewards that they are eligble for. To determine this we first define the maximum
148+
stake weighted vote credits $M$ that they can earn in an epoch where they produce
149+
$L$ leader slots. Here $s_i$ is the validator's stake, and $S$ is the total stake.
148150

149-
$$M = 16 \times 432000 = 6912000$$
151+
$$M = 12 s_i \times 432000 + 4 L S$$
150152

151-
Their rewards in each epoch will be based on the credits $c_{i}$ they earn
152-
multiplied by their portion of the stake $s_i$ multiplied by the total inflation
153-
rewards available in the epoch $I$.
153+
The first term represents the maximum voting credits $3/4$ of the TVC credits
154+
(16), and the second term is the maximum leader inclusion credits covered in the
155+
following section.
154156

155-
$$ R_i = I s_i \frac{c_i}{M} $$
157+
Their rewards in each epoch will be based on the fraction of the stake weighted
158+
credits $c_{i}$ they actually earn relative to this maximum $M$ multiplied by the
159+
total inflation rewards available in the epoch $I$.
160+
161+
$$ R_i = I \frac{c_i}{S M} $$
156162

157163
Any unearned sol rewards will be burned.
158164

@@ -168,13 +174,28 @@ include in a timely manner. Each vote inclusion credit is awarded to the leader
168174
and is worth 1/3 of the vote credits awarded to the validator that the vote belongs
169175
to.
170176

171-
As an example if a vote from a validator would earn 16 credits, 12 of those credits
172-
go to the voter and 4 go to the leader.
177+
For example assume that a latency 1 vote comes in from voter $v$ to be included
178+
in leader $l$'s block. $v$ will earn 12 credits based on their stake weight, and
179+
$l$ will earn 4 credits based on $v$'s stake weight:
180+
181+
$c_v := c_v + 12 s_v$
182+
183+
$c_l := c_l + 4 s_v$
184+
185+
Note that this accounting matches the $M$ derived above, if $v$ votes perfectly
186+
and includes everyones votes (including their own):
187+
188+
$$c_v = 12 s_v \times 432000 + 4 L \sum_{i\in V} s_i = M$$
189+
190+
In order to implement this change, the vote program will track credits $c_v$ as
191+
stake weighted totals.
173192

174193
### Vote transaction CU accounting
175194

176195
Vote transactions will no longer count towards the global CU limit in the block,
177-
they will have their own limit of one vote per validator per block.
196+
they will have their own limit of one vote per validator per block. With SIMD-0218
197+
IVC, there is no longer any benefit to including multiple old votes within a single
198+
block, instead only the latest vote will be used.
178199

179200
### Validator set size
180201

@@ -200,14 +221,18 @@ On the 3rd slot in each validator's sequence of 4 blocks, the timely vote credit
200221
grace period will only last 1 block. Rewards for landing this vote in the second
201222
slot will be reduced by 3/8 and follow the normal TVC accounting afterwards.
202223

224+
The reasoning behind this change to avoid scenarios where upcoming leaders bribe
225+
the voter to delay this vote by 1 block in order for the leader to earn more inclusion
226+
credits.
227+
203228
## New Terminology
204229

205230
1. $V$ is the set of all validators
206231
2. $v \in V$ is a validator
207232
3. $s_v \in [0,1]$ is the stake fraction of validator $v$
208-
4. $c_v \in [0,1]$ is the vote credits of validator $v$
233+
4. $c_v \in [0,1]$ is the stake weighted vote credits of validator $v$
209234
5. $S = \sum\limits_{v \in V} s_v$ is the total cluster stake
210-
6. $C = \sum\limits_{v \in V} c_v$ is the total cluster vote credits
235+
6. $C = \sum\limits_{v \in V} c_v$ is the total cluster stake weighted vote credits
211236
7. $I$ is the total inflation rewards issued in an epoch
212237
8. $T$ represents the total supply of SOL normalized to staked supply of sol
213238
$S =1$ so if half of the SOL is staked then $T= 2$

0 commit comments

Comments
 (0)