# Presentation by Dave (Taiko)
@ ETHGlobal Tokyo Builders Session - 8th April 2023
https://www.youtube.com/watch?v=u_NIMaqBLFs&t=7187s
**Summary of the presentation (by [@mikkoikola](https://twitter.com/MikkoIkola)):**
**Taiko recap:**
* Taiko is Type-1 zkEVM/zk-Rollup
* Most compatible with Ethereum, “Ethereum equivalent”
* Community zkEVM effort
* Collaboration with Ethereum Foundation PSE team & Scroll
* Taiko team currently around 25 people
* Taiko is fully open source & MIT license
* **Alpha-1 testnet:** 2000 unique proposers (Nodes)
* **Alpha-2 testnet:** 140 unique provers
**Different zkEVM types (From Type-1 to 4)**
* Higher compatibility (Type-1) or higher prover performance (Type-4)?
* E.g. zkSync is is prioritizing faster proving times and is Type-4
* Taiko chose to be the most compatible, Type-1, EVM equivalent
* Taiko still uses EVM. And Keccak-256 hash function, Merkle-Patricia data structure, and Geth (Ethereum client) with small changes.
**What is Rollup? Essentially, it is a State machine**
* To go from one State to an another State, the inputs are some transactions that define the next State.
* **State Transition on Taiko is the same as on Ethereum** (as by Ethereum yellow paper)
* Validity Rules on Ethereum yellow paper, which define State transition function on Ethereum. Taiko uses the same function and validity rules.
* **Taiko uses base layer (Ethereum L1) consensus and data availability**
* **Taiko is also considered “based”** or “L1-sequenced”, see more behind this link.
* **“Based” definition** = A rollup is said to be based, or L1-sequenced, when its sequencing is driven by the base L1. More concretely, a based rollup is one where the next L1 proposer may, in collaboration with L1 searchers and builders, permissionlessly include the next rollup block as part of the next L1 block.
* **To bridge data from L1 to Taiko, you can just present a Merkle Proof**
* Because Taiko uses Merkle-Patricia tree to create blocks, it’s just about verifying Merkle Proof to send a message
* It’s extremely “trust minimized” bridge
* Call Ethereum node, just say “get proof”, present Merkle Proof on Taiko, and you can securely secure data or funds
* We don’t consider bridge as part of Taiko protocol, it’s just an application. Anyone is welcome to build a bridge on Taiko.
**Proposing transactions - 3 steps:**
1. Users submit transactions (to the mempool) for Proposers
2. Proposers (=Taiko nodes) select transactions and propose them to the L1 smart contract, which governs the Taiko State.
3. Different transaction status terms:
- Proposed (deterministic)
- Proved
- Verified
**Further explanation:**
* When you propose a list of transaction to L1 contract, Taiko has well-defined validity rules to compute the state transition for the Rollup. That is derived from Ethereum.
* As soon as you get the list of transaction when it is ***“proposed”***, anyone can compute the Rollup’s next state. **You can just move on immediately, you don’t need to wait for a proof.**
* That’s why we prioritize compatibility a lot, because we see Prove generation time going down in the future.
* People can still continue on on the Roll-up. Because you can deterministically get the next State on the rollup.
**Proving a block:**
* Proving you went from one State to the next State. So that everything was done in valid way, you need to present Validity Proof (zk-SNARK).
* You present Validity Proof to the L1 contract and that block will turn into **“Proved”**.
* Keep in mind, this is just proving one state transition to another one.
* But you don’t know if the parent is proving yet, which is why we have a third status, which is “Verified”.
* ***“Verified” meaning*** = When all of the parents from genesis are proven to have had valid state transitions, then you know the current block has had valid proof for you to move forward.
* You can continue on the Rollup without a proof, but you might want to have a proof for e.g. bridging out of the Rollup
**Constructing the Rollup state:**
* When transaction list is proposed, you can start building Taiko’s state. No need to wait for a proof
**Where Taiko is going with Taiko A3 testnet**
* We are simplifying/optimizing the protocol
* E.g. moving lots of validity logic into ZKPs (away from L1 smart contract to the Taiko Nodes. Will make fees cheaper and protocol more simple)
* We will enable EIP-1559 on L2
* **Tokenomics challenge:**
* Because everything is fully decentralized (no centralized sequencer, anyone can prove and propose blocks), this create a new type of tokenomics design challenge. Something we will work on.
* Moving codebase to Foundry
* **Long-term plans**
* Finishing the circuits to prove Ethereum blocks
* EIP-4844 (proto-danksharding)
* Rollup training wheels: Execution client diversity, Proof diversity, Governance etc
# **Q&A section of the presentation:**
**Where can I find resources to build on Taiko?**
* Dapp development exactly the same as building on Ethereum
* No exceptions — just deploy like you deploy on Ethereum and it works. Just change one URL and you are good to go (change RPC to Taiko)
* You can follow any Ethereum tutorial
**Why Taiko was named Taiko?**
- There is Chinese story — related to “beat of a drum”, referring that you need to give your best effort, although something is really difficult and ambitious.
**What is the most important way to choose Rollup? There are so many kind of Rollups.**
* User security is important consideration — you need to be careful about security risks:
* Even if you have perfect zkEVM circuits, if there is a bug in your exccution client (e.g. Geth), you might be proving something invalid as valid.
* Another bug possibility: zkEVM circuits are broken. You might need to have some diversity in the proof system, diversity in the execution clients
* Higher EVM compatibility gives you easier time as developer, but it also gives you better feeling of trust that nothing goes wrong.
* Just my opinion — try to stay as EVM compatible (or EVM equvivalent) as possible for most security.
**Taiko is Type-1 zkEVM, will there eventually be a battle with other zkEVMs?**
* I think industry will be going towards EVM compatible/equvivalent L2 zk-Rollup solutions.
* However, I imagine there will be multiple solutions in the future.
**Taiko team members are from Loopring, why was Taiko developed?**
* Taiko is general purpose zk-Rollup.
* Loopring is app-specific zk-Rollup.
* Loopring going more app-specifc/L3 path, while Taiko is general purpose zkEVM.
**What kind of dapps do you want on Taiko?**
* All of the dapps! All kinds of dapps can be deployd on Taiko.
* You just change one URL (RPC). It’s just like developing on Ethereum.
* That said, bridging provides really interesting dapp opportunities. Because we have totally decentralized nodes and provers that people can run. We like to see progress that community can run Nodes and Provers.
* Perhaps there will be a new “mining era” generating validity proofs. Improving that software is another type of application for Taiko.