Vài ngày trước, bài viết Non-EVM vs EVM Chain đã có nói về việc độc quyền giữa EVM Chain và non-EVM Chain và sau đó là về Rollups, một trong những giải pháp mở rộng hứa hẹn nhất của Ethereum. Hôm nay, bài viết này sẽ đề cập thêm về một giả định về sự tiến hóa của EVM, đó chính là ZK-EVM.
Vài ngày gần đây, Matic, ZKSync và ZKScroll. Những dự án lớn nghiên cứu và phát triển ZKRollups cho Ethereum đều đã công bố kế hoạch cho ZK-EVM của mình.
ZK-EVM trước giờ vẫn luôn là cải tiến được mong chờ nhất trong cộng đồng của Ethereum nói riêng và blockchain nói chung. Điều đáng được mong chờ ở đây đó là việc mở rộng cho chính Ethereum nhưng vẫn giữ nguyên tính decentralized cho mạng lưới.
ZK-EVM thật ra có đến 3 levels. Bên dưới sẽ là sơ đồ break-down và giải thích các level này cho mọi người dễ hiểu.
Language Level
Level đầu tiên chính là “Language Level” hay còn gọi là level tương thích với máy ảo của Ethereum (EVM-compatible).
Ở level này, các VM trên Rollups sẽ dùng một trình phiên dịch để phiên dịch Solidity code thành những ngôn ngữ thân thiện với zero-knowledge tech như là Zinc của ZKSync hay Cairo của Starkware. Điều này giúp cho lập trình viên Solidity sẽ không tốn thời gian học lại ngôn ngữ mới mà có thể tạo các dApps tương thích với VM trên Rollups (zkVM).
Điểm mạnh của level này là các dự án Rollups không còn bị gò bó bởi sự giới hạn của Ethereum Virtual Machine mà có thể tự tạo cho mình ZK-VM tương thích với zero-knowledge tech.
Lý do tại sao không tích hợp các ZK-SNARK circuits (những modules để mã hóa các giao dịch trực tiếp vào EVM) là vì khi Gavin Wood thiết kế Ethereum Virtual Machine, ông chưa từng nghĩ về việc tích hợp ZK-SNARKs. Cho nên nếu cố găng chèn những circuits này vào thì sẽ làm tăng chi phí giao dịch lên rất nhiều.
Điểm yếu của việc phiên dịch code từ Solidity sang ngôn ngữ lập trình khác chính là trình độ hay kinh nghiệm của những lập trình viên. Những ZK-VMs này sử dụng quy tắc lập trình riêng nên cho dù có phiên dịch từ Solidity sang thì cũng sẽ không bao hàm được hết các logic của Cairo hay Zinc và ngược lại Cairo hay Zinc cũng sẽ không tương thích hoàn toàn với các logic chỉ có ở Ethereum Virtual Machine.
Việc này dẫn tới những rắc rối khi các Smart Contract developers sẽ phải từ bỏ Solidity và học thêm Cairo hoặc Zinc. Vì vậy, Rollups sẽ không thừa hưởng được hệ sinh thái của Ethereum mà phải build lại từ đầu, các Layer 2 cũng không có sự thống nhất với nhau về Virtual Machine và điều này tạo nên sự chia rẽ, dễ dàng mất đi network effect.
Bytecode Level
Level thứ 2 chính là “Bytecode Level”.
Ở level này gần như coding experience trong Solidity sẽ tương đương với việc code các dApps ở trên ETH. Các dApps developers sẽ không cần học lại ngôn ngữ mới mà có thể clone projects của mình và deploy trên Rollups State Machine.
Hiện Ethereum Foundation, Polygon Hermez và Scroll ZKP đang nhắm đến việc đưa EVM lên Rollups của mình. Chỉ khi nào VM trên ZK-Rollups đạt được độ tương thích ở Bytecode Level thì mới được gọi là ZK-EVM.
Điểm mạnh: Clone projects rất dễ, đẩy nhanh sự phát triển của hệ sinh thái, người dùng có thể bỏ qua Ethereum và nhảy lên chơi trên các ZK-Rollups liền vì đã đủ đồ nghề.
Điểm yếu: Đây là một bước khá phức tạp, cần nhiều thời gian để phát triển, việc này còn khó khăn hơn với Stark-Based Rollups. Các dự án thường sẽ chọn phương án phiên dịch để tiếp cận với người dùng trước.
Rollups Builders sẽ phải cân nhắc giữa việc bỏ thời gian và nguồn lực để build ZK-EVM (Bytecode Level) với việc sử dụng trình phiên dịch tạm bợ để dựng lên một dự án và thu hút người dùng. Hưởng lợi thế từ “First-mover advantage”. So với việc Optimistic Rollups rất dễ để build Bytecode Level OVM, việc chậm chân cũng sẽ khiến khả năng cạnh tranh được bị giảm.
Consensus Level
Level cuối cùng chính là Consensus Level. Để đạt được việc này thì ZK-EVM cũng sẽ phải đạt được 2 level trước. Đối với khả năng tương thích của Consensus Level, thì cứ mỗi khi tạo block, validators cũng sẽ tạo ra proof cho block đó. Những nodes khi cần đồng bộ để xác minh giao dịch sẽ không cần phải tải lại toàn bộ chain mà chỉ cần xác minh proof được tạo ra từ block trước đó.
Đây sẽ là bước đi táo bạo đòi hỏi miner sẽ phải chạy phần mềm tương thích với ZK. Nó thay đổi gần như hoàn toàn cách xác minh giao dịch của Ethereum. Về lâu dài, nếu như điều này thành hiện thực thì có thể các nodes chỉ mất vài phút hoặc thậm chí vài giây để đồng bộ mạng lưới ETH. Lúc này ETH sẽ trở nên phi tập trung và bền vững hơn.
Việc chạy node cho ETH cũng sẽ giảm nhiều chi phí phần cứng hơn, thu hút nhiều miners tham gia hơn, dẫn đến decentralized hơn.
Ngoài ra, với việc áp dụng ZK ở Consensus Level sẽ giúp Ethereum có sẵn tính năng Privacy. Thật ra, thiết kế này khá giống với Mina Protocol. Khó khăn của Mina Protocol chính là không có Bytecode Level EVM, nên việc thu hút Users/ Devs tham gia xây dựng cũng khó khăn hơn.