The beaconkit is a framework for consensus clients that conforms to the standard ethereum beacon consensus spec.
It has a beacon state that is merklelized using ssz.
To verify its consensus, we need to verify the block signature and verify the execution payload proof.
A simplified beacon kit consensus update would contain:
struct BeaconkitUpdate {
tendermint_update: TendermintConsensusUpdate,
// SignedBeaconBlock, this is the first transaction in the cometBFT block
ssz_encoded_beacon_block: Vec<u8> ,
// Merkle proof of the first transaction in the block
proof: Vec<H256>
}
The algorithm is simple:
- Verify the Tendermint update
- Verify the transaction proof using the DataHash in the verified tendermint signed header, decode the beacon block and extract the execution payload
The prover will basically be the regular Tendermint prover with additional functionality to fetch the CometBFT block and generate a transaction proof for the first transaction
The beaconkit is a framework for consensus clients that conforms to the standard ethereum beacon consensus spec.
It has a beacon state that is merklelized using ssz.
To verify its consensus, we need to verify the block signature and verify the execution payload proof.
A simplified beacon kit consensus update would contain:
The algorithm is simple:
The prover will basically be the regular Tendermint prover with additional functionality to fetch the CometBFT block and generate a transaction proof for the first transaction