Docs
Concepts
What is Taiko?

What is Taiko?

Taiko is a secure, decentralized, and permissionless rollup (opens in a new tab) on Ethereum. Taiko achieves this by:

  1. Writing all block data required to reconstruct the post-block state to Ethereum. Recording block data to Ethereum as an L1 makes the data decentralized and public. This data is needed for everyone to know the latest chain state to add new blocks to Taiko. Taiko's proof generation requires an even stricter requirement: all executable data must be saved publicly in sequence. Consequently, provers can generate proofs for a block using only publicly known data.
  2. Creating and proposing blocks should be a fast and efficient process. Anyone should be able to add blocks to the chain on a level playing field, having access to the same chain data at all times. Proposers, of course, should be able to compete on e.g., transaction fees and Maximal Extractable Value (MEV) (opens in a new tab).

We achieve this by splitting the block submission process into two parts:

Block proposal

When a block gets proposed, the block data is published on Ethereum, and the block is appended to the proposed blocks list stored in the TaikoL1 contract. Once registered, the protocol ensures that all block properties are immutable. This makes the block execution deterministic: the post-block state can now be calculated by anyone. As such, the block is immediately verified. This also ensures that no one knows more about the latest state than anyone else, which would create an unfair advantage.

Block verification

Because the block should already be verified once proposed, it should not be possible for the prover to have any impact on how the block is executed and what the post-block state is. All relevant inputs for the proof generation are verified on L1 directly or indirectly to achieve deterministic block transitions. As all proposed blocks are deterministic, they can be proven in parallel, because all intermediate states between blocks are known and unique. Once a proof is submitted for the block and its parent block, we call the block on-chain verified.

The L2 block space

Although block space is much cheaper than on L1, it is still necessary to adjust its price in a way to avoid L2 space being abused. EIP-1559 on Taiko dynamically adjusts the block space price.

Rate limiting using EIP-1559

Although rollups can have significantly higher network capacity than L1s, this capacity is not without limit. As such the protocol needs to be able to limit how much work the L2 network needs to do to keep up with the tip of the chain. Ethereum already has a mechanism in place to do just that with that we can use as well.

proposed

At block proposal we keep track of how much work (measured in gas) is required to process the block, while subtracting the amount of work the Taiko network can handle. This effectively creates a market for network capacity (in gas) per ETH. This will impact how expensive Taiko block space is (paid by the block proposer), the higher the demand the higher the network fee (a fee paid to the Taiko DAO). This way, rate limiting is achieved in a way that does not simply impose a hard and inefficient cap on the network, instead this mechanism allows users to utilize the network in a fair way while allowing the Taiko network to capture the created value. And because the same mechanism is used on Ethereum it allows Taiko to be Ethereum equivalent (with some small implementation detail changes) even for this part of its network, which is not obviously the case for L2s.

EIP-4844 scaling via blob data

EIP-4844 is an Ethereum upgrade that bolts blob data to consensus layer blocks.


proposed

YouTube Video Presentation: Ethereum's first steps towards serious scalability/EIP-4844 (Proto-danksharding) (opens in a new tab)

The main motivation for EIP-4844 is scaling Ethereum with transactions that are:

  • Compressed (similar to raw byte calldata for rollups to read and execute from)
  • Cheap (blob data is cheaper than calldata)
  • Ephemeral
    • Exist long enough for rollups to execute data
    • With enough verification data after expiration recorded to prove blob data

The impact is:

  • Cheaper transactions are achieved
  • Increase in rollup TPS (transactions per second); possibly, 10 times as much

proposed

EIP-4844 focuses on using Polynomial Commitments instead of Merkle Trees. This is because Polynomial Commitments have data recovery and are more lightweight than Merkle Trees as shown below. However, Polynomial Commitments are more challenging to develop with, since they use complicated math.


proposed

EIP-4844 will be released in the Ethereum Cancun upgrade. The Cancun upgrade ETA is Q4 2023 and can be tracked with other Ethereum upgrades at Wen Merge? (opens in a new tab)

Taiko Mainnet expects to launch with blob data transaction support after EIP-4844 is released. However, Taiko can support transactions without EIP-4844 blob data as well.