Closed SebastianElvis closed 2 months ago
Thanks guys for the comments! I have addressed all of them, most notably verifying proof index and removing public randomness storage. Please take a look again
One final note, I noticed that we store in state only half of the signature:
FinalitySig *github_com_babylonchain_babylon_types.SchnorrEOTSSig
and I somehow though we store whole thine ie
(R, s)
, thats why i was in favour of not storingR
separately. I have a feeling, that it would be beneficial to store whole thing as otherwise other consumers do not have possibility of verifying those halfs. Not for this pr, but something to keep in mind.
Good point. Actually this is a reason why we should keep the pub rand storage. I added the pub rand storage back for this scenario in case a consumer wants to prove BTC staking finality to others.
Closes #647
This PR implements the Merkle tree based public randomness commitment. This includes
MsgCommitPubRandList
to commit a Merkle root rather than a list of public randomnessMsgAddFinalitySig
to further verify Merkle proof w.r.t. the public randomnessFuture works in subsequent PRs
MsgAddFinalitySig
. SinceMsgAddFinalitySig
already contains the public randomness, we don't need to save them in KV store for slashing. We could consider removing it. UPDATE: done in this PR