Tiêu đề gốc: "Hỏi đáp kiến thức zkEVM-Giả kim thuật"
Nguồn gốc: Giả kim thuật
Máy ảo Ethereum không có kiến thức (zkEVM) là một máy ảo tạo ra các bằng chứng không có kiến thức để xác minh tính chính xác của chương trình. ZkEVM được thiết kế để thực hiện các hợp đồng thông minh theo cách hỗ trợ công nghệ không có kiến thức.
ZkEVM là một phần của Zero Knowledge (ZK) rollup, giải pháp mở rộng lớp thứ 2 của Ethereum giúp cải thiện thông lượng bằng cách di chuyển tính toán và lưu trữ trạng thái ra khỏi chuỗi. ZK-rollup Gửi dữ liệu giao dịch tới Ethereum và xác minh bằng chứng không có kiến thức về tính hợp lệ của các lô giao dịch ngoài chuỗi.
ZK-rollup ban đầu thiếu khả năng thực hiện các hợp đồng thông minh và bị giới hạn trong việc trao đổi và thanh toán Token đơn giản. Tuy nhiên, với sự ra đời của các máy ảo không có kiến thức tương thích với EVM, ZK-rollups bắt đầu hỗ trợ các dApp Ethereum.
Trong bài viết này, chúng ta sẽ khám phá cách zkEVM hoạt động, tại sao nó quan trọng và những loại zkEVM nào tồn tại.
zkEVM là một máy ảo tương thích với EVM và hỗ trợ các phép tính bằng chứng không có kiến thức. Không giống như các máy ảo thông thường, zkEVM chứng nhận tính chính xác của việc thực thi chương trình, bao gồm tính hợp lệ của đầu vào và đầu ra được sử dụng trong các hoạt động.
Chúng tôi sẽ chia nhỏ định nghĩa này để dễ hiểu hơn:
EVM (Máy ảo Ethereum) là môi trường thời gian chạy để thực hiện các hợp đồng thông minh được triển khai trên mạng Ethereum. EVM hoạt động như một "máy tính thế giới", hỗ trợ các ứng dụng phi tập trung (dApps) chạy trên chuỗi khối Ethereum.
Máy ảo "tương thích với EVM " nếu nó có thể chạy các chương trình được tạo để chạy trong môi trường EVM . Một máy ảo như vậy có thể thực thi các hợp đồng thông minh được viết bằng Solidity hoặc các ngôn ngữ cấp cao khác được sử dụng trong phát triển Ethereum. ZkEVM tương thích với EVM vì chúng có thể thực thi các hợp đồng thông minh Ethereum mà không yêu cầu sửa đổi sâu rộng đối với logic cơ bản.
EVM chưa bao giờ được thiết kế để hỗ trợ các bằng chứng không có kiến thức, điều này khiến việc xây dựng các máy ảo không thân thiện với kiến thức, tương thích với EVM trở nên khó khăn. Tuy nhiên, những tiến bộ trong nghiên cứu đã giúp cho việc tính toán EVM có thể được bao bọc trong các bằng chứng không có kiến thức ở một mức độ nào đó.
Các dự án zkEVM khác nhau thực hiện các cách tiếp cận khác nhau để kết hợp thực thi EVM với tính toán bằng chứng không có kiến thức. Mỗi phương pháp đều có những đánh đổi riêng mà chúng ta sẽ khám phá sau trong hướng dẫn này.
Giống như EVM , zkEVM là một máy ảo chuyển đổi giữa các trạng thái thông qua các hoạt động của chương trình. Nhưng zkEVM tiến thêm một bước nữa bằng cách tạo ra các bằng chứng chứng minh tính đúng đắn của từng phần tính toán. Về cơ bản, zkEVM sử dụng một cơ chế để chứng minh rằng các bước thực thi (như đã đề cập trước đó) tuân theo các quy tắc.
Để hiểu cách zkEVM hoạt động (và tại sao nó khác), hãy xem lại EVM hiện đang hoạt động như thế nào.
Máy ảo Ethereum là một máy trạng thái, chuyển từ trạng thái cũ sang trạng thái mới để đáp ứng với một số đầu vào. Mỗi lần thực hiện hợp đồng thông minh sẽ kích hoạt một thay đổi ở trạng thái EVM (được gọi là "chuyển đổi trạng thái"). Dưới đây là thông tin tổng quan cấp cao về những gì xảy ra trong giao dịch hợp đồng thông minh:
1. Mã byte hợp đồng (được biên dịch từ mã nguồn) từ EVM ; được tải từ bộ lưu trữ và được thực thi bởi các nút ngang hàng trên EVM. Các nút sử dụng cùng một đầu vào giao dịch, điều này đảm bảo rằng mọi nút đều đạt được kết quả như nhau (nếu không chúng không thể đạt được sự đồng thuận).
2. Mã EVM opcode (có trong mã byte) tương tác với các phần khác nhau của trạng thái EVM (bộ nhớ, bộ lưu trữ và ngăn xếp) . Opcode thực hiện thao tác đọc và ghi - đọc (nhận) một giá trị từ kho lưu trữ trạng thái và ghi (gửi) giá trị mới vào bộ lưu trữ của EVM.
3. Opcode EVM thực hiện các phép tính trên giá trị thu được từ kho lưu trữ trạng thái trước khi trả về giá trị mới. Bản cập nhật này khiến EVM chuyển sang trạng thái mới (do đó, giao dịch được gọi là "chuyển đổi trạng thái"). Trạng thái mới này được sao chép bởi các nút khác và được duy trì cho đến khi một giao dịch khác được thực hiện.

Sơ đồ hiển thị cách chương trình thực thi trong Máy ảo Ethereum (EVM) [Nguồn]
zkEVM tạo ra bằng chứng không có kiến thức để xác minh từng loại các phần tử trong phép tính:
1. Truy cập mã byte: Mã chương trình thích hợp có được tải chính xác từ địa chỉ chính xác không?
2. Thao tác đọc và ghi: Chương trình có nhận được các giá trị chính xác từ ngăn xếp/bộ nhớ/bộ lưu trữ trước khi tính toán không? Vịnh. Chương trình có ghi các giá trị đầu ra chính xác vào ngăn xếp/bộ nhớ/bộ nhớ sau khi hoàn tất thực thi không?
3. Tính toán: Các mã hoạt động có được thực thi chính xác không (tức là từng mã một, không bỏ qua các bước)?
zkEVM được chia thành ba phần: thực thi môi trường, mạch chứng minh và hợp đồng xác nhận. Mỗi thành phần góp phần thực hiện chương trình, tạo bằng chứng và xác minh bằng chứng của zkEVM.
1. Môi trường thực thi
Như tên cho thấy, môi trường thực thi là in Nơi chạy các chương trình (hợp đồng thông minh) trong zkEVM. Môi trường thực thi của zkEVM hoạt động rất giống với EVM: cần có trạng thái ban đầu và giao dịch hiện tại để tạo ra trạng thái (cuối cùng) mới.
2. Mạch xác minh
Mạch chứng minh tạo ra bằng chứng không có kiến thức để xác minh Tính hợp lệ của giao dịch được tính toán trong môi trường thực thi. Quá trình tạo bằng chứng được hoàn thành bằng cách sử dụng thông tin trước trạng thái, đầu vào giao dịch và thông tin sau trạng thái làm đầu vào. Sau đó, người chứng minh có được bằng chứng ngắn gọn về tính hợp lệ của quá trình chuyển đổi trạng thái cụ thể đó.

Sơ đồ hiển thị zkEVM cách tạo bằng chứng hợp lệ cho các chương trình. [Nguồn]
3. Hợp đồng người xác minh
ZK-rollups Gửi chứng chỉ hiệu lực Xác minh hợp đồng thông minh được triển khai trên chuỗi L1 (Ethereum). Đầu vào (thông tin trước trạng thái và giao dịch) và đầu ra (trạng thái cuối cùng) cũng được gửi tới hợp đồng xác nhận. Sau đó, người xác minh sẽ chạy tính toán dựa trên bằng chứng được cung cấp và xác nhận rằng kết quả đầu ra được gửi đã được tính toán chính xác dựa trên đầu vào.
ZkEVM opcodes là các lệnh máy cấp thấp được sử dụng để thực thi các chương trình trong ZK-rollup tương thích với EVM . Giống như EVM, các hợp đồng được viết bằng ngôn ngữ cấp cao phải được biên dịch sang ngôn ngữ cấp thấp (mã byte) mà VM có thể diễn giải. Mã byte này chỉ định mã hoạt động được sử dụng để thực thi chương trình khi nó được triển khai trong máy ảo.
Chúng tôi cần opcode zkEVM vì opcode EVM thông thường không hiệu quả khi sử dụng trong các mạch chứng minh không có kiến thức. Nói chung có hai cách để tạo opcode cho zkEVM :
Xây dựng mạch ZK cho EVM opcode gốc
Tạo một ngôn ngữ mới cho ZK tính toán chứng minh
p>
Phương pháp này yêu cầu thực hiện toàn bộ tập lệnh EVM trong các mạch số học - một công việc phức tạp và tốn thời gian. Lợi ích là các nhà phát triển có thể tạo hợp đồng thông minh bằng cách sử dụng các công cụ phát triển blockchain hiện có hoặc chuyển các hợp đồng Ethereum hiện có sang ZK-rollup mà không cần sửa đổi nhiều.
Phương pháp này yêu cầu xây dựng một ngôn ngữ mới— — Được thiết kế để hỗ trợ bằng chứng xác thực - và phát triển các mã tùy chỉnh. Các nhà phát triển cần viết hợp đồng trực tiếp bằng ngôn ngữ mới hoặc biên dịch mã nguồn Solidity thành các mã opcode zkEVM tùy chỉnh.
Mặc dù phương pháp này nhìn chung dễ thực hiện hơn phương pháp đầu tiên nhưng nó cũng có những nhược điểm. Ví dụ: các nhà phát triển có thể không có quyền truy cập vào cơ sở hạ tầng và tài nguyên Ethereum hiện có.

Máy ảo không có kiến thức được phân loại theo EVM khả năng tương thích. [Nguồn]
Vì EVM không được xây dựng với ý định zk tính toán nên nó có những đặc tính không thân thiện với các mạch chứng minh. Dưới đây là thông tin tổng quan ngắn gọn về 4 điều khiến việc xây dựng zkEVM trở nên khó khăn:
Các mã hoạt động đặc biệt
Kiến trúc dựa trên ngăn xếp
Chi phí lưu trữ
Chi phí chứng minh
Không giống như các máy ảo thông thường, EVM sử dụng các mã hoạt động đặc biệt để thực thi chương trình (CALL, DELEGATECALL) và xử lý lỗi (REVERT, INVALID), cùng với các hoạt động khác. Điều này làm tăng thêm sự phức tạp cho quá trình thiết kế mạch xác minh cho hoạt động EVM .
EVM Sử dụng ngăn xếp kiến trúc, mặc dù đơn giản hơn các cấu trúc dựa trên thanh ghi, nhưng lại làm tăng độ khó của việc chứng minh tính toán. Đây là lý do tại sao các máy ảo không có kiến thức nổi tiếng như zkEVM của ZkSync và StarkNet của StarkWare sử dụng mô hình dựa trên đăng ký.
Bố cục lưu trữ của EVM phụ thuộc vào hàm băm Keccak và Merkle Patricia Trie, cả hai đều có chi phí chứng minh cao. Một số zkVM, chẳng hạn như ZkSync, cố gắng giải quyết vấn đề này bằng cách thay thế chức năng KECCAK256 - nhưng điều này có thể phá vỡ khả năng tương thích với các công cụ và cơ sở hạ tầng Ethereum hiện có.
Ngay cả khi những vấn đề trên được giải quyết, nó vẫn cần Đối phó với quá trình tạo bằng chứng. Việc tạo ra các bằng chứng không có kiến thức đòi hỏi phần cứng chuyên dụng và sự đầu tư đáng kể về thời gian, tiền bạc và năng lượng.
Mặc dù chưa đầy đủ nhưng danh sách này trình bày một số vấn đề ngăn cản việc xây dựng zkEVM tương thích với EVM . Tuy nhiên, một số đột phá trong công nghệ không có kiến thức đã giúp giảm thiểu những vấn đề này - dẫn đến mối quan tâm mới về các giải pháp zkEVM.
Việc xây dựng một zkEVM đầy đủ chức năng sẽ khuyến khích phát triển các dự án ZK-rollup tương thích với EVM . Điều này có một số ưu điểm:
Khả năng mở rộng an toàn
Chi phí thấp hơn
Quyết toán nhanh hơn An toàn và hiệu quả vốn
Hiệu ứng mạng
Theo quy tắc giao thức , tất cả các nút xác minh phải thực hiện lại tất cả các phép tính được thực hiện trong Máy ảo Ethereum. Cách tiếp cận này đảm bảo tính bảo mật vì các nút Ethereum có thể xác minh độc lập tính chính xác của chương trình, nhưng nó hạn chế khả năng mở rộng của mạng Ethereum (chỉ có thể quản lý khoảng 15-20 giao dịch).
ZK-rollup tương thích với EVM có thể giải quyết các vấn đề về thông lượng của Ethereum mà không ảnh hưởng đến an ninh mạng. Giống như các giao thức mở rộng quy mô khác, ZK-rollup không bị ràng buộc bởi các quy tắc của giao thức đồng thuận Ethereum và có thể tối ưu hóa tốc độ thực thi. Một số ước tính cho thấy rằng ZK-rollup có thể xử lý khoảng 2.000 giao dịch mỗi giây mà không phải chịu phí cao như Ethereum.
Tuy nhiên, ZK-rollups có sự đảm bảo an ninh cao hơn các dự án mở rộng khác; họ sử dụng bằng chứng hợp lệ để xác minh tính chính xác của các tính toán ngoài chuỗi. Điều này có nghĩa là các giao dịch được thực hiện bởi hợp đồng thông minh trên L2 có thể được xác minh một cách đáng tin cậy trên L1 (Ethereum) mà không cần nút phải thực hiện lại thao tác. Điều này có thể tăng đáng kể tốc độ xử lý của Ethereum mà không ảnh hưởng đến bảo mật.
Cuộn lên bằng cách chuyển đổi dữ liệu giao dịch Được ghi vào Ethereum dưới dạng CALLDATA để đạt được bảo mật từ mạng chính Ethereum. Tuy nhiên, tập hợp lạc quan và tập hợp không có kiến thức khác nhau về lượng dữ liệu chúng phải xuất bản trên Ethereum.
Vì tổng hợp lạc quan không cung cấp bằng chứng về tính hợp lệ của các giao dịch ngoài chuỗi nên họ cần xuất bản tất cả dữ liệu liên quan đến giao dịch (bao gồm chữ ký và thông số giao dịch) trên chuỗi . Nếu không đưa tất cả dữ liệu vào chuỗi, những người thách thức không thể xây dựng bằng chứng gian lận được sử dụng để tranh chấp các giao dịch tổng hợp không hợp lệ.
Ngược lại, ZK-rollups có thể xuất bản dữ liệu tối thiểu lên Ethereum vì bằng chứng hợp lệ đã đảm bảo độ tin cậy của quá trình chuyển đổi trạng thái. zkEVM thậm chí có thể bỏ qua đầu vào giao dịch và chỉ xuất bản các thay đổi trạng thái cuối cùng, giúp giảm hơn nữa các yêu cầu CALLDATA.
Ngoài ra còn tốt hơn bảo mật, các bản tổng hợp ZK có một lợi thế khác so với các bản tổng hợp lạc quan: tính hữu hạn nhanh hơn. Tính hữu hạn trong blockchain là thời gian cần thiết để một giao dịch trở nên không thể đảo ngược; giao dịch chỉ được hoàn tất khi những người tham gia mạng có bằng chứng khách quan về tính hợp lệ của nó.
Sử dụng ZK-rollups, các giao dịch được thực hiện trong zkEVM thường được hoàn thành ngay sau khi được xuất bản lên Ethereum. Vì mỗi lô giao dịch đều có bằng chứng xác thực về tính hợp lệ ngay lập tức nên chuỗi chính Ethereum có thể nhanh chóng áp dụng các bản cập nhật trạng thái.
Vì tổng số lạc quan chỉ phát hành VM giao dịch mà không có bằng chứng nên giai đoạn thử thách phải trôi qua trước khi giao dịch đi đến kết thúc. Thời gian thử thách là 1-2 tuần, trong thời gian đó bất kỳ ai cũng có thể thử thách giao dịch sau khi nó được gửi tới Ethereum.
Quy trình cuối cùng chậm hơn sẽ gây ra nhiều hậu quả cho trải nghiệm người dùng. Ví dụ: người dùng không thể rút tài sản khỏi danh sách tổng hợp cho đến khi hết thời gian trì hoãn. Các nhà cung cấp thanh khoản có thể giải quyết vấn đề nhưng có thể không hiệu quả nếu việc rút tiền liên quan đến tài sản có giá trị cao hoặc thậm chí là NFT.
zkEVM không gặp phải những vấn đề trên. Tính cuối cùng nhanh hơn là lý tưởng cho những người dùng nâng cao như nhà giao dịch NFT, nhà đầu tư DeFi hoặc nhà giao dịch chênh lệch giá cần di chuyển tài sản một cách liền mạch, đặc biệt là giữa L1 và L2.
Xây dựng một EVM tương thích Điều quan trọng nhất lý do của zkVM là tận dụng hiệu ứng mạng của Ethereum. Là nền tảng hợp đồng thông minh lớn nhất thế giới, Ethereum có một hệ sinh thái rộng lớn mang lại giá trị cho các nhà phát triển và dự án.
Ví dụ: các nhà phát triển có quyền truy cập vào cơ sở mã đã được thử nghiệm và kiểm tra trong thực tế, các công cụ, tài liệu mở rộng, v.v. Việc tạo một zkVM mới không tương thích với cơ sở hạ tầng Ethereum sẽ ngăn các dự án và nhóm phát triển tận dụng các hiệu ứng mạng của Ethereum.
Các dự án zkEVM hiện tại được chia thành hai loại chính: zkVM hỗ trợ EVM opcode gốc và zkVM sử dụng EVM  tùy chỉnh ; ;mã hoạt động cho zkVM. Dưới đây chúng tôi so sánh các giao thức zkEVM khác nhau và giải thích cách chúng hoạt động:
Polygon Hermez là một tập hợp Polygon ZK với máy ảo không có kiến thức, được thiết kế để hỗ trợ khả năng tương thích EVM . Để thực hiện việc này, mã byte EVM được biên dịch thành "micro-ops" và được thực thi trong uVM - một máy ảo sử dụng bằng chứng SNARK và STARK để xác minh tính chính xác của việc thực thi chương trình.
Quyết định kết hợp hai loại bằng chứng này có ý nghĩa chiến lược. Bằng chứng STARK (Đối số kiến thức trong suốt có thể mở rộng) được tạo ra nhanh hơn, nhưng bằng chứng SNARK (Đối số kiến thức không tương tác ngắn gọn) nhỏ hơn và rẻ hơn để xác minh trên Ethereum.
Polygon Hermez zkEVM sử dụng các mạch chứng minh STARK để tạo ra bằng chứng hợp lệ về sự chuyển đổi trạng thái. Bằng chứng STARK xác minh tính chính xác của bằng chứng STARK (hãy coi nó như là tạo ra một "bằng chứng chứng minh") và gửi nó tới Ethereum để xác minh.
zkSync là một EVM tương thích ;ZK- rollup, được phát triển bởi Matter Labs và được cung cấp bởi zkEVM của riêng họ. ZkSync sử dụng chiến lược sau để đạt được khả năng tương thích với Ethereum:
1. Biên dịch mã hợp đồng do Solidity viết thành Yul. Một ngôn ngữ trung gian có thể được biên dịch thành mã byte cho máy ảo khác nhau.
2. Biên dịch lại Yul mã byte (sử dụng LLVM framework) đặc biệt cho zkSync Bộ mã byte tùy chỉnh, tương thích với mạch được thiết kế bởi ; zkEVM
Giống như Polygon Hermez, zkSync zkEVM triển khai khả năng tương thích EVM ở cấp độ ngôn ngữ thay vì cấp độ mã byte. Ví dụ: zkEVM của zkSync không hỗ trợ các mã nhân và cộng truyền thống (ADDMOD, SMOD, MULMOD).
Cuộn là một kiến thức không có kiến thức mới đang được phát triển EVM thực hiện. Nhóm Scroll có kế hoạch thiết kế các mạch không có kiến thức cho mỗi mã EVM. Điều này sẽ cho phép các nhà phát triển triển khai các hợp đồng thông minh gốc Ethereum trên Scroll mà không cần sửa đổi mã byte EVM cơ bản.
Ngoài ra, Scroll zkEVM sẽ sử dụng "bộ tích lũy mật mã" để xác minh tính chính xác của bộ lưu trữ. Điều này được sử dụng để chứng minh rằng mã byte hợp đồng đã được tải chính xác từ địa chỉ đã cho.
Nó cũng cung cấp một mạch để liên kết mã byte với dấu vết thực thi. Dấu vết thực thi là một trình tự chỉ định VM hướng dẫn nào đã được thực thi và theo thứ tự nào. Người chứng minh sẽ gửi dấu vết thực thi trong quá trình tạo bằng chứng để xác minh rằng tính toán phù hợp với mã byte ban đầu.
ZKP ứng dụng là một dự án được tài trợ bởi Dự án Ethereum Foundation nhằm mục đích phát triển ZK-rollup tương thích với EVM và cơ chế tạo chứng chỉ hợp lệ cho các khối Ethereum. Phần cuối cùng này rất quan trọng vì việc ghép khối với bằng chứng hợp lệ sẽ loại bỏ nhu cầu các nút thực thi lại khối.
Sự đổi mới của ZKP ứng dụng nằm ở sự tách biệt giữa điện toán và lưu trữ. Nó sử dụng hai loại bằng chứng hợp lệ - bằng chứng trạng thái và bằng chứng EVM:
Bằng chứng trạng thái
Kiểm tra xem các hoạt động liên quan đến lưu trữ, bộ nhớ và ngăn xếp có diễn ra chính xác hay không. Bằng chứng trạng thái về cơ bản xác minh tính chính xác của hoạt động đọc và ghi.
EVM Bằng chứng
Kiểm tra Tính toán xem opcode chính xác có được gọi vào đúng thời điểm hay không. EVM Proofs xác minh chính việc tính toán và xác nhận rằng bằng chứng trạng thái thực hiện thao tác chính xác cho mỗi opcode.
AppliedZKP zkEVM Sử dụng ánh xạ xe buýt để liên kết các bằng chứng trạng thái và EVM bằng chứng. Ngoài ra, cả hai bằng chứng đều phải được xác minh trước khi khối Ethereum có thể được coi là hợp lệ.
Ngoại trừ zkSync, hầu hết các EVM không có kiến thức vẫn đang được phát triển. Tuy nhiên, sự phát triển liên tục của công nghệ không có kiến thức có nghĩa là triển vọng về một zkEVM đầy đủ chức năng sẽ tốt hơn bao giờ hết.
Liên kết gốc
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia