linera-io / linera-protocol

Main repository for the Linera protocol
Apache License 2.0
119 stars 100 forks source link

Protection against long-range attacks #285

Open ma2bd opened 1 year ago

afck commented 7 months ago

We will introduce (as part of the genesis config) a minimum delay d between the introduction of a new committee and the withdrawal of the stake (e.g. an epoch could last one day, and that duration could be two weeks). So all certificates signed by a committee that is no older than d are still backed by validator stake.

And if a certificate has any descendants or message recipients that can be verified that way, i.e. they have been re-certified, they also can trusted indirectly.

So we should allow uploading a vector of certificates to a validator in a request. The validator checks that:

and then executes them. This may require several requests for very long chains; if the client starts supplying the highest certificates first, the validator knows that they are legitimate.

Finally, we need to rethink the acceptance criterion for cross-chain messages: