In the pallet_babe config one can see the type
KeyOwnerProofSystem as being set to Historical which is a reference to
What functions does a
KeyProofSystem serve? What is it "proving" and for whom?
Substrate and Polkadot Stack Exchange is a question and answer site for developers building blockchains with the Substrate SDK. It only takes a minute to sign up.Sign up to join this community
Let's say you have found an equivocation for Babe. Aka you are saying that Alice build two blocks on the same height in session 100. You will now need to prove to the runtime that there is an equivocation. You send the proof to the runtime. While the runtime checks the proof, it needs to ensure that Alice is really part of the validator set in session 100. This check is done using the
KeyProofSystem. In case of
pallet_session::historical, it records all the validator sets for the last X sessions (can be configured) to prove these kind of requests.