@hermanjunge wrote:

Looking to gain insight on the matter of the

inactivity penalty quotient.While the Serenity Design Rationale document states that

With the current parametrization, if blocks stop being finalized, validators lose 1% of their deposits after 2.6 days, 10% after 8.4 days, and 50% after 21 days. This means for example that if 50% of validators drop offline, blocks will start finalizing again after 21 days.

If we examine the current parametrization we have

`penalties[index] += Gwei(effective_balance * finality_delay // INACTIVITY_PENALTY_QUOTIENT)`

with

`INACTIVITY_PENALTY_QUOTIENT`

=`2**25`

(`33,554,432`

).Now, if we build and run a quick python script

`balance = 100.0 for i in range(4,4726): balance -= (i * balance) / 2**25 print(str(i) + "t" + str(balance))`

our results are, for an initial balance of

`100`

`4 99.99998807907104 5 99.99997317791163 6 99.99995529652298 [snip] 4723 71.71416019772546 4724 71.70406383570766 4725 71.69396675817036`

adjusting the exponent of

`2`

in the above script, with`2**23.94128`

we get`[snip] 567 99.00533232662947 568 99.00184121683876 569 98.99834408404766 [snip] 1840 90.01886280962862 1841 90.00857450307387 1842 89.99828178458043 [snip] 4723 50.026236935763414 4724 50.01156578060706 4725 49.996895823295965`

Which are

closerto the statements in the rationale, namely, losing 1% at 2.6 days (568 epochs), 10% after 8.2 days (1841 epochs), and 50% after 21 days (4724 epochs).So the

short questionis why2**25was chosen as the Inactivity Penalty Quotient instead of2**24. And thelong questionis about the methodology used to compute the coefficient .

For the latter, we tried an analytical approach and end up with the following equation to compute the exponent x:

Suppose we are looking for a value x such that if we apply B_i = B_{i-1}(1-frac{i+4}{2^{x}}) we obtain that B_{4725} approx 0.5B_0. In other words we want the balance B to be halved after 21 days, (4,725 epochs)

Bprod_{n=4}^{4725} (1-frac{i}{2^{x}}) = 0.5B

Simplifying the product,

prod_{n=4}^{4725} (1-frac{i}{2^{x}}) = 1 – [frac{4725 * 4726}{2}-6]frac{1}{2^x}+…approx1 – [frac{4725 * 4726}{2}-6]frac{1}{2^x}=1-frac{11165169}{2^x}

Equaling to 0.5 and solving for x we have x=24.412. We can attribute the difference between this result and the ran experiment (23.94128) to the dismissed terms of the product.

Posts: 2

Participants: 1