Background
Consensus power is currently granted at least ChainFinality
(=900) blocks after a sector is onboarded onchain via ProveCommit
.
This is due to PowerTableLookback
: at each epoch t
, leader election protocol selects SPs proportionally to their quality adjusted power at epoch t- ChainFinality
This means that on one side power activation is currently deferred by at least 900 epochs, but on the other hand sector power is retained after sector termination accordingly.
Effects on Network Power
Given collateral is given back at sector termination, in practice each sector has PowerTableLookback
epochs of power which are not covered by collateral.
This aspect is not ideal, as malicious parties could buy power for a limited window of time at cheap price.
Indeed, assuming t
= termination epoch, from epoch t
to epoch t + PowerTableLoobback
only sector storage costs need to be paid by the SP in order to effectively benefit by sector power (given sector is indeed terminated, WindowPost
is needed collateral is already returned).
Mitigations
There are two fix that we can put in place in order to avoid the possibility of cheap power rental:
- Give back sector collateral
PowerTableLookback
epochs after termination. Note that this would translate into additionalPowerTableLookback
of capital cost with respect to the status quo - Accounting power for not terminated sectors only. Note that this change would immediately translate into a loss of power for sectors of
PowerTableLookback
epochs, compared with the status quo.
None of the above solution is costless. Ideally, we could explore the possibility of allowing SP to opt-in, when onboarding a sector to any of the two alternatives, depending on which one fits best for them.
TODOs
Before moving forward we should
- Understand how complex it is to put in place (any of) the two fixes proposed above
- Understand if it is doable to offer opt-in possibility to any of the two fixes when onboarding a new sector
Related topics: Sample only active sectors for WinningPost
In the process of proposing a longer PowerTableLookback
(from current 900 epochs to 7 days)
we acknowledged that this change would lead to an additional storage overhead for SP who want to keep the power for PowerTableLookback
epochs after termination (again from current 900 epochs to 7 day).
One idea which has been discussed was the following:
- At epoch
e
grant power looking at the power table of epoche = PowerTableLookback
( same way as today) - For
WinningPoSt
sector sampling purposes, consider only sectors which are active at epoche
.
While this would be beneficial for SP in terms of storage costs overhead (power is maintained for a window of time which has same length as sector lifetime, without the need to keep storing the sector for PowerTableLookback
after termination), this improvement would make the uncollateralized sector power issue highlighted above even worse.