celestiaorg / celestia-node

Celestia Data Availability Nodes
Apache License 2.0
935 stars 932 forks source link

header: Consider requiring 2/3+1 valset overlap for non-adjacent verification #3965

Open renaynay opened 5 days ago

renaynay commented 5 days ago

Currently we use the default setting from tendermint light client library (which is 1/3+1 valset overlap requirement). After speaking a bit about it with @cmwaters, there's no real "downside" to requiring 2/3rds overlap to verify a non-adjacent sync target. The only downside I could see is "more frequent" failure for non-adjacent verification --> bifurcated sync target verification --> and if that doesn't work, subjective re-initialisation. To know exactly how much more frequent, we need to see how much churn there is in the validator set within the weak subjectivity window.

cmwaters commented 5 days ago

bifurcation should always work, if there is more than 1/3 change in a single block, it will eventually bifurcate to that adjacent block and then it should fallback to using adjacent verification

renaynay commented 5 days ago

*bifurcation should always work if the header is a valid part of the chain