...
We set up a simple dynamical model of the total amount of PC as follows. Let
Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | a,~f,~N |
---|
|
be as above, Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | V_t |
---|
|
be the amount of PC controlled by validators at time Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | t |
---|
|
, and Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | B_t |
---|
|
be the amount of PC in blocks available for acknowledgement at time Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | t |
---|
|
. Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | V_t |
---|
|
and Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | B_t |
---|
|
change over time according to the equations Mathblock |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
|
\begin{align}
V_{t+1} &= V_t - (1 - a)V_t + afN B_t \\
B_{t + 1} &= (1 - a)V_t + afN B_t
\end{align} |
Time is measured discretely in "rounds" and we assume that all validators act once in each round, each producing one block (acknowledge or propose). Since only the most recent block from each validator can be acknowledged, this means that exactly the blocks from the previous round are available for acknowledgement and no others. This is why the first term of Eq. (1) is a "persistence" term of the PC with the validators between rounds, but there is no corresponding term in Eq. (2); PC available for acknowledgement in blocks does not persist from round to round. The second term in Eq. (1) and first term in Eq. (2) correspond to proposals. Since a fraction
Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | a |
---|
|
of the validators are acknowledging each round, therefore a fraction Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | (1 - a) |
---|
|
are proposing. We assume that these validators spend all their political capital to do this, thus the total amount of PC available to the validators decreases by the same fraction. These proposals become blocks to be acknowledged, so correspondingly, the amount of PC available in blocks increases by the same amount. The last term in both equations is the acknowledgement term. Since Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | aN |
---|
|
validators each acknowledge blocks, earning a fraction Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | f |
---|
|
of what is available, the amount of PC the validators have increases by Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | afN B_t |
---|
|
. However, those acknowledgement blocks can be acknowledged by other validators in the next round, therefore, the amount of PC available in blocks to be acknowledged increases by the same amount.
Rewriting Eq. (1) and Eq. (2) as a single matrix equation, we get Mathblock |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
|
\left[ \begin{matrix} V_{t+1} \\ B_{t+1} \end{matrix} \right]
=
\left[ \begin{matrix} a & aNf \\ 1-a & aNf \end{matrix} \right]
\left[ \begin{matrix} V_{t} \\ B_{t} \end{matrix} \right] |
In order for this dynamical system to have a stable, non-trivial equilibrium, we need the largest (in absolute value) eigenvalue of the matrix to be equal to 1; larger than 1 and the system will blow up – exhibiting the exponential growth we saw in the simulation, less than 1 and eventually all the PC will decay away. One can show that if
Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | afN = 1/2 |
---|
|
then the largest eigenvalue is equal to 1 and the second eigenvalue is given by Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | \lambda_2 = a - 1/2 |
---|
|
. Therefore, it is also desirable (though not necessary) for Mathinline |
---|
host | 7bf7a548-f937-390d-b7ee-64c4940fe12e |
---|
body | a > 1/2 |
---|
|
since then both eigenvalues will be positive and thus no oscillations on the way to equilibrium.We measure branching as the average length of branches which are not chosen by the fork-choice rule. This calculated by finding all blocks which are not the parent of another block (i.e. the heads of the DAG), excluding the one chosen by fork-choice, and counting the number of blocks between head head and its greatest common parent with the fork-choice head. Plots of this quantity are shown below for both PoW and GHOST fork-choice rules. We see that GHOST grows more quickly and therefore ends larger than PoW.
- AverageOffDagBranchLength_ghost.csv;
View file |
---|
name | offDagLength_ghost.pdf |
---|
height | 250 |
---|
|
- AverageOffDagBranchLength_pow.csv;
View file |
---|
name | offDagLength_pow.pdf |
---|
height | 250 |
---|
|
- Both shown on the same plot for clarity:
View file |
---|
name | offDagLength_both.pdf |
---|
height | 250 |
---|
|