What is a certificate?
Cross-subnet communication in Topos lies in the submission of certificates—data structures that certify cross-subnet transactions. Any subnet participants can send an outgoing transaction towards another subnet.
It is the role of every subnet to:
- identify key participants;
- batch such transactions in a certificate;
- include a cryptographic proof of the validity of the state transition since the previously committed state;
- sign the certificate.
The previously committed state is the state committed in the previous certificate, or the initial state committed during registration.
Once broadcast and delivered by the TCE, the certificate can be verified and the cross-subnet transaction included in the receiving subnet.
A certificate is defined as:
subnet_idis the unique identifier of the subnet;
cert_previs a reference to the subnet's previous certificate;
sigis the Schnorr-based signature that authenticates the certificate;
XS_listrepresents the list of included cross-subnet transactions;
proofsis the list of STARK proofs;
proofs_pub_inputsis the set of STARK public inputs against which the proofs are verified;
Additionally, a registration certificate includes:
sig_pub_keyis the subnet's signature public key;
init_state_commis the commitment of the subnet's initial state.