I think this is fine for now, but why is the genesis block defined as a proven block? It can't have a ZK proof and technically should always be just a "signed block".
Let's create an issue to fix this.
Originally posted by @bobbinth in #1725 (comment)
// Current state
pub struct GenesisBlock(ProvenBlock);