Proposal: Activate support for account abstraction endpoint on One and Nova
Jason Windawi, Alchemy
This is a Constitutional proposal.
As part of the broader development of account abstraction standards and tooling, Ethereum researchers have proposed a new RPC endpoint
eth_sendRawTransactionConditional that adapts L2 sequencers to the specific needs of ERC-4337 bundlers. Offchain Labs has contributed to this new method by developing, testing and incorporating adjustments necessary to support the endpoint for Arbitrum’s sequencer into Nitro with v.2.0.14, which is now live on the Arbitrum testnet. This AIP proposes that the Arbitrum DAO activate support for this endpoint on the One and Nova mainnets.
EIP-4337 has created significant momentum for account abstraction across the EVM ecosystem. Among other innovations, the proposal split validation and execution into distinct steps in the process of bundling transactions for submission to an alternative mempool. This split introduced a potential issue for bundlers working on their L2 transactions.The delay between simulated transaction validation by the bundlers, and the final inclusion by sequencers, introduces a risk for reverting bundle submissions. This is due to the lag between the initial submission of a transaction and its ultimate inclusion, during which a smart contract account’s storage can change and invalidate the transaction. Reverted bundle transactions result in lost value for the bundler, discouraging operation of these services until the issue is addressed.
Ethereum researchers developed the
eth_sendRawTransactionConditional endpoint to address this issue. This endpoint adds new options to the standard
eth_sendRawTransaction endpoint that allow users to specify valid ranges for block height and timestamps. This will allow sequencers to reject transactions that don’t meet conditions for inclusion during the earlier validation stage, addressing the risk that in-account storage might change between validation and execution.
Offchain Labs developed, tested and implemented a version of the
eth_sendRawTransactionConditional endpoint in the v.2.0.14 update to Nitro, and have since implemented the endpoint on the Arbitrum testnet. This proposal requests that the DAO approve activating this endpoint for Arbitrum mainnets.
This proposal directly supports the DAO’s constitutional value of maintaining alignment with the broader Ethereum ecosystem. The
eth_sendRawTransactionConditional endpoint was developed by the Ethereum Foundation to address the proposal’s implications for layer 2 sequencers. Variations of this endpoint are being actively explored and developed by prominent EVM L2s and others in the ecosystem, indicating that the need for this endpoint in the context of sequencer/bundler interactions is a known problem with the need for active work toward a solution.
Our proposal is also aligned with the DAO’s objective of ensuring decisions are sustainable over the medium and long term. As Arbitrum continues to push toward decentralization beyond Vitalik’s second milestone, the need for a flexible and secure endpoint for 4337-compliant transactions on Arbitrum will only become more critical.
Finally, the proposal is aligned with the Arbitrum community’s values of social and technical inclusion. By enabling one of the core features of account abstraction, Arbitrum’s ecosystem would have access to the enormous potential for improvements in UX and other benefits of account abstraction.
PR # 1474 on Github provides a history of the development and testing done by Offchain Labs, as well as the multiple stages of review by the team before it was merged on April 11, 2023. Making the endpoint viable for Arbitrum entailed two key adjustments to the checks performed before transactions reach the sequencer. The most fundamental was a config value change to the load balancer. The protocol’s load balancer has historically limited the computational costs of processing transactions by setting the number of acceptable slots in a transaction to zero. The new endpoint’s design allows for up to 1,000 slots. To accommodate this increase for conditional transactions, PR 1474 removed this 0 restriction for Nitro and for the testnet.
Allowing conditional transactions also introduces a risk of DOS attacks spamming the protocol with transactions regardless of whether they meet the state conditions at the time they were submitted. To address this, Labs updated the Arbitrum sequencer’s pre-check to incorporate a backward-looking validity check of a given account’s state, meaning that transactions can only execute if they met their own conditions as of one second prior to submitting the transaction.
Steps to Implement
The work already done by Offchain Labs on this endpoint means that the steps to implement this AIP reduce to changing the load balancer config value as described above.
Ideally ASAP, or as soon as is practical for Offchain Labs.
The upfront costs for implementation should effectively be zero given the work done already by Offchain Labs.