Proposal: Arbitrum Interactive Specs - opcodes, precompiles etc

Hi guys, Zhivko from LimeChain here.

This proposal was first discussed in the Research Forum.

Abstract

This governance proposal suggests the development of an Interactive Reference Specification website for rollups, with Arbitrum being the first one. This website would serve as a valuable resource for developers and provide clarity on the differences between Arbitrum and Ethereum L1 EVM, as well as between different rollups. The website would be extending upon the idea of evm.codes as a base but would incorporate information on rollups (differences from L1, gas costs, custom precompiles, native precompiles support, system contracts, properties such as costs, latency and finality of the native L1 ↔ L2 messaging protocol provided by the given rollup etc).

Motivation

This proposal comes from LimeChain - a blockchain development company building apps and infrastructure since 2017.

As blockchain devs, we sometimes find it challenging to assess the differences between developing on L1 versus a given rollup, or between different rollups. Additionally, it is unclear what custom precompiles exist on Arbitrum, which precompiles are supported, what L1 state is exposed on a rollup, what system-level contracts exist, what the gas costs, latency and interface are for L1 - L2 messaging and how EVM gas pricing has changed etc.

Although that information is usually present in the rollup’s documentation, it is often not easy to find and surface.

As many of you, we believe that the future of Ethereum is rollup-centric, however, developer documentation and resources around rollups are yet to be improved.

Rationale

With this proposal, we want to make it easier for 1) L3 developers using Arbitrum Orbit 2) dApp developers building on Arbitrum and 3) auditors to leverage the Arbitrum stack.

Specification

The website will start as a fork of evm.codes (NextJS + React). The team will extend the UI with the following components

General Overview

An overview of L1 and the supported rollups (starting out with Arbitrum). For each supported rollup, there would be a succinct description providing information about:

  • The type of the rollup, the latency of data availability (how much time it takes for the sequencer(s) to post L2 data on L1) and the finality
  • Does it have a modified EVM and if yes, a brief description of the modified components
  • Does it have modified RPC endpoints and if yes, a brief description of them
  • Does it support a native L1 ↔ L2

Opcodes

The view will focus on any changes to the EVM opcodes of the Rollup, compared to the original L1 EVM. Changes include opcode not being supported or its gas being changed.

Precompiles

  • The view will differentiate between “native” to Ethereum L1 precompiles and “system” precompiles introduced by the Rollup. Information on whether all expected precompiles (native) are supported and whether there are changes to the gas schedules (many of the zkEVMs either do not support precompiles or have their gas costs modified).
  • A list of all additional “system” precompiles and contracts will be documented. Many rollups (including Arbitrum) introduce peripheral system contracts such as the ArbOS Precompiles

Messaging

Rollups usually introduce native L1 ↔ L2 messaging. In this section, we will outline the properties of the messaging, such as latency for delivery and gas costs (for both L1 → L2 and L2 → L1 directions).

Steps to Implement

LimeChain will leverage its in-house team to build the website. The current specs require 2 full-time front-end developers, 1 UX/UI designer and a blockchain developer to research and outline the content for the website.

The website is yet to be named/branded. We’re currently leaning towards “rollup.codes”.

Timeline

The development of this website (incl. the content for Arbitrum) will take 4-6 weeks with the aforementioned team. Starting date would be set once the community sentiment and scope are clear.

Future Development

The website will be extended to provide information not only on Arbitrum but the rest of the rollups in the ecosystem.

The team will prioritise support for new rollups based on community interest and activity.

Compatibility Scanner/Checker

Users will be able to provide their smart contracts to a scanner that will provide information on the compatibility of the code with various supported rollups.

Overall Cost

The requested funding for this proposal is 15,000 ARB tokens. This funding will partially cover the development cost. However, what’s more important for us is the support from the Arbitrum DAO and the community.

Feedback on the scope and features is deeply appreciated!

2 Likes

This proposal from LimeChain offers a significant and valuable step forward in enhancing the clarity and transparency in the Arbitrum ecosystem. The development of an Interactive Reference Specification website is a novel and well-timed initiative given the growing importance of rollups in the broader Ethereum ecosystem, as well as the rise of L2 solutions such as Arbitrum.

Firstly, the proposed website would fill a critical information gap that exists presently. As outlined, developers often face difficulties in discerning the differences between developing on L1 versus a given rollup, or even between different rollups. This resource would provide a comprehensive, structured and easy-to-access guide for understanding these differences, thereby facilitating better and quicker decision-making for developers. This is essential in an area like blockchain, where developments are happening at a breakneck pace, and access to reliable information can significantly impact the efficiency and effectiveness of development work.

Moreover, the specific components of the website — such as the General Overview, Opcodes, Precompiles, and Messaging — are well-thought-out and clearly directed towards making the developer experience smoother and more streamlined. The Compatibility Scanner/Checker is an especially valuable tool, providing an automated way to determine code compatibility across various supported rollups, which will save developers significant time and effort.

The fact that LimeChain is committing to extending the website beyond Arbitrum to include other rollups in the ecosystem also demonstrates their commitment to serving the wider Ethereum ecosystem. This indicates that the resource will continue to provide value as new rollups are developed and implemented.

Importantly, the development timeline and cost appear reasonable given the complexity and potential value of this project. LimeChain’s request for 15,000 ARB tokens as partial funding seems justified, and the expressed value they place on support from the Arbitrum DAO and community indicates a collaborative and community-centric approach.

We here at Tally.xyz have also worked with the LimeChain team in the past and have been impressed with the quality of LimeChains work and the breadth of their knowledge. (Easy to see their client list)

In conclusion, this proposal stands to significantly benefit the Arbitrum ecosystem, aiding developers, auditors, and others who wish to leverage the Arbitrum stack. By increasing clarity, accessibility, and understanding of rollups and their relationship with L1, this initiative could help to stimulate more innovation and development on Arbitrum, contributing to the growth and health of the entire ecosystem.

3 Likes

Thank you @zhivkoto /LimeChain for this proposal!

  • Could you please help us understand the difference between the information you propose to provide vs, what is avaliable on L2 beat?

  • Are there any reference to your past work?

  • Are you open to receiving the grant retroactively?

4 Likes

hey @jengajojo appreciate you getting involved in the discussion. Great questions!

  1. L2Beat provides general information on rollups, including traction metricts, high-level architecture, security implications etc. Our focus is much more on the developer side and the content will be mostly focused on: opcodes and precompiles, incompatibilities - e.g. detail any features or functions that do not work on this rollup, which a developer may expect from the L1. I think it’s a closer comparison to evm.codes rather than L2 Beat. We’re actually in touch with the L2 Beat team as we first reached out to them as it’s their neck of the woods. From our understanding, they have no interest (or bandwidth) at this point to build this and have been rather supportive with providing feedback and relevant intros. In case they change their stance, we’re super open to collaboration. Massive thanks to @krst here.

  2. For sure, glad you asked. We’ve been building apps and infrastructure on Ethereum and other networks since 2017. I guess the easiest referrence is our github page - LimeChain · GitHub, though not all of our work is open-source. Some of our most relevant public goods work is Matchstick - a unit testing framework for Subgraphs (The Graph), Extractoor - EVM contracts that can prove storage slots of Ethereum Rollups using MPT Inclusion proofs and EIP-4400 enabling renting of ERC721s (sry can only post 2 links in a post right now).

  3. Yes. There are no guidelines or a formal Arbitrum grants program structured yet, so we thought that a proposal would be a good start. We’re pretty much building this out of our own need as a blockchain dev company.

1 Like

Hey all,

I just want to share that we launched http://rollup.codes/ yesterday and it has support for Arbitrum One!

Any feedback, comments and/or feature requests are greatly appreciated!

2 Likes