Agenda
- FOCIL on native rollups
- Development updates
Meeting Time: Tuesday, October 07, 2025 at 14:00 UTC (60 minutes)
Meeting Time: Tuesday, October 07, 2025 at 14:00 UTC (60 minutes)
YouTube recording available: https://youtu.be/7Jy3QttPHoc
The meeting focused on discussing the implementation of forced transactions in roll-ups and the challenges faced by native roll-ups in using the Engine API. Donnoh and Potuz debated the limitations and assumptions involved in reusing existing checks for forced transactions, emphasizing the need for a centralized sequencer and the potential restrictions on design space. Development updates included unit tests for inclusion lists, fixes for fork-choice and beacon block timeout errors, and progress on metrics for Reth and Lodestar clients, while Katya raised questions about counting invalid transactions and proposed combining metrics for CL and EL parts in a dashboard for easier comparison.
Luca from L2Bit presented on native rollups, explaining their concept and the challenges of implementing forced transactions. He discussed how native rollups can leverage the execute precompile to minimize risks and maintain feature parity with L1. Luca highlighted the difficulties of implementing forced transactions in rollups with centralized sequencers, suggesting the use of inclusion lists to address this issue. He also explored how Fossil’s implementation could be adapted to support forced transactions in native rollups. The discussion touched on potential challenges with transaction resubmission and validation in the context of inclusion lists.
Donnoh and Jihoon discussed the challenges of implementing forced transactions in L2s, particularly for native roll-ups. They explored the potential benefits of having FOCIL in L1, which could simplify the work for L2s and improve censorship resistance. Potuz clarified that FOCIL on L2 would involve reusing the execution layer’s transaction check function, which is not a mechanism design or part of the consensus. The discussion concluded with an agreement that while having FOCIL in L1 could benefit L2s, it should not be the primary reason for its inclusion in the L1 protocol.
The meeting focused on discussing the implementation of forced transactions in roll-ups and the challenges faced by native roll-ups in using the Engine API. Donnoh and Potuz debated the limitations and assumptions involved in reusing existing checks for forced transactions, emphasizing the need for a centralized sequencer and the potential restrictions on design space. Jihoon highlighted the importance of delays for reverse transactions and suggested using an empty inclusion list for external mechanisms. Development updates included unit tests for inclusion lists, fixes for fork-choice and beacon block timeout errors, and progress on metrics for Reth and Lodestar clients. Katya raised questions about counting invalid transactions and proposed combining metrics for CL and EL parts in a dashboard for easier comparison.
8gBE?gwX)8gBE?gwX)YouTube Stream Links:
FOCIL opens the door for rollups to easily implement forced transactions.
FOCIL and Native Rollups
In a world where L1 full nodes can perform the state transition function statelessly, this capability can be used to verify rollup states. With the EXECUTE precompile exposing this functionality, a native rollup could leverage Ethereum’s execution client code as-is for its own state transitions, without the complexity coming from custom proof systems and governance.
Rollups implement forced transactions so users can withdraw even when a centralized sequencer crashes or censors them. Forced transactions are hard to implement though; they are usually implemented either by defining new transaction types or by operating as a based rollup for a certain time window, which may degrade UX.
Once we have FOCIL in L1, native rollups can use it to implement forced transactions. FOCIL introduces inclusion_list_transactions parameter to state_transition in the execution spec. Native rollups can pass forced transactions to this parameter during its state transitions. In other words, rollup users can submit their forced transactions to a rollup smart contract in L1 and those queued forced transactions are passed as IL transactions during state transitions of native rollups.
A non-native rollup can also adopt this approach if they want, which eases the burden of implementing forced transactions.
Q: FOCIL allows omitting IL transactions, if it’s invalid or there is not enough gas left. What happens when a forced transaction via FOCIL mechanism is validly omitted?
A: The user would need to resubmit a forced transaction. It’s an open problem but we’re quite optimistic that a good solution can be found.
InclusionListStore.