csanuragjain
medium
If challenger deletes a l2Output root which is say 1 day old, then network will start lagging in
-
Proposer needs to submit an output everyone 120 seconds (or 60 L2 blocks)
-
Lets say Proposer submitted output root R1,R2,....RN at l2Outputs indexes x,y,......z on Day 1
function proposeL2Output(
bytes32 _outputRoot,
uint256 _l2BlockNumber,
bytes32 _l1BlockHash,
uint256 _l1BlockNumber
) external payable {
...
emit OutputProposed(_outputRoot, nextOutputIndex(), _l2BlockNumber, block.timestamp);
l2Outputs.push(
Types.OutputProposal({
outputRoot: _outputRoot,
timestamp: uint128(block.timestamp),
l2BlockNumber: uint128(_l2BlockNumber)
})
);
}
-
On Day 2, Challenger sees an issue with the output generated by Proposer
-
Challenger stops proposer so that proposer cannot keep on submitting new proposals
-
Challenger uses deleteL2Outputs and delete the roots from index x
-
Challenger analysis the issue which caused this, lets say it took 1 day
-
Post 1 day, proposer is resumed
-
Proposer will restart with index x which means it will already be delayed by 2 days in output creation. Since output creation is delayed the withdrawal processing also gets delayed causing a network lag
-
If these issues are frequent then network lag will become large enough impacting the withdrawal timeline
Network lag will cause withdrawal delay
Manual Review
If such a case arrives, proposer should be configurable to catch up the delay by submitting output more frequently