Sharding is an “old-fashioned” thing that has made a stunning transformation. Local Rollup is now available.

avatar
叮当
2 days ago
This article is approximately 1450 words,and reading the entire article takes about 2 minutes
New wine in old bottles, Rollup localization is the horizontal expansion of Ethereum.

Original author | Taiko Labs

Compiled by | Odaily Planet Daily ( @OdailyChina )

Translator | Dingdang ( @XiaMiPP )

Sharding is an “old-fashioned” thing that has made a stunning transformation. Local Rollup is now available.

Editors note: Do you remember the excitement of Sharding? At that time, it was the traffic password in the blockchain industry. As a result, Ethereum calmed down and gave up this hot potato. Today, local Rollup has made a comeback. By executing precompiled contracts (EXECUTE Precompile) and optimizing the Ethereum block processing structure, it not only makes Rollup safer and more flexible, but also expands the horizontal capacity of Ethereum L1, paving the way for future real-time proofs.

The following is the original content published by Taiko Lab, translated by Odaily Planet Daily. Due to the high technical content of this article, Odaily has made appropriate deletions to ensure the readability of the article and present it as clearly and understandably as possible.

introduction

Sharding was a hot topic between 2017 and 2020. At the time, different teams such as Harmony, Zilliqa, and Elrond implemented sharding technology in their blockchains. This technology essentially divides the network into multiple smaller, parallel-running chains (called shards) that can process transactions simultaneously as a straightforward way to scale distributed systems.

Sharding was also a topic that was seriously discussed by the community in the Ethereum 2.0 era. However, Ethereum ultimately decided not to adopt the sharding solution, mainly based on the following four challenges:

1. Mindset Differentiations

In this sharding model, the protocol itself enforces the exact number of shards from top to bottom. These shards are single chains that run according to a predefined template, lack programmability, and are essentially just multiple identical copies of the L1 (first layer blockchain).

2. Optimistic Security

At that time, in order to ensure the honesty of the shards, optimistic proofs were needed, and zero-knowledge (ZK) technology was not yet mature. This meant that the fraud proof logic had to be systematically managed on the chain.

3. Complexity

Implementing sharding at the L1 layer significantly increases the complexity of the protocol, especially in managing the fast preconfirmation and slower final confirmation system, and coordinating shards with different security levels.

4. Overload Consensus

Pursuing higher scalability at the L1 layer may increase centralization risk. If sharding is implemented at the base layer, this risk may affect the entire protocol, rather than being limited to a single L2 (second layer scaling solution) as it is now.

Native Rollups can essentially be seen as a return to sharding, but this time it’s different. We’ve learned our lessons and have better technology and experience.

Sharding is an “old-fashioned” thing that has made a stunning transformation. Local Rollup is now available.

What is Local Rollup?

Remember that Rollup consists of data, sequencing, and execution modules. Local Rollup directly uses Ethereums own execution environment as its execution module. We can call it L1s programmable execution shards .

It can be a bit complicated to understand how to use the L1 execution environment as a Rollup. In order to consume the L1 execution environment in a Rollup, we need to be able to execute another EVM inside an EVM. Therefore, L1 needs to be able to sense the state transition of the local Rollup in each block. To achieve this, we need a <precompile contract> to provide support.

EXECUTE precompiled contract

EXECUTE precompiled contracts provide a mechanism that enables one EVM context to verify the execution results of another EVM context while maintaining the same execution rules and state transition logic.

The precompiled contract accepts three input parameters:

  • pre_state: 32-byte state root before execution

  • post_state: 32-byte state root after execution

  • witness_trace: execution trace, including transaction and state access proof

The core of the precompiled contract is the assertion : it verifies whether the trace executed from pre_state can get post_state. If the state transition function is valid, the precompiled contract will return true.

The execution trace needs to be available to all validators (in the form of blobs or calldata) so that the validators can re-execute the computation and verify the correctness of the state transition. It is worth noting that the precompiled contract does not take proofs as input. This means that the protocol itself does not enforce any specific proof system, but rather propagates different types of proofs through the Gossip channel of the p2p network.

Gas Billing Model

Ethereums computing resources are limited, so the Gas mechanism is used to manage these resources. The EXECUTE precompiled contract implements a Gas billing model to manage computing resources:

  • Base Cost : The precompiled contract will charge a fixed Gas fee EXECUTE_GAS_COST , plus the Gas used by the execution trajectory multiplied by the current Gas price.

  • Cumulative Gas Limit : Similar to the EIP-1559 mechanism, it manages and prices the total Gas consumption of all EXECUTE calls in an L1 block:

  • EXECUTE_CUMULATIVE_GAS_LIMIT: The maximum Gas limit for all EXECUTE calls in a block.

  • EXECUTE_CUMULATIVE_GAS_TARGET: Target Gas usage for efficient pricing.

This model is similar to the data availability (DA) pricing mechanism in blobs.

Sharding is an “old-fashioned” thing that has made a stunning transformation. Local Rollup is now available.

It is important to remember that local Rollup and SNARKifying the L1 are often confused. SNARKing L1 is a vertical scaling method that improves L1 performance by eliminating Gas limitations through SNARKing execution (such as zkEVM) and consensus (such as Beam). Local Rollup is horizontal scaling L1, which creates any number of EVM copies in a programmable way to achieve higher scalability.

Why is local Rollup more advantageous?

1. Security

The current Rollup design requires Security Councils to update the chain to deal with potential vulnerabilities. Local Rollup relies on Ethereums <Social Consensus> for governance. Operators do not need to worry about vulnerabilities because the Ethereum community will be responsible for maintenance and repairs.

2. Simplify L1 Synchronous Composability

L1-based Rollup is close to achieving synchronous composability, but requires that L1 and L2 blocks be built simultaneously by the same builder. A local Rollup can directly verify the status of another local Rollup through the EXECUTE precompiled contract without additional trust assumptions.

3. Forward Compatibility

As L1 EVM evolves, the local Rollup will automatically inherit all improvements without the need for separate adaptation, thus achieving long-term compatibility with Ethereums development path.

Initial implementation: Re-execution

In the context of local Rollup, re-execution is considered as the initial implementation. Re-execution means that the validator directly executes the transaction trace to verify whether the state transition of the local Rollup is valid, instead of relying on SNARK proof. If EXECUTE_CUMULATIVE_GAS_LIMIT is kept within a small range, this re-execution is still manageable for the validator.

Sharding is an “old-fashioned” thing that has made a stunning transformation. Local Rollup is now available.

Optimizing execution: Real-Time Proving

In re-execution mode, validators must process all transactions themselves, and their throughput is limited by the EXECUTE_CUMULATIVE_GAS_LIMIT parameter. Real-time Proofs can significantly increase this limit, because validators only need to verify proofs without re-executing all transactions.

As the industry rapidly moves towards real-time proofs, we need to take steps to expand the proof window of local Rollup . In order to gain more proof time, the current Ethereum block processing structure needs to be adjusted.

How to extend the certification window?

Current Ethereum block processing flow

Under the current structure, all of the following steps must be completed within 12 seconds (one stage every 4 seconds) before entering the next block:

  • Block N Proposed Transaction

  • Before a block can be verified/confirmed, it must be completed:

  1. Execute all trades

  2. Computing state changes

  3. Compute state root (stateRoot)

  4. Calculate transaction receipts and logs

Only after all the above steps are completed can the block be verified and confirmed.

Sharding is an “old-fashioned” thing that has made a stunning transformation. Local Rollup is now available.

According to the current process, if synchronous composability with L1 is to be achieved, the proof must be completed within 4 seconds. However, ZK technology is not yet mature and cannot generate proofs for Ethereum blocks within 4 seconds, so we need to introduce greater flexibility in the proof process.

In order to buy more proof time for the local Rollup, we need to adjust Ethereum’s current block processing structure. For example:

  • Delaying state_root calculation: Remove state_root calculation from the critical path and make it calculated during validator idle time.

  • Delayed Execution: Separates block verification from transaction execution, optimizing consensus efficiency while providing more time for proof generation.

FAQ

What type of proof will Taiko use?

There will not be a single type of proof. We want diversity in both provers and clients. Verifiers can subjectively decide which proof to use based on their own choice.

See EthProofs for a variety of different proof types.

Who generates the proof?

Anyone can generate a proof. Even if there is only one prover, the chain can still function normally. There is still an open question: how to incentivize provers at the protocol level.

Will there be consensus among the proofs?

No. Proofs are not consensus-generated on-chain, but propagated off-chain. The network only needs to reach consensus that a valid proof exists somewhere.

This article is translated from https://taiko.mirror.xyz/Mr5Fl0epl7ooCr5199yVrmGXWUV-IdYBHHtAwLXrp58Original linkIf reprinted, please indicate the source.

ODAILY reminds readers to establish correct monetary and investment concepts, rationally view blockchain, and effectively improve risk awareness; We can actively report and report any illegal or criminal clues discovered to relevant departments.

Recommended Reading
Editor’s Picks