Add the genesis header to the proof
ineiti opened this issue · 0 comments
ineiti commented
To verify a proof of byzcoin, the client not only needs the genesis-ID, but also the genesis-header. If he doesn't have this information, he cannot verify whether the first forward-link is valid or not! Thus an attacker could create a false roster for the genesis block and send this along with the proof and proof any state he wants.
The current code takes care of this by downloading the genesis-header manually. But this makes it so that the verifier needs an internet connection. I propose to:
- update the documentation at byzcoin/DataStructures.md
- add an optional
GenesisHeader
field to theProof
structure - create a
Proof.VerifyGenesis
that takes into account the verification of the genesis-block and returns an error if the genesis-block is not present - both for go, and javascript