- Verifying Deposits:
- Ensure that the MsgInitiateTokenDepositevent is relayed correctly to theMsgFinalizeTokenDepositevent.
- Check if MsgInitiateTokenDepositwas relayed within the required time frame.
- Verifying Oracle Updates:
- Confirm that Oracle data is correctly relayed to MsgUpdateOracle.
- Ensure that Oracle updates are processed on time.
- Validating Outputs:
- Check that the OutputRootsubmitted withMsgProposeOutputis accurate.
- Ensure that the next MsgProposeOutputis submitted within the expected time frame.
Detailed Architecture
The Challenger architecture is designed to ensure that interactions between Initia (L1) and rollup (L2) are correctly validated, securing internal processes within the Initia ecosystem. Each part of the architecture is tailored to handle specific challenges while maintaining the security and reliability of the Initia-rollup interactions.Deposit Challenges
Deposits from L1 to L2 must follow a strict verification process to ensure that tokens are correctly transferred between chains. The Challenger plays a critical role in this by confirming thatMsgInitiateTokenDeposit is not only correctly triggered but also completed within a specific timeframe by matching it to MsgFinalizeTokenDeposit.
This prevents potential discrepancies or fraud, ensuring that deposits are secure.
When a MsgInitiateTokenDeposit event is detected on the L1 chain, it is recorded as a Deposit challenge.
The system checks if it matches the MsgFinalizeTokenDeposit event for the same sequence.
Output Challenges
Outputs, which represent state changes in the L2 chain, must be correctly submitted to maintain the synchronization between L1 and L2. The Challenger ensures that the OutputRoot of the submittedMsgProposeOutput matches the system’s expectations and that future proposals are made within the designated timeframe.
This process prevents any incorrect or malicious outputs from being finalized, ensuring the integrity of the system.
When a MsgProposeOutput event is detected on the L1 chain, it triggers an Output challenge.
The system replays up to the L2 block number and verifies whether the OutputRoot matches the one submitted.
Oracle Challenges
Oracles serve as external data providers for the blockchain, and any failure in updating their data can lead to inaccuracies within the system. The Challenger ensures that oracle updates happen in a timely manner and are properly relayed from L1 to L2 throughMsgUpdateOracle, safeguarding the accuracy of external data within the Initia ecosystem.
If the oracle_enable setting is turned on in bridge config, the 0th transaction’s bytes are saved as an Oracle challenge event.
This data is verified against the MsgUpdateOracle for the same L1 height.
Batch Challenges
Batch data is not verified by the challenger bot.