ZkEVM là gì?

ZkEVM là viết tắt của cụm từ "Zero-Knowledge Ethereum Virtual Machine". Là một máy ảo hỗ trợ tính toán Zero-knowledge proof (ZKP) hay ZKP để xác minh tính đúng đắn của việc thực thi các chương trình, bao gồm cả tính hợp lệ của đầu vào (inputs) và đầu ra (outputs) trong chương trình.

Nói một cách đơn giản thì zkEVM được thiết kế để thực hiện các smart contract có hỗ trợ công nghệ zero-knowledge (zk).

Khi sử dụng công nghệ ZkEVM, cho phép các nhà lập trình có thể đưa các smart contract từ Ethereum lên trực tiếp một dự án hỗ trợ ZkEVM mà gần như không tạo ra bất kỳ sự thay đổi nào. 

ZkEVM hỗ trợ nhiều loại ZK Proof khác nhau. Bao gồm cả zk-SNARKs và zk-STARKs. Giúp các nhà phát triển lựa chọn phương pháp phù hợp nhất cho ứng dụng của mình.

zkEVM
zkEVM

Cách thức hoạt động của zkEVM

Giống như EVM, zkEVM là một máy ảo chuyển đổi giữa các trạng thái sau khi thực thi chương trình. Nhưng zkEVM còn đi xa hơn bằng cách tạo ra các bằng chứng không có kiến thức (ZKP) để xác minh các yếu tố khác nhau trong mỗi phép tính:

(1). Truy cập Bytecode: Mã chương trình thích hợp có được tải đúng cách, từ đúng địa chỉ không?

(2). Các thao tác đọc – ghi:

  • a. Chương trình có tìm nạp các giá trị phù hợp từ ngăn xếp/ bộ nhớ/ lưu trữ (stack/memory/storage) trước khi tính toán không?
  • b. Chương trình có ghi các giá trị đầu ra chính xác vào ngăn xếp/ bộ nhớ/ lưu trữ (stack/memory/storage) sau khi hoàn thành việc thực thi không?

(3). Tính toán: Các mã opcodes có được thực thi chính xác không (tức là lần lượt nối tiếp nhau, không bỏ qua các bước)?

Kiến trúc zkEVM

ZkEVM được chia thành ba phần: an execution environment (môi trường thực thi), proving circuit (mạch chứng minh) và verifier contract (hợp đồng xác minh). Mỗi thành phần đóng góp vào việc thực thi chương trình, tạo bằng chứng và xác minh bằng chứng của zkEVM.

Môi trường thực thi

Môi trường thực thi là nơi các chương trình (smart contracts) được chạy trong zkEVM. Môi trường thực thi của zkEVM hoạt động giống như EVM: nó lấy trạng thái ban đầu và giao dịch hiện tại để tạo ra trạng thái mới (hay còn gọi là trạng thái cuối cùng).

Mạch chứng minh

Mạch chứng minh tạo ra các bằng chứng không có kiến thức (ZKP) xác minh tính hợp lệ của các 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 dữ liệu đầu vào gồm: (1) trạng thái trước, (2) đầu vào giao dịch và (3) thông tin sau trạng thái.

Sau đó, người xác minh thu được một bằng chứng ngắn gọn về tính hợp lệ của sự chuyển đổi trạng thái cụ thể đó.

Sơ đồ về cách zkEVM tạo ra các bằng chứng hợp lệ cho các chương trình

Hợp đồng người xác minh

ZK-rollups gửi bằng chứng hợp lệ cho một hợp đồng thông minh được triển khai trên chuỗi L1 (Ethereum) để xác minh.

Đầu vào (trạng thái trước và thông tin giao dịch) và đầu ra (trạng thái cuối cùng) cũng được đệ trình cho hợp đồng người xác minh.

Sau đó, người xác minh chạy tính toán trên bằng chứng được cung cấp và xác nhận rằng các đầu ra được gửi đã được tính toán chính xác từ các đầu vào.

zkEVM opcodes là gì?

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 một zk-Rollup tương thích với EVM.

Chúng ta cần zkEVM opcodes vì EVM opcodes thông thường không hiệu quả để sử dụng trong các mạch chứng minh không có kiến thức. Nhìn chung, có hai cách tiếp cận để tạo zkEVM opcodes:

  • Xây dựng mạch ZK cho các opcodes EVM gốc

Cách tiếp cận này giúp zkEVM tương thích ở mức bytecode tương đương EVM. Nghĩa là các nhà phát triển có thể tạo các smart contract bằng cách sử dụng công cụ dành cho nhà phát triển blockchain hiện có hoặc chuyển các hợp đồng Ethereum hiện có sang ZK-rollups mà không cần sửa đổi nhiều.  Tuy nhiên đó là một nỗ lực kỹ thuật khá phức tạp và tốn nhiều thời gian.

  • Tạo ngôn ngữ mới cho tính toán bằng chứng ZK

Cách tiếp cận này yêu cầu xây dựng một ngôn ngữ mới — được thiết kế để hỗ trợ các bằng chứng hợp lệ — và phát triển các mã opcodes tùy chỉnh. Các nhà phát triển sẽ cần phải 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 sang mã opcodes zkEVM tùy chỉnh.

Mặc dù phương pháp này thường đơn giản hơn để thực hiện so với cách tiếp cận đầu tiên, nhưng nó có những hạn chế. Ví dụ: các nhà phát triển có thể không thể truy cập vào cơ sở hạ tầng và tài nguyên Ethereum hiện có.

Tầm quan trọng của zkEVM

Trước tiên chúng ta cùng điểm lại tầm quan trọng của công nghệ zk. ZKP (zero-knowledge proofs) là một cách để chứng minh một trạng thái là đúng mà không phải tiết lộ thêm bất kỳ thông tin nào, nhờ đó mà người dùng giữ được quyền riêng tư như thông tin cá nhân, bí mật kinh doanh, dữ liệu độc quyền… Đặc biệt trong không gian Web3 thì quyền riêng tư là không thể thiếu. Ví dụ nhờ zk bạn có thể sử dụng web mà ko bị lấy cắp thông tin cá nhân, hay sử dụng dữ liệu độc quyền làm đầu vào để kích hoạt hợp đồng thông minh.

zkEVM tận dụng tài nguyên của Ethereum, tận dụng khả năng mở rộng, tính hợp lệ, chi phí thấp, hiệu quả vốn của công nghệ zk-Rollup và khả năng mang lại quyền riêng tư của của công nghệ zk:

  • Với Layer 2, zk-Rollup ban đầu thiếu khả năng thực thi smart contract, chỉ có thể thực thi swap hay payment đơn giản. Tuy nhiên, với sự ra đời của zkEVM thì zk-Rollup đang hỗ trợ smart contract và giúp các các nhà phát triển dễ dàng phát triển dApp với ngôn ngữ Solidity quen thuộc.
  • Với Layer 1 sử dụng công nghệ zk như Mina thì zkEVM giúp các bằng chứng trạng thái có thể được chứng minh trực tiếp trên Ethereum, từ đó sẽ mở ra cầu nối giữa Mina với công nghệ zk và Ethereum.

Những dự án sử dụng công nghệ ZkEVM

Trên thị trường hiện tại đang có 3 dự án nổi bật. Polygon, zkSync, và Scroll. 

Polygon zkEVM

Vào năm 2021. Polygon đã chi ra tới 250 triệu USD để mua Hermez Network. Một mạng lưới sử dụng Zk rollup. Và đổi tên thành Polygon Hermez. Nhưng vào tháng 07/2022. Polygon đã thông báo đổi tên Polygon Hermez thành Polygon zkEVM. Áp dụng ZkEVM loại 2 để tương thích tốt hơn với EVM. 

Polygon đặt mục tiêu đạt được 2000 giao dịch trên một giây và cắt giảm 90% phí giao dịch. Họ đã ra mắt mạng thử nghiệm công cộng ZkEVM vào ngày 10/10/2022. Và sẽ được mainnet beta vào ngày 27/03/2023. 

Polygon ZkEVM sẽ tương thích với EVM ở cấp độ bytecode. Trong tương lai sẽ cho phép sao chép trực tiếp công cụ và hợp đồng thông minh từ Ethereum qua. Tất cả EVM opcodes sẽ tiếp tục được hỗ trợ.

ZkSync 2.0

zkSync 2.0 là một phiên bản nâng cấp của zkSync. Phiên bản 2.0 được tạo ra để tương thích với Ethereum qua việc các hợp đồng thông minh được viết bằng ngôn ngữ Solidity và Vyper. Nhưng với chi phí thấp hơn.

Giống như Polygon. ZkEVM của dự án zkSync có mã nguồn mở. Nhưng nó chỉ tương thích EVM mở mức độ ngôn ngữ lập trình. 

zkSync 2.0 dễ dàng di chuyển tài sản giữa Layer 1 và Layer 2 một cách nhanh chóng qua cầu nói (cross-chain). Phí giao dịch sẽ thấp hơn 100 lần so với Ethereum và tốc độ khoản 2.000 giao dịch mỗi giây.  

Scroll

Đây là một dự án hỗ trợ mở rộng Ethereum và sử dụng công nghệ ZkEVM. Là một Layer 2 đáng chú ý khi vừa thành công gọi được 50 triệu USD với mức định giá 1.8 tỷ USD.

ZkEVM trên Scroll là loại 2 giống với Polygon nên hoàn toàn tương thích với máy ảo Ethereum (EVM - Ethereum Virtual Machine). Giúp các lập trình viên có thể di chuyển dApp giữa Layer 1 qua Layer 2 mà không cần phải sửa đổi quá nhiều. Rút ngắn thời gian lập trình lại những tính năng cũ. 

Dự án đang ở giai đoạn pre-Alpha testnet. Nhưng đã có 387.000 địa chỉ ví tham gia. 6.300 hợp đồng thông minh được thực thi. Và volume khoảng 32.000 giao dịch một ngày. 

Tổng kết

ZkEVM là một trong những nhân tố quan trọng nhất giúp các nhà phát triển xây dựng/tích hợp dApp của mình trên nền tảng công nghệ zk bằng ngôn ngữ quen thuộc solidity.

ZkEVM giúp cải thiện khả năng mở rộng đáng kể của Ethereum. Mặc dù Ethereum đã nâng cấp lên proof-of-stake với tốc độ nhanh hơn xưa nhiều. Nhưng thị phần Layer 2 vẫn còn rất sôi động và phát triển mạnh mẽ. Chúng như những blockchain vệ tinh xung quanh Blockchain trung tâm là Ethereum để tạo nên một hệ sinh thái khổng lồ.

ZkEVM có thể được áp dụng trong nhiều ngành công nghiệp khác nhau. Nơi mà sự riêng tư của thông tin được đề cao.