filecoin-project / go-f3

Golang implementation of Fast Finality for Filecoin (F3)
Apache License 2.0
11 stars 7 forks source link

Parent Grinding Fault & F3 #729

Open Stebalien opened 2 weeks ago

Stebalien commented 2 weeks ago

Filecoin's consensus rules require that if some miner M mines a block A at time T and a block B at time T+1, B must include A as a parent. However, if F3 finalized the tipset at time T without A, B must not include A as a parent.

The head lookback should make this a non-issue but it's still a bit of a concern and, IMO, a pretty pointless consensus fault. I'm guessing the idea is to reduce the amount one can bias chain randomness, but it's absolutely useless given that most SPs have many miner actors and can trivially grind this way anyways.

Kubuxu commented 2 weeks ago

This is lower priority as the situation when same SP mines two blocks in a row is quite rare in larger network. It might be something we observe in calibnet but should have minimal impact of mainnet. The impact here in these networks is reduction in blocks produced as the slashable block will be caught in a slashing filter.