Component: sp1-programs
Description
The SP1 programs are used to create proofs for the update, misbehavior, and membership functionality. The proofs are later used by the SP1ICS07Tendermint contract, which verifies them and performs certain actions. There are four different proof generators, and the verification of all of them is handled by the ibc_client_tendermint module.
The operator calls generate_proof
in sp1-ics07-tendermint-prover
for each of these four different proofs, which generates the proofs, and the returned output is either written to a file or printed to stdout.
Invariants
The proof generation must fail if the verification fails. For example, in case of updating the client, the function
update_client
calls theverify_header
function, which verifies the proposed header.Similarly, proof generation must fail if the verification of membership or misbehavior fails.
Test coverage
Cases covered
The end-to-end tests cover the proof generation for
misbehaviour
,membership
,update_client
, and theupdate_client and membership
proof types.
Cases not covered
N/A.
Attack surface
The verification is handled by the ibc_client_tendermint module, hence the attack surface is minimized. We verified if any of the crucial variables remain unverified and did not find any such unverified variables.