Quyền riêng tư luôn được coi là một trong những tính năng quan trọng nhất đối với cộng đồng tiền điện tử. Bởi lẽ, hầu hết chủ tài sản đều không muốn thông tin tài sản và hồ sơ giao dịch của mình bị tiết lộ. Trong số các công nghệ mã hóa cung cấp tính bảo mật, Zero-Knowledge Proof (ZKP) là một trong những công nghệ quan trọng hàng đầu. Bài viết này không nhằm giới thiệu kiến thức về cryptography (mã hóa) chuyên nghiệp mà sẽ mang đến cho các bạn bức tranh tổng quát nhất về hệ thống ZKP cũng như quy mô phát triển hiện tại của nó.
1. Sự phát triển của công nghệ ZKP
1.1 Khái niệm ZKP
ZKP là một phần không thể thiếu trong cryptography hiện đại, cho phép người dùng thuyết phục người xác minh một tuyên bố nhất định là đúng mà không cần cung cấp thông tin cụ thể. ZKP về bản chất là một giao thức liên quan đến hai hoặc nhiều bên để hoàn thành nhiệm vụ. Người xác minh tin tưởng đối phương biết hoặc sở hữu một thông điệp nào đó, song thông điệp sẽ không được tiết lộ trong suốt quá trình ZKP. Nói tóm lại, công nghệ ZKP xác thực thông tin cần thiết nhưng người xác minh không được biết rõ thông tin đó là gì.
Bản thân ZKP không sử dụng các thuật toán mật mã quá phức tạp. Dưới đây là một ví dụ minh họa đơn giản cho ZKP:
Một nhóm người được yêu cầu truy tìm con gấu trúc ẩn náu trong bức tranh. Xiao A là người đầu tiên phát hiện ra con gấu, song ông ấy không thể công khai chỉ ra vị trí của nó vì việc này sẽ can thiệp vào trải nghiệm của những người chơi khác.
Vậy làm cách nào để Xiao A chứng minh rằng ông ấy biết con gấu đang ở đâu mà không cần nói ra đáp án?
Xiao A lấy một tờ giấy trắng thật to và phủ lên toàn bộ bức tranh. Sau đó, ông khoét một lỗ nhỏ trên tờ giấy trắng để con gấu trúc lộ ra.
Bằng cách này, vị trí của con gấu trúc (tương đương với thông tin quan trọng) vẫn được bảo mật, đồng thời Xiao A có thể chứng minh ông đã tìm được con gấu trúc mà không cần trực tiếp chỉ ra. Đây gọi là Zero-Knowledge Proof.
Phương pháp xác minh ZKP đề cao độ toàn vẹn và độ tin cậy. "Độ toàn vẹn" nghĩa là người dùng có thể thuyết phục người xác minh thông tin mình cấp là chính xác. "Độ tin cậy" là người dùng không thể làm cho người xác minh chấp nhận một tuyên bố sai lệch. Tuy nhiên, trên thực tế, độ tin cậy vẫn chỉ mang tính tương đối, dù rằng xác suất người khai gian cực kỳ thấp.
Độ tin cậy của ZKP phụ thuộc vào hai yếu tố: độ khó của bằng chứng và mức độ tương tác. Độ khó của bằng chứng tăng khi trực tiếp gia tăng độ khó về mặt toán học; mức độ tương tác nghĩa là người xác minh cần liên tục đặt câu hỏi cho người dùng. Khi lượng tương tác tăng lên, xác suất nói dối của người dùng cũng sẽ giảm vì họ khó có thể cung cấp bằng chứng mà không biết rõ thông tin chính xác.
1.2 Quá trình phát triển của thuyết ZKP
Khái niệm ZKP lần đầu được đề ra bởi S. Goldwasser, S. Micali và C. Rackoff vào năm 1985. Trong bài viết của mình, ông đề cập đến "tương tác", "tính ngẫu nhiên" và xây dựng một "hệ thống bằng chứng tương tác" sơ khai. Bằng chứng tương tác đòi hỏi người xác minh liên tục đặt một loạt câu hỏi về "thông tin" mà người dùng sở hữu, qua đó người dùng có thể thuyết phục người xác minh họ thực sự biết "thông tin" này. Càng đặt ra nhiều câu hỏi, tương tác càng tăng. Tuy nhiên, cách tiếp cận như cậy khiến nhiều người hoài nghi mức độ đáng tin của người dùng và người xác minh. Họ cho rằng hai bên có thể thông đồng trước để người dùng có thể có được đáp án và được hệ thống thông qua.
Mười năm sau, nhiều nhà mã hóa huyền thoại đã có đóng góp quan trọng vào sự phát triển của ZKP. M. Blum, P. Feldman và S. Micali chỉ ra "tương tác" và "ngẫu nhiên" là không cần thiết. Họ đề nghị một hệ thống bằng chứng không tương tác (non-interactive proof) dựa trên mô hình chuỗi tham chiếu CRS (Common Reference String). Đúng như tên gọi bằng chứng không tương tác, người dùng không cần tương tác với người xác minh mà chỉ cần đặt ra một tập hợp các tham số công khai trong hệ thống. Giao dịch sẽ được xác minh qua các tham số của ZKP. Điều này cũng đồng nghĩa người dùng có thể tạo ra bằng chứng một cách độc lập, tránh khả năng thông đồng giữa người dùng và người xác minh.
Năm 2010, Jens Groth đề xuất Knowledge of Exponent Assumption (KEA). Giả định, vốn gây tranh cãi lúc bấy giờ, rút ngắn độ dài bằng chứng xuống một ngưỡng nhất định bằng cách ẩn một số giá trị bí mật ngẫu nhiên trong CRS. Quá trình này có thể hiểu là tạo ra một bí mật mà chỉ hệ thống mới "biết", và bất kỳ ai biết cách tạo ra tham số công khai này đều có thể giả mạo bằng chứng. Quá trình này gọi là "initial trusted setting" (khởi tạo thiết lập tin cậy). Mặc dù có ưu thế giảm đáng kể độ dài bằng chứng, đề xuất lại tiềm ẩn rủi ro bảo mật. Tuy nhiên, giả định của Groth đã lót đường cho một phân nhánh quan trọng của ZKP vào thập kỷ tới.
Với sự phát triển không ngừng của thuyết ZKP, các nhà mã hóa bắt đầu tiến hành nghiên cứu chuyên sâu theo hướng kỹ thuật. Năm 2013, dựa trên công trình của Jens Groth vào năm 2010, Rosario Gennaro, Craig Gentry và đồng nghiệp đã thực hiện một mô hình cải tiến tối ưu hơn, giúp rút ngắn đáng kể thời gian thử nghiệm và giảm độ dài thử nghiệm xuống ngưỡng thấp hơn. Sau đó, Parno et al. đã triển khai một giao thức máy tính có thể kiểm chứng trên cơ sở này với tên gọi Pinocchio. Nhóm nghiên cứu sau đó lại tiếp tục tối ưu hóa và cải tiến chương trình.
Năm 2014, đồng tiền tư nhân được mã hóa ZeroCash ra đời. Eli Ben-Sasson, Alessandro Chiesa cùng những người khác đã cải thiện giao thức Pinocchio, đánh dấu lần đầu tiên công nghệ ZKP được triển khai thành công trong lĩnh vực blockchain. ZeroCash là tiền thân của Zcash và đội ngũ Zcash cũng đã có những đóng góp to lớn cho kỹ thuật ZKP.
1.3 Tình trạng phát triển của ZKP
Sự kết hợp giữa công nghệ ZKP và Zcash thu hút sự chú ý về tiềm năng tương lai trong lĩnh vực blockchain, đồng thời là thực tiễn quan trọng để ZKP có thể chuyển từ gia đoạn lý thuyết sang ứng dụng.
Hiện tại, người ta chủ yếu áp dụng các phương pháp sau. Mỗi sơ đồ đại diện cho một phương pháp ZKP khác nhau và các phương pháp thực hành khác nhau sẽ tạo ra hiệu ứng khác nhau, phản ánh ở tính bảo mật, kích thước bằng chứng, tốc độ tính toán và tốc độ xác minh.
Trục hoành thể hiện kích thước của bằng chứng, trục tung thể hiện giả thuyết bảo mật. Trong số đó, thuật toán STARK là an toàn nhất, không dựa vào giả định về độ khó toán học và có khả năng chống lượng tử. Kích thước bằng chứng nhỏ nhất là thuật toán Groth16 trong lược đồ SNARK. PLONK, một trong những chương trình SNARK, có kích thước bảo mật và bằng chứng ở mức trung bình. Hiện nay, zk-STARK và zk-SNARK được sử dụng rộng rãi nhất.
1.3.1 zk-SNARK
SNARK (Succinct Non-Interactive Argument of Knowledge) có đặc điểm súc tích, nghĩa là quá trình xác minh không yêu cầu lượng dữ liệu lớn và thuật toán xác minh cũng đơn giản. Thời gian xác minh không tăng theo cấp số nhân với thông lượng tính toán. Thứ hai, bằng chứng không tương tác chính là một phần thông tin do người dùng gửi đến người xác minh, làm cho toàn bộ quá trình xác minh hiệu quả hơn. Groth16 hiện là zk-SNARK có tốc độ xác minh nhanh nhất, lượng dữ liệu nhỏ nhất và Zcash là ứng dụng đầu tiên của nó được phát hành rộng rãi. Sau khi Groth16 được tiếp tục tối ưu hóa trên giao thức Pinocchio, kích thước bằng chứng giảm đi gần một nửa, đồng thời bảo mật được tăng cường.
Tuy nhiên, điểm gây tranh cãi của lược đồ Groth16 là "initial trusted setting", vì các giá trị ngẫu nhiên ẩn trong CRS thường được xây dựng bởi một nhóm nhỏ. Bên cạnh đó, về lý thuyết, nếu hiệu suất máy tính của người dùng đủ mạnh, các bằng chứng sai lệch có thể sẽ ảnh hưởng đến an ninh của toàn bộ hệ thống. Đó là lý do tại sao nhiều người lo ngại máy tính lượng tử có khả năng đe dọa đến các thuật toán. Do đó, "initial trusted setting" cũng là vấn đề cốt lõi mà các công nghệ ZKP khác đang nỗ lực khắc phục. Thuật toán PLONK cũng là một cải tiến cho trusted setting và sự khác biệt giữa hai thuật toán sẽ được phân tích chi tiết sau.
Để giải quyết vấn đề này, nhà mật mã học Benedikt Bünz của Stanford và đồng nghiệp đề xuất công nghệ Bulletproof (Bulletproof Proof). So với zk-SNARK trước đó, Bulletproof không cần initial trusted setting, nhưng thời gian tính toán và xác minh lâu hơn STARK. Trong khi đó, STARK nhỏ hơn nhiều và đã được dự án Monero áp dụng ngay khi được đề ra.
1.3.2 zk-STARK
STARK (Scalable Transparent Argument of Knowledge) có thể hiểu là thông tin minh bạch có thể mở rộng, được tạo ra để thay thế SNARK. Khác với "S" trong SNARK (succint – súc tích), chữ "S" của STARK là chữ viết tắt của "scalable – khả năng mở rộng". Mô hình này có ưu điểm là khi khả năng mở rộng của STARK tăng lên, độ phức tạp bằng chứng của STARK không tăng theo.
Điều quan trọng hơn cả là STARK không yêu cầu initial trusted setting, vì chúng dựa vào phương pháp mã hóa đối xứng hơn là thông qua xung đột hàm băm. Đây cũng là phần "transparent – minh bạch" của STARK.
Cải tiến thứ ba của STARK so với SANRK là khả năng chống lại điện toán lượng tử. Nói cách khác, nó không thể bị bẻ khóa bằng điện toán lượng tử. Tất nhiên, những cải tiến này cũng đi kèm với sự hy sinh. So với SNARK, STARK phức tạp hơn, kích thước bằng chứng tăng từ 288 byte lên vài trăm KB và mức phí xác minh Ethereum cũng cao hơn.
1.3.3 Sơ đồ ZKP cho các trusted setting
Mặc dù hệ thống ZKP dựa trên trusted setting cần tạo ra các tham số công khai, chúng được chứng minh là có ợi thế riêng về chi phí tính toán và kích thước bằng chứng. Vì vậy, chúng vẫn được lựa chọn cho nhiều ứng dụng blockchain đề cao quyền riêng tư.
Tính bảo mật của các hệ thống ZKP cần trusted setting phần lớn có thể đến từ tính bảo mật của việc tạo tham số công khai. Quá trình này có thể được thực hiện một cách minh bạch, tập trung, nhưng không phù hợp với mục tiêu phi tập trung. Cho đến nay, kỹ thuật được ưu tiên sử dụng trong các trusted setting là Thuật Toán Bảo Mật Đa Thành Viên (Multi-Party Secure Computing – MPC).
Mục đích của MPC là đảm bảo không bên nào có thể tạo ra hoặc có được thông tin về cấu trúc toán học cơ bản của tham số. MPC thực hiện việc này bằng cách yêu cầu quá trình tạo tham số phải được chia sẻ giữa càng nhiều người tham gia độc lập càng tốt. Chỉ một vài hoặc thậm chí là một người cần hành động trung thực để duy trì tính bảo mật cho thiết lập. Số lượng người tham gia càng đông thì tính bảo mật của thông số càng cao.
Zk-SNARK là một sơ đồ ZKP dành cho các trusted setting. Trong hành trình phát triển, nhiều thuật toán khác nhau đã được tạo ra. Groth 16 và PLONK là chương trình kiểm chứng thông tin không có trusted setting được sử dụng rộng rãi nhất. Sự khác biệt giữa hai chương trình là:
Groth16 là giải pháp có tốc độ xác minh nhanh nhất với lượng dữ liệu nhỏ nhất. Tuy nhiên, vì phép tính bí mật của Groth16 có liên kết với những vấn đề nhất định nên mỗi lần giả quyết một vấn đề khác nhau, Groth16 phải khởi động lại vòng trusted setting MPC tương ứng. Giao thức tính toán yêu cầu sự tham gia của nhiều bên thường cực kỳ cồng kềnh, gây ảnh hưởng lớn đến hiệu suất của Groth16.
PLONK là phiên bản cải tiến của Sonic với thời gian thử nghiệm giảm 5 lần. Sonic là một sơ đồ CRS toàn cầu luôn sẵn sàng cập nhật, nghĩa là cơ chế cài đặt trước tin cậy (trusted preset) có thể được cập nhật bất kỳ lúc nào, miễn là mọi người nghi ngờ bí mật đã bị lộ. Còn đặc điểm "toàn cầu" hàm ý quá trình tính toán không còn bị ràng buộc với CRS và một ứng dụng chỉ cần hoàn thành trusted setting một lần để thực hiện các phép tính ZKP khác nhau. Có nghĩa là, trusted setting chỉ cần được thiết lập một lần và không cần thực hiện MPC mới trừ khi cần cập nhật. Dưới đây là số liệu so sánh hiệu suất giữa Groth16 và PLONK.
Thuật toán PLONK là sự hợp tác giữa Gabizon, nhà nghiên cứu từ Protocol Labs và hai nhà nghiên cứu từ Aztec Protocol, giao thức giao dịch bảo mật của Ethereum. PLONK được đề xuất muộn hơn Groth16 và có phần thua kém Groth16 về kích thước bằng chứng và tốc độ xác minh, nhưng dựa trên tính năng trusted setting có thể cập nhật, thuật toán PLONK chiếm vị trí quan trọng trong lĩnh vực ZKP.
2. Ứng dụng công nghệ ZKP
Hai tính năng quan trọng của công nghệ ZKP trong lĩnh vực blockchain bao gồm: 1) ZKP có thể bảo vệ quyền riêng tư của dữ liệu và chứng minh nó mà không bị rò rỉ thông tin; 2) ZKP chỉ cần tổng hợp một lượng dữ liệu bằng chứng nhỏ để chứng minh cho các lô dữ liệu lớn, từ đó đóng vai trò quan trọng trong việc nén dữ liệu và cải thiện hiệu suất.
Ta có hai ứng dụng chính của ZKP như sau:
2.1 Bảo vệ quyền riêng tư
Bảo vệ quyền riêng tư luôn là một khái niệm cực kỳ quan trọng trong blockchain, đại diện cho khả năng bảo vệ các giao dịch và người tham gia trong một mạng lưới phân tán. Blockchain luôn hỗ trợ tính ẩn danh cho người dùng. Trong hầu hết giao dịch, mặc dù người tham gia giao dịch không cần sử dụng tên thật, họ vẫn có thể xác nhận giao dịch bằng cách sử dụng public key của hàm hash làm định danh giao dịch. Do đó, loại giao dịch này chỉ dùng tên giả chứ không đạt được tính ẩn danh thực sự. Theo mặc định, mọi giao dịch của người dùng đều được công khai. Khi địa chỉ người dùng bị khóa, nguồn tiền, vị trí hay thậm chí hoạt động on-chain của người dùng có thể được tìm thấy thông qua địa chỉ.
Công nghệ ZKP có thể xác nhận tính hợp lệ của giao dịch bằng cách gửi một chứng chỉ (certificate) ẩn danh hoàn toàn thông tin giao dịch. Trong thời kỳ mà vấn đề bảo mật mã hóa được chú trọng, nhiều nhà phát triển đã dành hết tâm huyết vào việc nghiên cứu các public chain về quyền riêng tư. Khả năng bảo vệ quyền riêng tư và khả năng nén dữ liệu của ZKP là lý do quan trọng để nó được phát triển thành công nghệ cấu thành public chain. Trong giai đoạn này, Zcash, Monero và các dự án khác đều tỏa sáng.
Chẳng hạn, ZCash lần đầu tiên áp dụng giao thức Pinocchio và chuyển sang hệ thống Groth16 vào năm 2019. Địa chỉ ví ZCash được chia thành hai loại: địa chỉ ẩn (hidden address) và địa chỉ minh bạch (transparent address). Giao dịch giữa các địa chỉ minh bạch hoàn toàn giống giao dịch Bitcoin: người gửi, người nhận và số tiền giao dịch được hiển thị công khai. Giao dịch giữa các địa chỉ ẩn cũng xuất hiện công khai trên blockchain, nhưng địa chỉ và tiền của giao dịch được mã hóa, sau đó zk-SNARK chứng minh tính hợp lệ của giao dịch theo bộ quy tắc đồng thuận của mạng. Ngoài ra, địa chỉ ẩn và địa chỉ minh bạch cũng có thể thực hiện giao dịch với nhau. ZCash dung hòa hai yếu tố: bảo vệ quyền riêng tư nhưng đồng thời kiểm tra, giám sát giao dịch. Cả người gửi và người nhận giao dịch thuộc địa chỉ ẩn đều có thể tiết lộ chi tiết giao dịch cho bên thứ ba để đáp ứng yêu cầu giám sát.
2.2 Mở rộng
Impossible Triangle là một vấn đề muôn thuở mà các blockchain L1 như Ethereum phải đối mặt. Quả thực, họ luôn phải tìm cách cân bằng ba nhân tố phi tập trung, bảo mật và khả năng mở rộng. Ethereum hướng tới đặc điểm phi tập trung và bảo mật nên bị hạn chế về khả năng mở rộng. Không chỉ vậy, chi phí gas cao và thời gian xác nhận giao dịch lâu trên Ethereum ảnh hưởng rất nhiều đến trải nghiệm của người dùng. Do đó, đội ngũ phát triển chủ chốt và cộng đồng Ethereum đã và đang nghiên cứu nhiều kế hoạch mở rộng khác nhau.
Có hai cách để mở rộng blockchain: 1) Mở rộng chính blockchain layer 1, bao gồm tăng kích thước khối, hay còn gọi là sharding, tức là chia các node trong mạng blockchain thành một số node tương đối độc lập. Sharding sẽ chỉ chịu trách nhiệm cho một phân đoạn nhỏ và lưu trữ một phần trạng thái mạng. Tiếp đến, nhiều phân đoạn sẽ cùng xử lý các giao dịch song song. Về lý thuyết, thông lượng của toàn bộ mạng lưới sẽ được cải thiện. Tuy nhiên, cách tiếp cận này lại khuyết đi tính phi tập trung. 2) Các giao dịch trên layer 1 được chuyển đến layer 2. Layer 2 sẽ tổng hợp các giao dịch và gửi chúng đến layer 1 để xử lý. Bằng cách này, thay vì trả phí gas cho mỗi giao dịch, bạn sẽ trả phí gas cho từng đợt giao dịch. Do đó, tất cả các giao dịch đều chia sẻ phí gas như nhau, giúp giảm chi phí hiệu quả. Theo cách này, layer 1 trở thành layer thanh toán cho tất cả các giao dịch được thực hiện trên layer 2. Sơ đồ mở rộng layer 2 có thể giải quyết vấn đề về khả năng mở rộng của layer 1 mà vẫn đảm bảo tính phi tập trung và bảo mật.
Tất nhiên, sơ đồ mở rộng layer 2 cũng đã trải qua quá trình phát triển từ state channel sang Plasma, tiếp đến là Rollup. Hiện tại, Rollup là layer 2 chính thống và có tiềm năng phát triển nhất. Ở Rollup, các tính toán phức tạp và bảo trì trạng thái được thực hiện off-chain, sau đó dữ liệu liên quan đến các thay đổi trạng thái được truyền đi thông qua hợp đồng. Tiếp đến, CALLDATA với mức giá rẻ được dùng để lưu dữ liệu on-chain và tổng hợp một lượng lớn giao dịch thành một giao dịch duy nhất.
Điểm chung của Rollup Scheme là nhấn mạnh tính khả dụng của dữ liệu on-chain, nghĩa là bất kỳ ai cũng có thể khôi phục trạng thái toàn cục dựa trên dữ liệu được lưu. Từ đó, ta có thể loại bỏ rủi ro bảo mật do vấn đề về khả năng cung cấp dữ liệu gây ra. ZKP đóng vai trò đảm bảo tính chính xác của dữ liệu trong khi nén dữ liệu.
Sơ đồ ZK Rollup bắt đầu từ nửa cuối năm 2018. Chìa khóa của sơ đồ này nằm ở ZK. Mỗi quá trình chuyển đổi trạng thái của ZK cần phải cung cấp ZPK và được xác minh bởi hợp đồng trên chain chính. Chỉ sau khi xác minh được thông qua, trạng thái mới có thể thay đổi. Quá trình chuyển đổi trạng thái của ZK Rollup hoàn toàn dựa vào các bằng chứng mật mã.
Tất nhiên, vẫn có những mô hình Rollup khác, chẳng hạn như Optimistic Rollup, được thành lập vào nửa cuối năm 2019. Việc chuyển đổi trạng thái không yêu cầu xác minh nghiêm ngặt. Đầu tiên, nó giả định rằng quá trình chuyển đổi là đúng, sau đó quá trình chuyển đổi có thể bị kiểm tra trong một giới hạn thời gian nhất định. Nếu không thông qua thành công, điều này chứng tỏ lần gửi trước có vấn đề, người cam kết sẽ bị phạt và trạng thái trở về như cũ. Sự chuyển đổi trạng thái của Optimistic Rollup phụ thuộc vào các động lực kinh tế và game.
Vấn đề nổi cộm của ZK Rollup là khó đạt được khả năng lập trình, song máy ảo của ZkSync có thể tạo điều kiện cho việc đó. Tuy nhiên, cần có các trung gian cung cấp dịch vụ thanh toán trước để giải pháp Optimistic Rollup có thể được triển khai nhanh hơn.
So sánh hiệu suất giữa hai loại được thể hiện ở dữ liệu dưới đây.
So với Optimistic Rollup, giải pháp ZK Rollup rất phức tạp về mặt kỹ thuật, đòi hỏi nhiều thuật toán, thời gian trì hoãn giao dịch cũng lâu hơn với chi phí tính toán cao hơn. Tuy nhiên, phí cho mỗi giao dịch cũng như chi phí xác minh lại thấp hơn nhiều.
Theo dữ liệu mới nhất từ I2beat.com, quy mô tài sản bị khóa của giải pháp bậc hai là khoảng 6,7 tỷ đô la Mỹ. Giải pháp mở rộng bậc hai Optimistic Rollup, do Arbitrum and Optimism đề xuất và được giới thiệu ra thị trường lần đầu, hiện chiếm một nửa trong số đó. Quy mô của tài sản bị khóa trong ZKP chỉ vào khoảng 1,7 tỷ đô la Mỹ do việc triển khai kỹ thuật khó hơn, và việc xây dựng các ứng dụng sinh thái chưa thực sự được thực hiện.
3. Các dự án ZKP nổi bật
Mặc dù vào giai đoạn đầu, Zcash và Monero đều bảo vệ quyền riêng tư rất tốt, chúng chỉ có thể được sử dụng như một phương tiện lưu trữ giá trị và tính ứng dụng không đa dạng. Nhiều nhà phát triển đang nỗ lực kết hợp các ZKP với hợp đồng thông minh để khai thác triệt để tiềm năng của ZKP. Các ứng dụng hiện tại có thể được chia thành ba loại.
3.1 Mina
Mina được thành lập vào năm 2017 với tên gọi Coda Protocol. Đội ngũ phát triển của Mina là O (1) Labs, hiện gồm có các nhà mật mã học, kỹ sư, tiến sĩ và doanh nhân hàng đầu thế giới.
Mina tập trung xây dựng các lightweight blockchain. So với Ethereum và Bitcoin thường có kích thước khối ở khoảng vài trăm GB, kích thước khối của Mina được duy trì ở mức 22 KB, cho phép hầu hết mọi người tham gia và trở thành node. Việc triển khai node với ngưỡng thấp sẽ tăng khả năng tiếp cận đến lượng người dùng đa dạng và người dùng có thể dễ dàng truy cập và triển khai node. Điều này cũng làm cho mạng phân tán hơn và cải thiện bảo mật hơn.
Chìa khóa giúp Mina có khả năng duy trì kích thước không đổi là "recursive ZKP" (ZKP tuần hoàn). Mỗi khi một khối được tạo ra, khối đó sẽ được nén thành một bằng chứng duy nhất nhờ vào công nghệ zk-SNARK. Mỗi bằng chứng SNARK mới sẽ được tích hợp với bằng chứng cũ, do đó các node chỉ cần xác định bằng chứng này thay vì lần lại toàn bộ lịch sử giao dịch.
Tuy nhiên, đây chỉ mới là bước đầu tiên. Blockchain có đặc điểm là mỗi block luôn phải tham chiếu trên block trước đó. Nếu chỉ tạo bằng chứng SNARK cho mỗi khối, dung lượng tổng thể của nó vẫn sẽ mở rộng tuyến tính. Vì vậy, Mina sẽ tạo ra recursion (tuần hoàn) giúp các SNARK được liên kết với nhau theo cấu trúc tuần hoàn, đảm bảo đạt được kích thước khối 22 KB không đổi.
Ngoài ra, Mina đã xây dựng một hệ sinh thái nhằm bảo vệ quyền riêng tư của dữ liệu của ZKP. Ứng dụng sinh thái Snapps (hiện đã được đổi tên thành zkApps) có thể triển khai logic nghiệp vụ tương ứng cho một số tình huống. Ngoài ra, ứng dụng cũng có thể kết nối với các công ty đại chúng khác thông qua bridge chuyển giao, qua đó tăng cường khả năng tương tác, giúp cho toàn bộ hệ sinh thái blockchain cũng như đôi bên cùng có lợi. Hiện tại, Mina cũng là giao thức tiên phong và duy nhất đang phát triển lĩnh vực này.
Bối cảnh tài chính:
Tháng 3/2022, Mina hoàn thành vòng tài trợ chiến lược trị giá 92 triệu đô la do FTX Venture và Three Arrows Capital dẫn đầu. Số tiền dự kiến được sử dụng để thúc đẩy Mina trở thành nền tảng ZKP hàng đầu trong lĩnh vực Web3 bằng cách thu hút các nhà phát triển đẳng cấp thể giới.
Trước đó, Mina đã thực hiện bốn vòng tài trợ, với số tiền tài trợ khoảng 48,15 triệu đô la Mỹ. Các nhà đầu tư tham gia bao gồm Coinbase Ventures, Polychain Capital, Three Arrows Capital, Paradigm và Multicoin. Các tổ chức đầu tư thường có xu hướng quan tâm nhiều hơn đến giá trị dài hạn và hầu hết họ đều sở hữu lưu lượng IP riêng, vốn rất có lợi cho việc mở rộng thị trường của Mina sau này.
3.2 ZkSync
zkSync là dự án được xây dựng bởi Matter Labs, thành lập vào tháng 12/2019 với mục tiêu chính là mở rộng quy mô Ethereum. zkSync 1.0 là giải pháp mở rộng quy mô L2 của ZK Rollup trên Ethereum. zkSync chủ yếu tập trung vào thanh toán và được khởi chạy trên mạng chính Ethereum vào tháng 6/2020. Thuật toán SNARK được zkSync sử dụng lúc đầu là Groth 16. Groth 16 không chỉ yêu cầu trusted setting lúc ban đầu mà mọi nâng cấp ứng dụng mới đều cần phải lặp lại bước này. Điều này đã cản bước zkSync 1.0 trên hành trình tạo ra một môi trường tương thích với EVM. Vì vậy, khả năng ứng dụng của zkSync 1.0, điển hình là thanh toán, cũng bị giới hạn đáng kể.
zkSync 2.0 là giải pháp L2 tương thích với EVM được xây dựng trên Ethereum. zkSync 2.0 còn được gọi là zkEVM vì nó tổng hợp lại mã EVM và sử dụng ZKP để xác minh giao dịch Rollup, cho phép nhà phát triển sử dụng lập trình gốc của Ethereum. Ngôn ngữ này xây dựng và triển khai các ứng dụng phi tập trung trong môi trường L2 có khả năng mở rộng cao mà không tiêu tốn nhiều phí gas.
Vào tháng 5/2021, zkSync phát hành phiên bản Apha của zkEVM. Mainnet được dự kiến ra mắt vào tháng 8/2021 nhưng kết cục bị trì hoãn do trở ngại kỹ thuật. Tháng 2/2022, testnet công khai zkSync 2.0 đi vào hoạt động. zkEVM hiện đã được phát hành, trở thành ZK Rollup tương thích với EVM đầu tiên trên testnet của Ethereum.
Bối cảnh tài chính:
Tháng 3/2021, Matter Labs hoàn thành vòng tài trợ đầu tiên trị giá 6 triệu đô la do Union Square Ventures dẫn đầu cùng sự góp mặt của các nhà đầu tư nổi tiếng khác như Placeholder và Dragonfly. Đáng chú ý, một lượng lớn đối tác sinh thái, bao gồm các công ty và nhà sáng lập nổi tiếng trong thị trường tiền điện tử, cũng tham gia vào vòng tài trợ này.
Tháng 11/2021, Matter Labs hoàn thành khoản tài trợ thứ hai trị giá 50 triệu đô la do A16Z dẫn đầu. Số tiền cũng có sự đầu tư từ nhiều sàn giao dịch tập trung như Blockchain.com, Crypto.com, ByBit, OKEx. Các sàn giao dịch này đã tuyên bố hợp tác với zkSync để hỗ trợ việc gửi/ rút tiền giữa sàn giao dịch và L2.
3.3 StarkWare
Đội ngũ StarWare được thành lập vào tháng 5/2018, bao gồm các nhà mật mã học và nhà khoa học đẳng cấp thế giới. Thành viên chủ chốt là cựu trưởng ban khoa học của Zcash, từng tiên phong và đổi mới trong lĩnh vực ZKP trong nhiều năm. Công nghệ zk-STARK được trình bày lần đầu trong một bài báo học thuật năm 2018. Tác giả của bài báo sau đó đã tạo ra StarkWare.
StarkWare, giống như zkSync, cho phép người chơi mở rộng quy mô bằng ZKP, chỉ khác là StarkWare hoạt động dựa trên STARK. Vấn đề là, công nghệ của STARK không hoàn thiện được như SNARK. Bên cạnh đó, nếu muốn STARK đạt được độ hoàn chỉnh của Turing Complete thì nó lại khó tương thích với EVM. StarkWare đã tạo ra một ngôn ngữ lập trình cụ thể, Cairo, để chạy các chương trình tự trị do STARK cung cấp. Ngoài ra, nhóm StarkWare hiện đang làm việc với nhóm Nethermind để tạo Warp, một bộ chuyển mã để chuyển đổi hợp đồng thông minh của Solidity sang Cairo để làm cho nó tương thích với EVM.
StarkWare khởi chạy StarEx, cho phép tạo ZK Rollups dành riêng cho ứng dụng do Cairo và STARK cung cấp. dydx, Immutable, Deversifi là 3 ứng dụng chính được hỗ trợ bởi StarkEx. Cho đến nay, StarkEx đã xử lý hơn 5 triệu giao dịch trị giá hơn 250 tỷ đô la thông qua các ứng dụng này.
Ngày 29/11/2021, đội ngũ phát hành phiên bản mainnet ALpha của StarkNet. StarkNet là một mạng ứng dụng ZK Rollup layer 2 và hiện đang lên kế hoạch phát triển hệ sinh thái của riêng mình.
Bối cảnh tài chính:
StarkWare đã tiến hành tổng cộng bốn vòng tài trợ, với tổng số tiền hơn 160 triệu đô la Mỹ. Các nhà đầu tư tham gia bao gồm nhiều tổ chức hàng đầu như Paradigm, Polychain, Sequoia Capital, IOSG, v.v. Trong số các nhà đầu tư thiên thần, Vitalik Buterin (V God), nhà sáng lập Ethereum, là cái tên nổi trội.
3.4 Aztec
Nhóm phát triển Aztec được thành lập vào năm 2018. Hầu hết thành viên trong nhóm là tiến sĩ từ các trường đại học hàng đầu thế giới. Ngoài ra, nhóm cũng gồm có các cựu nghiên cứu Zcash với kiến thức nền tảng kỹ thuật vững chắc. Thuật toán PLONK do Aztec phát triển đã được nhiều dự án trong ngành áp dụng.
Aztec đã giải quyết vấn đề mở rộng của Ethereum thông qua công nghệ ZK Rollup. Từ khi thành lập dự án cho đến khi ra mắt Aztec 2.0, nhóm đã tiến hành nghiên cứu chuyên sâu về thuật toán PLONK. Trong giai đoạn này, các thuật toán ZKP như PLONKUP được ra mắt và Buterin cũng phát triển một nhóm nghiên cứu.
Mạng Aztec có hai chức năng chính. Một là bảo vệ quyền riêng tư của người dùng khi tương tác. Hai là người dùng có thể cung cấp hợp đồng quyền riêng tư được lập trình thông qua Aztec để xây dựng ứng dụng riêng tư.
Sau khi Aztec 2.0 đi vào sử dụng, ứng dụng chuyển khoản riêng tư zk.money được khởi chạy. Quá trình gửi và nhận token diễn ra hoàn toàn ẩn danh và các giao dịch được mã hóa thông qua recursive ZKP. Bên cạnh đó, không có dữ liệu giao dịch nào được phát hành công khai để bảo vệ quyền riêng tư của người dùng, dù hiện tại zk.money chỉ có thể được dùng để chuyển khoản. Aztec Connect cũng là cầu nối cross-chain riêng tư đầu tiên hoạt động trên testnet.
Dự án Aztec cho đến nay được phát triển thành ba giai đoạn. Giai đoạn đầu tiên, Aztec 1.0, là một công cụ giao dịch quyền riêng tư trên Ethereum. Giai đoạn thứ hai là Aztec 2.0, tức lớp bảo mật thứ hai trong Ethereum thông qua zk-Rollup. Trong tương lai, giai đoạn thứ ba Aztec 3.0 sẽ thông qua ngôn ngữ lập trình bảo mật Noir, hiện thực hóa hợp đồng thông minh về quyền riêng tư của layer 2 trong Ethereum. Tuy nhiên, vấn đề mà hầu hết các dự án layer 2 của zk-Rollup thường đối mặt là tương thích EVM. Do chưa tương thích với EVM, mạng Aztec phải chịu nhiều khó khăn xoay quanh chi phí xây dựng và hợp đồng thông minh về quyền riêng tư cho nhiều dự án. Tuy nhiên, Aztec tiết lộ họ đang nghiên cứu kỹ thuật để cải thiện vấn dề này.
Bối cảnh tài chính:
Tháng 11/2018, Aztec huy động được 2,1 triệu đô la vòng tài trợ hạt giống do ConsenSys Labs dẫn đầu. Đến tháng 12/2021, Aztec hoàn thành khoản tài trợ Series A trị giá 17 triệu đô la do Paradigm dẫn đầu cùng sự tham gia của IOSG và nhà đầu tư thiên thần Stani KulecFhov, người sáng lập dự án cho vay Aave. Số tiền sẽ được sử dụng để đẩy mạnh phát triển hệ thống ZK và cải thiện Aztec Connect. Khoản phí gas tiêu tốn khi thực hiện giao dịch riêng tư hứa hẹn tiết kiệm đến 100 lần so với trước đó.
3.5 Aleo
Dự án Aleo chính thức được khởi động vào năm 2019 với đội ngũ các nhà mật mã học nổi tiếng thế giới từ Google, Amazon, Facebook. Bên cạnh đó, các trường đại học nghiên cứu như UC Berkeley, Johns Hopkins, NYU và Cornell cũng tham gia đóng góp.
Nhờ có hệ thống zkCloud , Aleo có thể bảo vệ danh tính và thông tin giao dịch kể cả ở giao dịch trực tiếp (như chuyển tài sản) hoặc gián tiếp (thông qua hợp đồng thông minh). Trong một public blockchain, chương trình trên máy ảo "VM" được thực thi bởi từng node riêng lẻ. Do đó, mỗi node trong mạng lưới đều phải cùng nhau tính toán và thống nhất tất cả các bước trong chương trình. Hành động này không chỉ kém hiệu quả mà còn làm giảm tốc độ và tăng chi phí cho người dùng cuối. Nhằm khắc phục hạn chế trên, zkCloud tách thời gian chạy ứng dụng khỏi trạng thái được duy trì bởi blockchain (on-chain + off-chain) và phối hợp dùng recursive ZKP. Qua đó, ALeo vừa nâng cao khả năng lập trình và quyền riêng tư, vừa nâng cấp thông lượng giao dịch cao hơn.
Để cải thiện trải nghiệm của nhà phát triển, Aleo xây dựng ngôn ngữ lập trình Leo phù hợp với ứng dụng ZKP. Leo, ngôn ngữ lập trình lấy cảm hứng từ Rust, chuyên dùng để xây dựng các ứng dụng riêng tư. Ngoài ưu điểm thân thiện với các nhà phát triển, dự án cũng khuyến khích giới phát triển và testnet chung tay phát triển hệ sinh thái cho ALeo.
Bối cảnh tài chính:
Tháng 4/2021, Aleo hoàn thành khoản tài trợ đầu tiên trị giá 28 triệu đô la do a16z dẫn đầu, với sự tham gia của Placeholde, Galaxy Digital, Variant Capital và Coinbase Ventures.
Tháng 2/2022, Aleo tuyên bố hoàn thành khoản tài trợ thứ hai trị giá 200 triệu đô la, đồng thời cũng là khoản tài trợ đơn lẻ lớn nhất trong lĩnh vực ZKP lúc bấy giờ. Kora Management LP và SoftBank Vision Fund 2 là những nhà đầu tư dẫn đầu, theo sau là Tiger Global và Sea Capital.
Tổng kết
Công nghệ ZKP quả thực chiếm vị trí vô cùng quan trọng trong lĩnh vực blockchain, song vẫn còn một chặng đường dài trước khi hoàn thiện. Hầu hết chương trình đều có một số thiếu sót về khả năng chống máy tính lượng tử và tối ưu hóa hiệu suất. Ngoài ra, khả năng tương thích với EVM cũng là một trong những vấn đề nổi cộm hiện tại. Dù vậy, ZKP đang trên đà phát triển nhanh chóng, trong khi các dự án như zkSync và Starknet đã mở ra nhiều tiềm năng phát triển cho blockchain.Aztec