Blockchain Basicsintermediatearticle40 min read

zkEVM là gì? Chạy EVM bằng Bằng Chứng Thay vì Thực Thi | VCC

zk evm là gì? zkEVM chạy hợp đồng thông minh Ethereum và tạo validity proof thay vì thực thi lại — cách hoạt động, 4 loại của Vitalik, và mức tương thích zkevm solidity.

Vietcardano teamTeam

Đội ngũ biên tập VietCardanoCommunity — các chuyên gia blockchain và Cardano, cung cấp nội dung giáo dục và nghiên cứu chuyên sâu cho cộng đồng.

Published 31 tháng 8, 2026Updated 30 tháng 8, 2026

Hãy tưởng tượng một dự án xây dựng lớn ở Hà Nội. Mỗi bức tường, mỗi cột, mỗi ống đều phải được kiểm tra. Trên Ethereum bình thường, mỗi node trong mạng lại kiểm tra lại từng bức tường – hàng ngàn kỹ sư đi dạo qua toàn bộ tòa nhà để xác nhận nó an toàn. Hãy tưởng tượng một kỹ sư kiểm tra tòa nhà một lần, sau đó ký một giấy chứng nhận có dấu. Thành phố chấp nhận dấu này như bằng chứng cho thấy toàn bộ tòa nhà an toàn – không ai đi dạo lại khu vực đó.

Đó chính là công việc của zkEVM. zkEVM là gì? Đó là một máy ảo zero-knowledge chạy các hợp đồng thông minh của Ethereum và tạo ra một bằng chứng hợp lệ về mật mã – một chứng chỉ được đóng dấu – chứng minh rằng quá trình thực hiện đã đúng. Thay vì mỗi nút thực hiện lại tất cả các giao dịch, chỉ có một máy chạy mã, và mọi người khác kiểm tra một bằng chứng nhỏ. Ethereum vẫn phê duyệt tòa nhà, nhưng nó kiểm tra dấu, không phải là các bức tường.

Trong hướng dẫn này, bạn sẽ học về cách zkEVM hoạt động bên trong, tại sao zk evm tương thích với các công cụ Ethereum hiện có quan trọng, những thay đổi đối với các nhà phát triển zkevm solidity và cách các dự án lớn như zkSync, Polygon zkEVM, Scroll, Linea, Starknet nằm trong phạm vi tương thích.


zkEVM là gì – Câu trả lời ngắn gọn

Một zkEVM (máy ảo Ethereum zero-knowledge) là một môi trường thực thi chạy các hợp đồng thông minh tương thích với EVM trong khi tạo ra một bằng chứng zero-knowledge rằng quá trình thực thi đã được thực hiện chính xác. Nó là lớp khả năng lập trình bên trong một ZK rollup – phần cho phép một rollup cấp 2 chạy các hợp đồng Solidity, không chỉ đơn giản là chuyển giao.

Ba từ để giải nén:

  • EVM — Máy ảo Ethereum, quy tắc xác định cách thức hoạt động của các hợp đồng thông minh. Nó là một công thức chuyển đổi trạng thái: cung cấp cho nó một trạng thái và một giao dịch, nó sẽ trả về một trạng thái mới.

Việc đảo ngược quan trọng trong tiêu đề của chúng tôi – điều hành EVM trên các bằng chứng thay vì thực thi – là như sau: trên L1, mỗi nút thực thi lại tất cả các giao dịch, sử dụng sự tin tưởng thông qua tính thừa thãi. Một zkEVM thay thế tính thừa thãi đó bằng sự tin tưởng thông qua toán học. Thực hiện một lần, chứng minh một lần, xác minh ở mọi nơi.


Tại sao sự tương thích của EVM quan trọng (câu chuyện về thừa kế)

EVM không chỉ là một máy; nó là một hệ sinh thái. Tài sản lớn nhất của Ethereum là hiệu ứng mạng của các công cụ và cộng đồng phát triển. zkEVM có thể chạy các hợp đồng hiện có và thừa hưởng hiệu ứng mạng đó:

  • Các nhà phát triển Solidity có thể triển khai bằng cùng một ngôn ngữ, cùng một mô hình tư duy.

Đó là lý do tại sao câu hỏi về tính tương thích chiếm lĩnh ngành công nghiệp này. Mỗi nhóm zkEVM phải quyết định: chúng ta đưa bao nhiêu phần của Ethereum vào trong circuit? Quyết định này là trung tâm của khung làm việc nổi tiếng của Vitalik Buterin.


Cách zkEVM chứng minh thực thi (đi sâu một bước)

Chúng ta hãy đi sâu hơn một bước so với "nó tạo ra một bằng chứng".

Dấu vết thực thi là nguồn gốc của sự thật

Một giao dịch không được thực hiện như một bước lớn. Nó được thực hiện như một danh sách dài theo thứ tự các chỉ dẫn máy tính nhỏ gọi là opcode – ADD, SLOAD, CALL, SHA3 và hàng trăm opcode khác. Mỗi opcode có một quy tắc chính xác được định nghĩa trong Sách vàng Ethereum (ví dụ, ADD lấy hai giá trị từ dãy và đẩy tổng của chúng).

Sự ghi nhận của mỗi opcode được thực thi – cùng với các tác động của bộ đệm, bộ nhớ và bộ lưu trữ – được gọi là dấu vết thực thi. Dấu vết này là nguyên liệu thô mà zkEVM biến thành bằng chứng.

Từ dấu vết đến bằng chứng

  1. Chạy giao dịch, ghi lại toàn bộ dấu vết thực thi.
  2. Chuyển mỗi lệnh opcode thành một giới hạn — một tuyên bố toán học như "các ô đầu tiên của bộ đệm, khi cộng lại, bằng ô đệm đầu tiên mới". Toàn bộ dấu vết trở thành một hệ thống lớn các giới hạn (một mạch).

Vì bằng chứng chứng minh tính chính xác – không phải bí mật – nó cũng có nghĩa là người xác minh L1 không cần biết nội dung của mỗi giao dịch. Thành phố kiểm tra con dấu, không phải là bức tường.


Cách zkEVM chứng minh quá trình thực thi: giao dịch đến execution trace đến constraint circuit đến validity proof đến state root mới được xác thực trên L1

Hình 1: Cách zkEVM chứng minh quá trình thực thi — từ giao dịch đến state root được xác thực


Phổ tương thích: bốn loại của Vitalik

Tháng 8 năm 2022, Vitalik Buterin đã đăng bài "Các loại ZK-EVM khác nhau", trình bày sự cân bằng cốt lõi của ngành. Các loại không phải là một bảng xếp hạng chất lượng – chúng là các điểm trên một thang đo điều được chứng minh.

LoạiTênĐiều nó chứng minhTính tương thíchTốc độ chứng minhCác ví dụ
1Tương đương với EthereumMọi thứ, gồm cấu trúc khối & cây trạng tháiHoàn hảoChậm nhấtPSE zkEVM, Taiko
2Tương đương với EVMBytecode EVM (cấu trúc khối/điều kiện được điều chỉnh để tăng tốc)TốtTốc độ nhanh hơnPolygon zkEVM, Scroll
3Gần như tương đương với EVMBytecode trừ các tính năng khó chứng minh nhấtTốt (một số sửa đổi)NhanhScroll/Polygon sớm (cách chuyển tiếp)
4Bằng cấp tương đương ngôn ngữ cao cấpSolidity được biên dịch thành một ngôn ngữ thân thiện với ZKCó hạn (địa chỉ thay đổi)Nhanh nhấtzkSync Era, Starknet

Quy tắc chung mà Vitalik đưa ra: Các loại thấp hơn tương thích hơn nhưng cần nhiều thời gian để chứng minh; các loại cao hơn nhanh hơn nhưng vi phạm nhiều giả định. Các hợp đồng mã hóa được precompile như Keccak hoặc ecrecover thường nằm ở "cạnh trên danh sách" các thứ bị loại bỏ bởi Type 3 vì chúng rất khó để chứng minh bằng ZK.

Các dự án chuyển đổi giữa các loại khi công nghệ của chúng phát triển. Early Scroll và early Polygon zkEVM được phát hành như loại 3; cả hai đang tiến gần hơn đến loại 2. Các kế hoạch của zkSync dựa trên STARK cũng bao gồm hỗ trợ cho các hợp đồng Rust và C++.


Bốn loại zkEVM của Vitalik: Type 1 tương đương Ethereum, Type 2 tương đương EVM, Type 3 gần tương đương EVM, Type 4 tương đương ngôn ngữ — đánh đổi tương thích lấy tốc độ chứng minh

Hình 2: Bốn loại zkEVM của Vitalik — phổ tương thích và tốc độ


Hai gia đình lớn: cấp bytecode và cấp nguồn

Dưới bốn loại này, có một phân chia đơn giản hơn quyết định trải nghiệm của nhà phát triển.

Gia đình 1: Chứng minh bytecode EVM gốc (loại 1-3)

Polygon zkEVM, Scroll, và Linea chứng minh bytecode EVM trực tiếp. Circuit giải thích bytecode tương tự như EVM sẽ chạy. Đây là câu chuyện bảo mật mạnh nhất: vì spec chuyển đổi trạng thái được chứng minh là của Ethereum, hành vi được thừa hưởng một cách trung thực thay vì được reinterpret lại một cách không rõ ràng.

  • Polygon zkEVM hướng tới Type 2. Nó chứng minh bytecode thông qua một trình dịch cú pháp zkASM tùy chỉnh và phương pháp toán học PIL, và xử lý nhiều khối L2 cùng một lúc. Hầu hết các công cụ tiêu chuẩn – Hardhat, Foundry, Remix, xác minh Etherscan – đều hoạt động trực tiếp.

Đối với những điều này, tương thích của zkevm solidity gần như hoàn toàn: tái biên dịch và triển khai.

Gia đình 2: Chứng minh ngôn ngữ ZK-native (Loại 4)

zkSync Era và Starknet đi theo một hướng khác: chúng chứng minh một ngôn ngữ tùy chỉnh được thiết kế để tương thích với ZK, không phải bytecode của EVM.

  • zkSync Era biên dịch Solidity/Vyper với zksolc/zkvyper - một chuỗi công cụ dựa trên LLVM, nó chuyển Solidity → Yul/IR → LLVM IR → bytecode của EraVM, bộ chỉ dẫn của máy ảo dựa trên bộ đăng ký của zkSync. Bạn viết cùng một Solidity, nhưng một trình biên dịch khác sẽ tạo ra bytecode khác.

Phương pháp chứng minh kiểu 4 nhanh hơn nhiều (nó chứng minh một ngôn ngữ được xây dựng cho ZK, không phải một máy ảo được phát triển vào năm 2015), nhưng nó hy sinh tính tương thích ở các cạnh: địa chỉ hợp đồng có thể khác nhau, mã byte EVM được viết tay khó sử dụng, và một số hành vi opcode thay đổi.


zkevm solidity trải nghiệm lập trình viên: zkEVM mức bytecode (Polygon zkEVM, Scroll, Linea) biên dịch lại và deploy, còn zkEVM mức nguồn (zkSync Era, Starknet) cần zksolc và gặp edge cases

Hình 3: Lập trình viên Solidity thấy gì trên mỗi họ zkEVM


zkevm solidity — Những thay đổi thực sự đối với các nhà phát triển

Câu hỏi thực tế nhất mà một nhà phát triển Solidity Việt Nam đặt ra là: "Tôi có cần viết lại smart contract của mình không?" Câu trả lời trung thực phụ thuộc vào từng trường hợp.

Trên Polygon zkEVM / Scroll / Linea (nền tảng bytecode)

  • Thay đổi: tối thiểu. Cùng một trình biên dịch, cùng một mã byte, cùng một quy trình triển khai.

Trên zkSync Era (nền tảng cấp nguồn)

  • Thay đổi: tái biên dịch. Cài đặt zksolc và tái biên dịch Solidity của bạn. Hầu hết các hợp đồng đều hoạt động, nhưng các trường hợp đặc biệt là thực tế:
  • extcodesize kiểm tra bị phá vỡ. Trong EraVM, mỗi tài khoản là một tài khoản thông minh, vì vậy một EOA trả về một extcodesize không bằng 0. Mã nguồn từ chối hợp đồng bằng kiểm tra này sẽ hành động sai.

Luật vàng

Đầu tiên, hãy thử nghiệm trên testnet và kiểm tra lại tất cả các giả định mà hợp đồng của bạn đưa ra về EVM. Tương đương ≠ giống hệt. Đây là điểm quan trọng của zk evm tương thích: tương thích là một phạm vi, và "hợp tác" không phải là "hợp tác hoàn toàn giống như L1".


Gas, Precompiles và thuế tương thích ẩn

Thậm chí các zkEVM "phù hợp nhất" cũng thay đổi nền kinh tế:

  • Precompiles là điểm gây khó khăn. Keccak, ecrecover, modexp - tất cả đều đắt để biểu diễn như các giới hạn trong một mạch. ZkEVM loại 3 loại bỏ hoặc thay thế chúng; thiết kế loại 2 phải chứng minh chúng, điều này làm tăng chi phí chứng minh.

Các hạn chế và lộ trình tiếp theo

zkEVM là phần mềm sản xuất, nhưng chúng chưa được hoàn thành:

  • Prover là chỗ cản trở chính. Xác minh một lô dữ liệu mất nhiều thời gian hơn so với thực hiện nó. Hiện nay, các prover thường chạy trên phần cứng chuyên dụng thuộc sở hữu của nhóm sáng lập hoặc một nhóm nhỏ các nhà vận hành - xác minh decentralized là một vấn đề chưa được giải quyết.
  • Phân mảnh về tính thanh khoản. Mười hai chuỗi ZK mỗi chuỗi xây dựng hệ sinh thái riêng của mình; việc kết nối là một rào cản và một rủi ro.

Đối với một nhà phát triển Việt Nam, bản đồ hướng dẫn thực tế: zk evm tương thích đã tốt đủ cho hầu hết các dApp. Chọn một chuỗi tương đương bytecode (zkEVM của Polygon, Scroll, Linea) cho việc triển khai ngay lập tức, hoặc zkSync nếu bạn cần chứng minh nhanh nhất và có thể xử lý danh sách kiểm tra lại biên dịch.


Hệ sinh thái zkEVM: prover là nút thắt, tương thích là một phổ, ý nghĩa với lập trình viên Solidity, và đích đến là chứng minh chính Ethereum L1

Hình 4: Hệ sinh thái zkEVM trong nháy mắt


Hỏi đáp

Câu hỏi: zkEVM là gì?

Trả lời: Máy ảo Ethereum không có thông tin – một môi trường thực thi chạy các hợp đồng thông minh tương thích với EVM và tạo ra bằng chứng hợp lệ về việc thực thi đã đúng. Nó cho phép ZK rollups chạy các hợp đồng Solidity mà không cần mỗi nút thực hiện lại từng giao dịch.

Câu hỏi: zk evm tương thích với Ethereum như thế nào?

Trả lời: Trong một phạm vi. zkEVM tương đương bytecode (zkEVM của Polygon, Scroll, Linea) gần như hoàn toàn: tái biên dịch và triển khai. zkEVM ở cấp nguồn (zkSync Era) yêu cầu zksolc và có những khác biệt trong trường hợp đặc biệt (extcodesize, block.number, CREATE2, gas hai phần). Starknet yêu cầu viết lại trong Cairo.

Câu hỏi: zkevm solidity - tôi có cần viết lại contract không?

Trả lời: Thường không xảy ra trên các chuỗi tương đương bytecode. Trên zkSync Era, bạn có thể biên dịch lại bằng zksolc, sửa các trường hợp đặc biệt trên, và thử nghiệm trên testnet. Chỉ có Starknet thực sự yêu cầu viết lại bằng một ngôn ngữ mới.

Câu hỏi: zkEVM và zk-rollup khác nhau như thế nào?

Trả lời: Zk-rollup là hệ thống Layer-2 đầy đủ (sequencer, bridge, khả năng truy cập dữ liệu, thanh toán). ZkEVM là động cơ thực thi bên trong nó – phần thực thi hợp đồng và tạo ra bằng chứng. Một là tòa nhà, còn một là kỹ sư chứng nhận nó.

Câu hỏi: ZkSync Era và Polygon zkEVM khác nhau như thế nào?

Trả lời: zkSync chứng minh bytecode EraVM của riêng nó được biên dịch từ Solidity (Loại 4, nhanh hơn, có nhiều trường hợp đặc biệt). Polygon zkEVM chứng minh bytecode EVM bản địa (mục tiêu Loại 2, tương thích hơn, nhưng chứng minh chậm hơn). Một phương pháp ưu tiên tốc độ, còn phương pháp kia ưu tiên khả năng tương thích ngay lập tức.

Tóm tắt: Căn nhà, dấu đóng và giám sát viên

  • EVM là một chức năng chuyển đổi trạng thái - quy tắc cho cách thức hoạt động của các hợp đồng.

Khu vực xây dựng ở Hà Nội vẫn đang được xây dựng. Nhưng hướng đi rõ ràng: Ethereum đang chuyển từ một nghìn kỹ sư kiểm tra từng bức tường sang một kỹ sư, một dấu xác nhận, được xác minh ở mọi nơi. Hiểu zkEVM ngày nay có nghĩa là hiểu ngành công nghiệp đang hướng tới đâu – bằng chứng thay vì thực thi, toán học thay vì lặp lại.


Số từ: ~2,100 | Từ khóa chính: "zk evm là gì" | Từ khóa phụ: "zkevm solidity", "zk evm tương thích"

Tags:

zk evm là gìzkevm solidityzk evm tương thích