-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Signature verification of the block - integration of the circuit
The prover takes:
- N signatures
- N messages
- N public keys
and gives a proof that those N signatures are correct.
We cannot assume that all validators in the validator set will sign correctly (or that they will always sign every block we care about).
So we need a mechanism in which > 2/3 of the total voting power of validators sign.
In that case, we can feed the following code
https://github.com/ComposableFi/yui-ibc-solidity-private/blob/main/contracts/clients/utils/Tendermint.sol#L221C1-L270C6
with the list of public keys that are part of the batch that's been proven.
What does the relayer do?
- Assembles a list of commits that have valid signature and sum them all, ensuring that > 2/3 of the voting power has been gathered
- Stops when it has N valid signatures that satisfies (1)
- Calls the prover with the input from (2)
- Sends a proof to the IBC smart contract with the bitmap of the validators that belong to the batch that was submitted to the prover.
IBC Contract
In the verifyCommitLight function
- Ensures that the N public keys tally > 2/3 of total voting power.
- Call the verifier
- if (1) + (2) are correct, returns
true, else returnsfalse
Metadata
Metadata
Assignees
Labels
No labels