- Verifying Deposits:
- Ensure that the
MsgInitiateTokenDeposit
event is relayed correctly to theMsgFinalizeTokenDeposit
event. - Check if
MsgInitiateTokenDeposit
was 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
OutputRoot
submitted withMsgProposeOutput
is accurate. - Ensure that the next
MsgProposeOutput
is 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.