Vẻ đẹp của blockchain là sự minh bạch, là tất cả những tham lam và vị tha của các nhà đầu tư đều được phơi bày rõ ràng thông qua những dữ liệu on-chain, nhưng nó cũng đồng nghĩa với việc quyền riêng tư của người dùng blockchain đang bị xâm phạm nghiêm trọng. Trong bài viết ngày hôm nay, hãy cùng đội ngũ Coin68 tìm hiểu một cách toàn diện về công nghệ Zero-Knowledge Proof và zkEVM, một trong những công nghệ đã, đang và sẽ tạo nên xu hướng mới trong lĩnh vực blockchain của tương lai.
Tìm hiểu về zkEVM – Điểm cân bằng giữa “minh bạch” với quyền “riêng tư”
Zero-Knowledge Proof là gì?
Đây là một phương pháp giúp xác thực tính đúng đắn trong thông tin được đưa ra bởi một cá nhân hoặc một tổ chức mà không cần phải tiết lộ toàn bộ chi tiết về thông tin. Để hiểu rõ hơn về Zero-Knowledge Proof, độc giả quan tâm có thể xem thêm bài viết này.
Công nghệ Zero-Knowledge bao gồm 3 tính chất như sau:
- Tính toàn vẹn: Nếu một nhận định được phát biểu bởi một người chứng minh (prover) là đúng thì người xác thực (verifier) phải có khả năng xác minh rằng nhận định này là đúng
- Tính chắc chắn: Nếu một nhận định là sai thì khả năng cao là người xác thực sẽ “vạch trần” được sự dối trá của người chứng minh
- Tính “zero-knowledge”: Nếu một nhận định là đúng thì không cần phải tiết lộ thêm bất kì thông tin gì khác ngoài lời xác thực rằng đây là một nhận định đúng
Cần lưu ý rằng bản chất của công nghệ Zero-knowledge là xác suất, tức vẫn có khả năng một người chứng minh sử dụng một nhận định không chính xác để thành công thuyết phục người xác thực tin vào nhận định này, với một xác suất rất thấp.
Zero-Knowledge Proof cũng được phân ra thành hai loại chính, cụ thể là:
- Interactive zero-knowledge proof: Người chứng minh và người xác thực cần tương tác qua lại nhiều lần để tăng xác suất về tính chính xác của nhận định được đưa ra.
- Non-interactive zero-knowledge proof: Người chứng minh chỉ cần gửi bằng chứng xác thực (proof) cho người chứng thực một lần duy nhất mà không cần tương tác nhiều lần. Mặc dù tiện dụng hơn nhưng phương pháp này cũng tiêu tốn nhiều năng lượng hơn so với phương pháp interactive zero-knowledge proof nêu trên.
Vì sao blockchain lại cần tới công nghệ ZK?
Để giải thích vì sao blockchain lại cần tới công nghệ ZK, hãy quay trở lại thời kì đầu của Internet khi mà các tin nhắn trao đổi trên không gian mạng chưa được mã hóa đầu cuối.
Khi ấy, tất cả các dữ liệu đều “trần trụi” dưới con mắt của các hacker và vì vậy, chúng có thể dễ dàng thực hiện những kiểu tấn công “nghe lén” (eavesdropping) hoặc Man-in-the-Middle (MitM) mà ở đó, chúng lén thay đổi nội dung trao đổi giữa các cá nhân trên không gian mạng nhằm trục lợi cho bản thân.
Cách mã hóa dữ liệu trên mạng Internet. Nguồn: a16z
Với sự xuất hiện của giao thức mã hóa Transport Layer Security, các cuộc hội thoại trên Internet đã được bảo mật tốt hơn. Thế nhưng sự xuất hiện này cũng đã gây ra không ít tranh cãi, đặc biệt là sự phản đối của Cơ quan An ninh Quốc gia Hoa Kỳ (National Security Agency), về việc đánh đổi giữa quyền tự do dân sự với an ninh quốc gia. Tua nhanh đến thời điểm hiện tại, tình thế đã hoàn toàn thay đổi: giao thức mã hóa này đã trở thành một phần bắt buộc đối với các website của chính phủ Mỹ hoặc của các doanh nghiệp riêng lẻ chịu trách nhiệm quản lý thông tin cá nhân của người dùng.
Các giao dịch trên blockchain hiện nay cũng giống như các tin nhắn trên Internet ở thời kỳ đầu vậy: mọi thứ đều được công khai hoàn toàn. Một mặt, điều này sẽ đảm bảo tính “minh bạch” của blockchain nhưng mặt khác, nó cũng khiến sự riêng tư của người dùng gặp rủi ro cao. Nhưng nếu muốn blockchain được ứng dụng rộng rãi hơn trong cuộc sống hằng ngày và tạo ra được một cuộc cách mạng mang tên Web 3.0 như cách Internet đã làm được gần bốn thập kỷ trước, các dữ liệu cần phải được “mã hóa” nhưng đồng thời, tính minh bạch – giá trị cốt lõi của blockchain – vẫn phải được đảm bảo một cách trọn vẹn nhất.
Giao thức mã hóa đã từng áp dụng cho Internet không thể áp dụng được cho blockchain bởi giao thức này chỉ áp dụng cho những kiểu kết nối từ điểm này tới điểm kia (point-to-point) còn các giao tiếp trên blockchain đòi hỏi tất cả mọi người đều có khả năng nhìn thấy mọi thứ đang diễn ra trên mạng lưới. Nếu “mã hóa” tất cả những thứ này thì mạng lưới blockchain sẽ không còn khả năng “xác thực” xem giao dịch nào là hợp lệ và đảm bảo được tính minh bạch cần có nữa.
Cách mã hóa dữ liệu trên mạng Blockchain. Nguồn: a16z
Thế nhưng với công nghệ ZK, tính minh bạch của blockchain sẽ được bảo toàn nhưng vẫn đảm bảo sự riêng tư cho người dùng khi tất cả các giao dịch đều được công khai trên blockchain và tính hợp lệ của chúng sẽ được xác nhận thông qua việc sử dụng ZK proof.
ZK còn được ứng dụng trong việc giải quyết vấn đề mở rộng (scalability) của blockchain: Các dự án Layer 2 sẽ tổng hợp proof (bằng chứng xác thực để xác nhận tính hợp lệ của các giao dịch) rồi sử dụng chúng để giảm thiểu lượng dữ liệu gửi lên blockchain Layer 1, từ đó giúp tăng khả năng mở rộng của Ethereum tốt hơn.
zkEVM là gì?
Tiện dụng là thế nhưng chúng ta cần đối mặt với một thực tại đáng buồn: Blockchain sôi động nhất thế giới – Ethereum – không được thiết kế để tối ưu hóa cho công nghệ ZK.
Chính vì vậy, một cuộc chiến mang tên zkEVM đã nổ ra giữa các dự án Layer 2 lấy công nghệ ZK làm mũi nhọn cho tốc độ nạp/rút trên rollup của mình về Layer 1 Ethereum. zkEVM là một dạng rollup có khả năng tương thích tốt hơn với máy ảo của Ethereum (EVM), từ đó giúp các dApps đang hoạt động trên Layer 1 của Ethereum có thể dễ dàng khởi chạy trên các dự án Layer 2 này hơn.
Hiện tại, cuộc đua zkEVM đang diễn ra với sự xuất hiện của 3 cái tên chính: Polygon, zkSync, và Scroll. Polygon đã tung public testnet cho giải pháp zkEVM của mình vào hôm 10/10 vừa qua, zkSync vẫn đang trong giai đoạn cuối cùng của việc khởi chạy mainnet với zkEVM mang tên HyperChains vào ngày 28/10 tới đây, còn Scroll chỉ mới đang hoàn thành bản nâng cấp Pre-alpha cho testnet của mình.
So sánh các giải pháp zkEVM hiện có của zkSync, Polygon và Scroll
Tuy nhiên, khả năng tương thích với Ethereum và máy ảo của Ethereum sẽ tỉ lệ nghịch với tốc độ tổng hợp proof của công nghệ ZK.
An explainer of the different types of ZK-EVMs and ZK-EVM-like projects out there, and the tradeoffs between them.https://t.co/HAYpNfCHRH
— vitalik.eth (@VitalikButerin) August 4, 2022
Theo bài viết tổng hợp về các giải pháp zkEVM đang được xây dựng trên thị trường của Vitalik Buterin, có bốn nhóm zkEVM chính như sau:
Nhóm 1: Hoàn toàn tương thích với Ethereum
- Không đòi hỏi bất kì điều chỉnh gì từ node của Ethereum.
- Lợi thế là có thể tái sử dụng rất nhiều phần trong cơ sở hạ tầng của Ethereum, ví dụ như các công cụ block explorer hay block production.
- Khuyết điểm lớn nhất là thời gian để tạo proof cho các block trên Ethereum sẽ diễn ra rất lâu vì thiết kế của Ethereum không được tối ưu hóa cho công nghệ ZK.
Nhóm 2: Tương thích với EVM (máy ảo Ethereum)
- Ethereum node vẫn được sử dụng nhưng với một chút thay đổi.
- Về cơ bản thì các DApp hoạt động trên Ethereum vẫn có thể hoạt động trên các ZK-rollups thuộc nhóm này.
- Thời gian xác thực các bằng chứng nhanh hơn so với các rollup trong nhóm 1 nhưng vẫn bị xem là chậm.
Nhóm 2.5: Tương thích với EVM (ngoại trừ phần chi phí gas)
- Tăng phí gas để cải thiện tốc độ tạo proof, ngoài ra không thay đổi những phần khác của EVM.
- Thay đổi phí gas có thể làm giảm khả năng tương thích của một số ứng dụng nhưng sự can thiệp này. được. Được xem là “nhẹ tay” nhất so với việc phải thay đổi nhiều chi tiết cốt lõi hơn trong EVM.
Nhóm 3: Gần như tương thích với EVM
- Không hoàn toàn tương thích với EVM để cải thiện tốc độ tạo proof nhưng đồng thời vẫn giúp các DApps dễ dàng được triển khai tại đây.
- Một số ứng dụng khi triển khai trên các rollups thuộc nhóm 3 vẫn cần phải cải biên lại.
- Giải pháp hiện tại của Polygon và Scroll được Vitalik xếp vào nhóm này nhưng trong tương lai khi một số bộ tiền xử lý (pre-compiler) được bổ sung thêm, các giải pháp này sẽ cải thiện được mức độ tương thích và nhích dần lên các nhóm 1, 2, 2.5 ở phía trên.
Nhóm 4: Tương thích với các ngôn ngữ lập trình bậc cao
- Chuyển code của các hợp đồng thông minh được viết ở các ngôn ngữ như Solidity, Vyper,… sang một ngôn ngữ khác được thiết kế để sử dụng công nghệ ZK tốt hơn.
- Ưu điểm tất nhiên là quá trình tạo proof sẽ nhanh hơn.
- Nhược điểm là tính tương thích kém với các ứng dụng trên Ethereum và vì vậy, các ứng dụng được xây dựng trên rollups thuộc nhóm 4 cũng sẽ không thể tận dụng lại các cơ sở hạ tầng sẵn có dành cho các ứng dụng trên Ethereum.
- Giải pháp của StarkWare và zkSync thuộc nhóm này, vì nó cần tới một ngôn ngữ lập trình riêng là Cairo và Zinc để giúp tác vụ tạo proof trở nên nhanh chóng hơn.
So sánh giữa các giải pháp zkEVM hiện nay
Tổng kết
Tóm lại, chúng ta sẽ nhìn thấy sự đánh đổi giữa sự tương thích với Ethereum và tốc độ tổng hợp proof của các giải pháp zkEVM. Giống như từ xe đạp, xe đạp điện, xe máy đến xe hơi, sẽ có sự đánh đổi về mức độ tiện lợi và tốc độ của mỗi phương tiện. Xe đạp mặc dù nhanh gọn hơn nhưng sẽ tiêu tốn sức lực cho người dùng nhiều hơn; ngược lại, xe hơi tuy nhanh hơn về tốc độ nhưng người dùng cũng dễ gặp vấn đề về việc kẹt xe hoặc không tìm được chỗ đỗ xe phù hợp.
Mỗi phương tiện và giải pháp đều sẽ có ưu nhược điểm riêng, tùy vào mục đích sử dụng của mỗi cá nhân/mỗi dự án mà các lựa chọn và quyết định được đưa ra để đảm bảo sản phẩm cuối cùng sẽ đạt được hiệu quả cao nhất cho tất cả mọi người.
Mai Phan
Xem thêm các bài viết khác của tác giả Mai Phan: