Search

Search for projects by name

Taiko logoTaiko

There are implementation changes and part of the information might be outdated.

Badges

About

Taiko is an Ethereum-equivalent Optimistic Rollup on the Ethereum network. In the future it aims to add zkVerifier making it a hybrid, optimistic-zk construction. Taiko combines based sequencing and a contestation mechanism with multi-proofs.


Value Locked
$98.30 M2.89%
Canonically Bridged
$96.87 M
Externally Bridged
$1.43 M
Natively Minted
$0.00

  • Tokens
  • Daily TPS
    57.8940.8%
  • 30D tx count
    83.27 M

  • Stage
    Stage 0
  • Type
    Optimistic Rollup
  • Purpose
    Universal
  • Sequencer failureState validationData availabilityExit windowProposer failure

    Badges

    About

    Taiko is an Ethereum-equivalent Optimistic Rollup on the Ethereum network. In the future it aims to add zkVerifier making it a hybrid, optimistic-zk construction. Taiko combines based sequencing and a contestation mechanism with multi-proofs.


    Value Locked
    Activity
    Onchain costs
    Milestones & Incidents

    Taiko Based Sequencing Upgrade

    2024 Jun 6th

    Proposing blocks on Taiko is now permissionless.

    Learn more

    TKO Token Airdrop

    2024 Jun 5th

    TKO token launches.

    Learn more
    Risk summary
    Risk analysis
    Sequencer failureState validationData availabilityExit windowProposer failure

    Sequencer failure

    Self sequence

    The system uses a based (or L1-sequenced) rollup sequencing mechanism. Users can propose L2 blocks directly on the Taiko L1 contract. The TaikoAdmin multisig can pause block proposals without delay.

    State validation

    SGX proofs

    Taiko uses a multi-tier proof system to validate the state. However, current tier proofs include either SGX (secure-enclave) execution verification, or approval by a minimum number of Guardians. State validation through the Zk-proof tier is not yet active. Each proof goes through a cooldown window allowing for contestation. Contested blocks require proof from a higher level tier. If no contestation is made, or the block has been proven by the highest tier, the proof is considered valid. The system allows for an invalid state to be proven by either a compromised SGX instance or compromised Guardians (the highest tier). This can lead to a state being proven as valid when it is not.

    Data availability

    Onchain

    All of the data needed for proof construction is published on Ethereum L1.

    Exit window

    None

    There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable.

    Proposer failure

    Self propose

    Provers can examine the proposed blocks on the TaikoL1 contract, and generate SGX proofs for them. Currently, any prover providing a valid SGX attestation can register a SGX instance and create proofs for proposed blocks.

    Rollup stage
    TaikoTaiko is a
    Stage 0
    Optimistic Rollup.

    Learn more about Rollup stages
    Please keep in mind that these stages do not reflect rollup security, this is an opinionated assessment of rollup maturity based on subjective criteria, created with a goal of incentivizing projects to push toward better decentralization. Each team may have taken different paths to achieve this goal.
    Technology

    Multi-tier proof system

    Taiko uses a multi-tier proof system to validate the state. Currently there are three tiers, SGX tier, 1/8 Guardian tier and 6/8 Guardian tier (from lowest to highest). When proposing a block, the sequencer is assigned the designated prover role for that block. The prover is required to deposit a liveness bond (125.0 TAIKO) as a commitment to prove the block, which will be returned once the block is proven. The SGX tier has a proving window of 1h, during which only the designated prover can submit proof for the block. Once elapsed, proving is open to everyone able to submit SGX proofs. After the proof is submitted, anyone within the cooldown window - for SGX tier is 1d - can contest the block by submitting a bond. For the SGX Proof tier, the validity bond is currently set to 125.0 TAIKO, while 820.0 TAIKO is required to contest the proof. For the Minority guardian tier, validity and contest bonds are set to 250.0 TAIKO and 1640.0 TAIKO, respectively. It is not required to provide a proof for the block to submit a contestation. When someone contests, a higher level tier has to step in to prove the contested block. Decision of the highest tier (currently the 6/8 Guardian) is considered final. If no one challenges the original SGX proof, it finalizes after 1d (the cooldown window).

    • Funds can be stolen if a malicious block is proven by a compromised SGX instance or approved by Guardians.

    1. TierProviderV2.sol - Etherscan source code, tier ids
    2. TaikoL1.sol - Etherscan source code, liveness bond

    All data required for proofs is published on chain

    All the data that is used to construct the system state is published on chain in the form of blobs. This ensures that it will be available for enough time.

    Operator

    The system uses a based sequencing mechanism

    The system uses a based (or L1-sequenced) sequencing mechanism. Anyone can sequence Taiko L2 blocks by proposing them directly on the TaikoL1 contract. The proposer of a block is assigned the designated prover role, and will be the only entity allowed to provide a proof for the block during the initial proving window. Currently, proving a block requires the block proposer to run an SGX instance. Proposing a block also requires depositing a liveness bond as a commitment to proving the block. Unless the block proposer proves the block within the proving window, it will forfeit its liveness bond to the TaikoL1 smart contract.

    1. TaikoL1.sol - Etherscan source code, proposeBlock function

    Users can force any transaction

    The system is designed to allow users to propose L2 blocks directly on L1. Note that this would require the user to run an SGX instance to prove the block, or forfeit the liveness bond of 125.0 TAIKO. The TaikoAdmin multisig can pause block proposals without delay.

    Withdrawals

    Regular exit

    The user initiates the withdrawal by submitting a regular transaction on this chain. When the block containing that transaction is finalized the funds become available for withdrawal on L1. Finally the user submits an L1 transaction to claim the funds. This transaction requires a merkle proof.

    Permissions

    The system uses the following set of permissioned addresses:

    TaikoAdmin 0x9CBe…9C7F

    This is a Gnosis Safe with 3 / 4 threshold. Currently also designated as the Security Council. Can upgrade proxies without delay, remove SGX attestation certificates, pause block proposals and block proving, among other permissions.

    Those are the participants of the TaikoAdmin.

    Guardians can prove blocks on the highest tier. Guardians are selected by the TaikoAdmin multisig. Acts as a 6/8 multisig.

    Minority guardians can prove blocks on the second highest tier. Guardians are selected by the TaikoAdmin multisig. Acts as a 1/8 multisig.

    ChainWatchdog 0xE3D7…43aC

    The chain watchdog role can pause proving of blocks.

    SequencerBlockOne 0xd8dA…6045

    The authorized sequencer (in Taiko called “proposer”) of block one, hardcoded to vitalik.eth address.

    Smart contracts
    Note: Contracts presented in this section had their implementations updated since the last time our team looked at this project. The information presented may be inaccurate.
    A diagram of the smart contract architecture
    A diagram of the smart contract architecture

    The system consists of the following smart contracts on the host chain (Ethereum):

    TierRouter 0x6E99…155a

    Contract allowing for granular control of which TierProvider to apply to a specific block. Currently, the TierProvider is hardcoded as an address for all blocks. Can be changed through L1RollupAddressManager.

    TierProvider 0x3a1A…1ddd

    Contract managing the multi-tier proof system.

    Contract managing SGX attestation certificates.

    Can be upgraded by:

    Upgrade delay: No delay

    Taiko’s native token. Used for block proposal rewards, proving bonds and rewards, and contesting bonds.

    Can be upgraded by:

    Upgrade delay: No delay

    There are implementation changes and part of the information might be outdated.

    This contract provides functionalities for sequencing, proving, and verifying blocks.

    Can be upgraded by:

    Upgrade delay: No delay

    This contract manages the rollup addresses list, allowing to set the address for a specific chainId-name pair.

    Can be upgraded by:

    Upgrade delay: No delay

    Verifier contract for SGX proven blocks.

    Can be upgraded by:

    Upgrade delay: No delay

    Verifier contract for blocks proven by Guardian multisig minority.

    Can be upgraded by:

    Upgrade delay: No delay

    Verifier contract for Guardian multisig proven blocks.

    Can be upgraded by:

    Upgrade delay: No delay

    A contract that holds TAIKO token and acts as a Taiko prover for Taiko Labs. This contract will simply relay proveBlock calls to TaikoL1 so msg.sender doesn’t need to hold any TAIKO. There are several instances of this contract operated by different entities.

    Can be upgraded by:

    Upgrade delay: No delay

    The SignalService contract serves as cross-chain message passing system. It defines methods for sending and verifying signals with merkle proofs.

    Can be upgraded by:

    Upgrade delay: No delay

    Shared bridge for Taiko chains for bridged ETH. This contract stores the following tokens: ETH.

    Can be upgraded by:

    Upgrade delay: No delay

    Shared vault for Taiko chains for bridged ERC20 tokens. This contract can store any token.

    Can be upgraded by:

    Upgrade delay: No delay

    The current deployment carries some associated risks:

    • Funds can be stolen if a contract receives a malicious code upgrade. There is no delay on code upgrades (CRITICAL).