filecoin-project/consensus

Filecoin Weighting function

Closed this issue · 2 comments

The Filecoin weighting function calculator is here: https://observablehq.com/d/3812cd65c054082d.

BLUF is (with expectation that constants will change):

W[r+1] = P^(X)(B(numBlocks[r+1]) + log(totalPower) + W[r])

For a network of 50 eB and a threat model using a 35% attacker , I would use the following parameters:
X is the number of null blocks the chain has seen in a row if that number is greater or equal to 3 (otherwise X = 0) — Means the attacker has a 9% chance of getting penalized if they do block withholding vs 1% for an honest chain.
P = .87 —  Within 7 rounds of null blocks, a chain will only have added 1/2 the weight of a normal counterpart.
B = 1.7 — Storage in the network becomes the dominant part of weight (rather than number of blocks mined in a round) after 300 blocks, or about half of leader election finality.

  • Are we all comfortable with the analysis here and the dynamics at play here, especially as it relates to punishing honest chains?
  • Should the Fil weighting function explicitly be dependent on network size (impact on how fast weight moves from blocks emitted to size of the network, 2x change)? I would say yes.
  • Are we all agreed on the relative threat model re adversary?

estimate from @sternhenri is that this is done by aug 30