Tóm tắt nhanh

ZK-EVM là ZK Rollup có thể chạy EVM smart contract và tạo ZK Proof cho execution. Vitalik Buterin phân loại thành 4 type dựa trên mức độ tương thích EVM — từ Type 1 (100% Ethereum-equivalent, chậm nhất) đến Type 4 (ngôn ngữ level, nhanh nhất nhưng ít compatible hơn).

1ZK-EVM Là Gì? — Thách Thức Kỹ Thuật

ZK-EVM là hệ thống có thể: (1) thực thi EVM smart contract, và (2) tạo ZK Proof chứng minh execution đó đúng. Nghe đơn giản nhưng thực ra cực kỳ khó vì EVM không được thiết kế để "provable".

EVM dùng 256-bit word size, các opcode như KECCAK256 (SHA-3) rất tốn kém để express trong ZK circuit. Việc prove một block EVM với hàng nghìn opcode đòi hỏi ZK circuit cực kỳ phức tạp. Đây là lý do tại sao ZK-EVM Type 1 (prove chính xác EVM) cực kỳ chậm và đắt.

Tại sao cần ZK-EVM thay vì ZK Rollup thông thường? ZK Rollup không cần phải prove EVM — có thể dùng VM riêng (như Starknet với Cairo). Nhưng ZK-EVM cho phép developer deploy Solidity smart contract hiện có mà không cần viết lại. Đây là yêu cầu quan trọng để attract DeFi ecosystem từ Ethereum L1.

2Type 1 — Fully Ethereum-Equivalent

Type 1 ZK-EVM prove chính xác Ethereum L1 block — kể cả hash function (Keccak), storage layout, và mọi behavior chi tiết. Một Ethereum node có thể verify proof mà không cần thay đổi gì.

  • EVM compatibility: 100% — mọi contract Ethereum deploy ngay được
  • Proving cost: Rất cao — proving một block mất hàng giờ trên hardware hiện tại
  • Dự án: Taiko (đang build Type 1 based rollup)
  • Use case: ZK-prove Ethereum L1 block — có thể dùng cho Ethereum light client, không chỉ L2

3Type 2 — EVM-Equivalent (không phải Ethereum)

Type 2 tương thích với EVM bytecode — mọi smart contract EVM deploy và chạy được. Nhưng có thể thay đổi một số hash function hoặc storage layout để dễ prove hơn (không còn prove chính xác Ethereum L1).

  • EVM compatibility: ~99% — hầu hết contract chạy được, một số edge case không
  • Proving cost: Cao — nhưng thấp hơn Type 1 đáng kể
  • Dự án: Polygon zkEVM, Scroll, Linea (ConsenSys)
  • Developer experience: Gần như dùng Ethereum — tooling standard hoạt động

4Type 3 — Near EVM-Equivalent

Type 3 bỏ một số feature EVM khó prove (ví dụ: precompile không phổ biến, memory padding behavior), nhưng phần lớn smart contract DeFi vẫn chạy được.

  • EVM compatibility: ~90-95% — đủ cho phần lớn DeFi protocol
  • Proving cost: Trung bình
  • Thực tế: Nhiều dự án bắt đầu ở Type 3 rồi dần upgrade lên Type 2. Polygon zkEVM ra mắt ở Type 3.
  • Trade-off: Vài contract cần minor adjustment — không phải drop-in replacement hoàn toàn

5Type 4 — High-Level Language Equivalent

Type 4 không prove EVM bytecode. Thay vào đó, Solidity/Vyper source code được compile sang bytecode riêng được thiết kế để provable dễ hơn. EVM bytecode không chạy trực tiếp.

  • EVM compatibility: Hầu hết Solidity contract với minor adjustment — không phải EVM bytecode compatible
  • Proving cost: Thấp nhất — proving nhanh và rẻ hơn Type 1/2 nhiều lần
  • Dự án: zkSync Era (Matter Labs) — dùng zksolc compiler
  • Trade-off: Developer cần dùng zksolc thay vì solc, một số opcode không support, behavior đôi khi khác nhỏ
Starknet là Type 4+: Starknet không dùng Solidity mà dùng Cairo — ngôn ngữ hoàn toàn mới. Đây không phải ZK-EVM theo nghĩa strict, nhưng là ZK Rollup với high-level language riêng. Proving performance tốt nhất, nhưng developer phải học Cairo từ đầu.

6So Sánh 4 Loại ZK-EVM

TypeEVM CompatibilityProving CostProving SpeedDự án
Type 1100% Ethereum-equivalentRất caoRất chậm (giờ)Taiko
Type 2~99% EVM bytecode compatibleCaoChậm (phút-giờ)Scroll, Polygon zkEVM, Linea
Type 3~90-95% (vài exception)Trung bìnhTrung bìnhPolygon zkEVM (giai đoạn đầu)
Type 4Solidity level (cần recompile)ThấpNhanhzkSync Era

Không có loại "tốt nhất" tuyệt đối — đây là trade-off giữa compatibility để migrate existing codeperformance cho new application. Type 2 đang là sweet spot được nhiều dự án chọn: EVM compatible gần hoàn toàn mà proving cost không quá cao.

Phân tích đầy đủ về ZK Rollup và ZK-EVM tại ZK Rollup Là Gì?bài chính về L2 Scaling & Interoperability.

7zkVM Không Phải EVM — RISC Zero, SP1, Jolt

Ngoài ZK-EVM (chứng minh EVM execution), một hướng khác đang phát triển mạnh: zkVM tổng quát — chứng minh execution của bất kỳ program nào viết bằng Rust, C++, hoặc bất kỳ ngôn ngữ compile được sang RISC-V.

zkVMISANgôn ngữ hỗ trợĐiểm mạnh
RISC ZeroRISC-VRust, C, C++General-purpose, mature toolchain
SP1 (Succinct)RISC-VRust nativelyDeveloper experience tốt nhất, fast proving
Jolt (a16z)RISC-VRust, LLVMLookup argument approach, proof generation nhanh
ValidaCustom ISAValida IRDesigned for ZK-friendly execution

zkVM vs ZK-EVM — Khi nào dùng cái gì?

Dùng ZK-EVM khi cần tương thích với Solidity ecosystem hiện tại — smart contract không cần viết lại, tooling Ethereum (MetaMask, Ethers.js) hoạt động ngay. Type 2/Type 3 ZK-EVM (zkSync Era, Polygon zkEVM) là lựa chọn thực tế nhất cho dự án cần deploy nhanh.

Dùng zkVM tổng quát khi cần prove arbitrary computation — coprocessor cho L1, proof của off-chain logic phức tạp (AI inference, orderbook matching), hay build L2 không cần EVM compatibility. SP1 và RISC Zero đang được dùng nhiều cho light client proof (bridge) và zkCoprocessor.

8Trade-Off Thực Tế — Chọn ZK-EVM Nào?

Năm 2025, câu hỏi thực tế không phải "ZK-EVM là gì" mà là "deploy trên L2 nào":

  • Muốn tương thích tuyệt đối với Ethereum: Chờ Ethereum L1 native ZK-EVM (Verge), hoặc dùng Scroll (Type 2, proving overhead cao hơn nhưng compatibility tốt nhất).
  • Muốn performance tốt nhất: zkSync Era (Type 4) — phí thấp, finality nhanh, nhưng đôi khi có edge case incompatibility.
  • Muốn EVM-equivalent với production maturity: Polygon zkEVM (Type 2) hoặc Linea — battle-tested nhiều hơn.
  • Muốn tự build L2: zkSync Era's ZK Stack (Boojum prover) hoặc Polygon CDK cho ZK-EVM framework.
Tương lai hội tụ về Type 1: Proving cost đang giảm theo cấp số nhân — hardware acceleration (GPU, FPGA, ASIC) và proof system improvement (STARKs → FRI, recursive proofs) đang đẩy viable proving time của Type 1 ZK-EVM xuống. Dự kiến trong vài năm tới, khoảng cách giữa các type sẽ thu hẹp đáng kể.

FAQ

Tôi nên deploy smart contract lên ZK-EVM Type nào?
Với developer muốn migrate DeFi protocol từ L1: Type 2 (Scroll, Polygon zkEVM) — gần 100% compatible, hầu hết code chạy không cần thay đổi. Với developer build mới từ đầu: Type 4 (zkSync Era) có thể acceptable nếu bạn sẵn sàng dùng zksolc compiler. Với app cần maximum EVM fidelity: Type 1 (Taiko) khi production-ready.
Các loại ZK-EVM có dần upgrade từ Type 3 lên Type 2 không?
Có — đây là xu hướng rõ ràng. Polygon zkEVM bắt đầu ở Type 3, dần upgrade lên Type 2. Scroll cũng liên tục tăng EVM compatibility. Proving hardware và algorithm cải thiện cho phép prove phức tạp hơn với cost tương tự, nên các dự án có incentive upgrade compatibility.

Bài viết liên quan