
Từ lý thuyết đến thực tiễn, mở khóa tiềm năng vô hạn của ZK
Tuyển chọn TechFlowTuyển chọn TechFlow

Từ lý thuyết đến thực tiễn, mở khóa tiềm năng vô hạn của ZK
Bài viết này sẽ cùng bạn khám phá chứng minh không kiến thức, phát hiện tiềm năng mới của ZK.
Tổng hợp: LXDAO
Chứng minh kiến thức không (Zero-Knowledge Proofs) với khả năng bảo vệ quyền riêng tư vượt trội đã trở thành một ngôi sao sáng trong lĩnh vực an toàn dữ liệu, từng lọt vào vị trí từ khóa hàng đầu trong ngành mã hóa. Tuy nhiên, độ sâu và tính phức tạp của công nghệ ZK khiến nhiều người học mong muốn khám phá lĩnh vực này phải e ngại. Trong kỳ chia sẻ LX lần này, mời đến nhà sáng lập Anbi Lab - Quách Vũ, để cùng chia sẻ những hiểu biết chân thực và suy nghĩ mang tính tiên phong, hãy cùng điểm lại nội dung hấp dẫn của buổi chia sẻ này, khám phá vô hạn tiềm năng của ZK🚀
Lý thuyết và thực tiễn tách rời, ứng dụng ZK ở đâu?
Quách Vũ chỉ ra rằng so với nhiều nhánh mật mã học khác, thực tiễn ZK hiện nay đã khá đầy đủ. Nhưng so với nghiên cứu thiên về lý thuyết, lý thuyết ZK do quá trình kỹ thuật hóa và vòng đời sản phẩm nhanh chóng dẫn đến một số sản phẩm sử dụng các giao thức chưa thật sự trưởng thành và chưa được kiểm chứng nghiêm ngặt. Hiện tại tài liệu học tập về ZK phần lớn nghiêng về lý thuyết, chủ yếu vì hai lý do sau:
1. Hầu hết các nhà nghiên cứu ZK đang hoạt động hiện nay thiên về nghiên cứu lý thuyết nhiều hơn, còn người làm thực tiễn kỹ thuật thì ít hơn. Về kết quả sản sinh, chu kỳ nghiên cứu lý thuyết ZK rõ ràng ngắn hơn rất nhiều so với thực tiễn kỹ thuật. Ví dụ, nhiều kỹ sư khi hoàn thiện sản phẩm, do nền tảng khác nhau nên cần thời gian tương đối dài để học các thuật toán/toán học cơ bản và tích cực thực hành, điều này dễ tạo ảo giác rằng mọi thứ chúng ta thấy đều thiên về lý thuyết.
2. Do sự phát triển nhanh chóng của ngành và việc cập nhật, đổi mới sản phẩm diễn ra liên tục, một số nội dung kỹ thuật trong các bối cảnh ứng dụng cụ thể dễ bị thay thế bởi các giao thức khác hoặc dần biến mất khỏi tầm mắt, do đó mặc dù rào cản kỹ thuật ZK hiện nay đã giảm đáng kể, nhưng lý thuyết vẫn luôn phát triển sớm hơn thực tiễn.
Nếu muốn thực hành ZK, có thể thu thập một số mẫu tham khảo tốt, ví dụ như mã nguồn kỹ thuật chất lượng cao, để mô phỏng, sử dụng hoặc chỉnh sửa đơn giản, trước tiên làm rõ mục đích sử dụng và nguyên lý hoạt động; tiếp theo nếu có nhu cầu bổ sung, thử thay đổi mã nguồn, thêm tính năng mới, thì cần hiểu sâu về mã nguồn để chỉnh sửa; tiếp nữa, nếu bạn có ý tưởng mới, muốn tạo sản phẩm và viết mã từ đầu, sẽ cần đầu tư rất nhiều và học hỏi chuyên sâu. Dù là lý thuyết hay thực tiễn, phương pháp bắt chước là cách tiếp cận thiết thực hơn. Khi trình độ nâng cao, bạn sẽ nhận thấy mình có thể làm được ngày càng nhiều việc, khi hiểu và nắm vững nguyên lý cơ bản, bạn cũng sẽ tự tin hơn để thực hiện nhiều điều hơn.
Trong gần mười năm qua, thực tiễn kỹ thuật ZK đã đạt được sự phát triển mạnh mẽ và vẫn duy trì đà tăng trưởng nhanh, lý thuyết ZK cũng bước vào giai đoạn "trăm hoa đua nở", tuy nhiên điều này cũng gây khó khăn cho việc học tập, ví dụ như bắt đầu từ đâu, học như thế nào, đặc biệt là mật mã học, có rất nhiều dữ liệu sâu không đáy nhưng bạn lại không biết công dụng hay nguồn gốc thuật toán. Còn về các trường hợp ứng dụng ZK hoặc những ứng dụng tốt, thực tế rất ít, phần lớn sản phẩm cấp ứng dụng vẫn đang ở giai đoạn chứng minh khái niệm. Nhìn chung, khi có nhiều điều mới xuất hiện, chúng ta cũng sẽ có thêm hy vọng, ngành cần có sự ra đời của những điều mới, cần có nhiều người thử nghiệm và tìm ra con đường đúng đắn.
Ứng dụng ngoài chuỗi và đường đi kiếm tiền của ZK
Quách Vũ cho rằng ZK có tiềm năng phát triển to lớn trong tương lai, nhưng nếu nói đến kiếm tiền, thì chủ yếu dựa vào sản phẩm phải giải quyết được vấn đề cốt lõi thực tế, đáp ứng đúng nhu cầu/thách thức thị trường, mới có thể tạo ra lợi nhuận.
Xét hiện tại, đối với ứng dụng ZK ngoài chuỗi, tôi đánh giá cao các ứng dụng tập trung vào nhu cầu rõ ràng, ví dụ như: ví, cầu nối (bridge), Layer 2 và tính toán ngoài chuỗi của hợp đồng thông minh... Theo kinh nghiệm học tập lâu năm, thực tế blockchain trong quá trình phát triển đã đặt ra nhiều nhu cầu rõ ràng, ví dụ như mở rộng quy mô, lưu trữ, và các vấn đề giao thức blockchain như số lượng nút quá ít, làm sao giảm hiệu quả lượng truyền tải... Tất nhiên, còn một loại không liên quan đến blockchain, ví dụ như bảo vệ quyền riêng tư, nhưng đây không hoàn toàn là vấn đề kỹ thuật, mà có thể là vấn đề xã hội hơn, định nghĩa về quyền riêng tư là gì, mức độ chấp nhận của cộng đồng ra sao, đây là cuộc đấu tranh giữa mọi người.
Tập trung hơn nữa, ví dụ như: tình trạng "bùng nổ trạng thái" Ethereum, tính sẵn có dữ liệu (Data Availability) của số lượng nút, tăng thêm Validator, giải quyết vấn đề MEV, bao gồm cả an ninh, độ phức tạp của hợp đồng trên chuỗi và an ninh cầu nối xuyên chuỗi... Các ứng dụng đáp ứng những nhu cầu/giải quyết những vấn đề này đều có triển vọng phát triển tốt.
CRS là gì, tại sao ZK cần nó?
Quách Vũ chỉ ra rằng CRS (Common Reference String) nghĩa là Prover & Verifier không tin tưởng nhau một cách mù quáng, mà phải dựa trên ít nhất một Bit đồng thuận để tin tưởng nhau, tức là tin tưởng trên cơ sở đồng thuận.
Ví dụ, trong khái niệm cơ bản của ZK có khái niệm gọi là mạch điện (circuit), mạch điện chính là quá trình tính toán mà Prover & Verifier cần đồng thuận, được công bố cho tất cả mọi người. Với điều kiện Verifier đã biết trước, Prover thực hiện tính toán các tham số riêng tư và chứng minh tính toàn vẹn của quá trình tính toán, trong đó mạch điện phải công khai, chỉ có tham số đầu vào mới được ẩn với Verifier. Bản thân mạch điện này cũng là một phần của sự đồng thuận, do đó trước khi Prover hoạt động, hai bên phải thống nhất về mạch điện, theo định nghĩa, nó nên nằm trong CRS. Hiện tại, chúng ta đều sử dụng giao thức chứng minh kiến thức không: ZK-SNARK (Zero Knowledge Succinct Non-interactive ARguments of Knowledge), hầu hết đều chứa CRS.
Nếu dựa trên đường cong elliptic, có hai loại, một loại như Groth16, sẽ có quá trình thiết lập đáng tin cậy (Trusted setup), đây là một giao thức tính toán an toàn đa bên, sau khi hoàn tất sẽ "đốt" phần mạch đồng thuận này vào. Một loại khác như Marlin, Plonk không đốt mạch, nhưng cũng cần đốt trước một số nội dung đồng thuận.
Một loại khác dù dựa trên đường cong elliptic, nhưng giả thiết an ninh phụ thuộc vào bài toán logarit rời rạc (ECDLP). Đối với loại giao thức này cần thiết lập minh bạch (Transparent setup), cũng cần đạt được sự đồng thuận nội dung, ví dụ: chọn đường cong elliptic nào, thuật toán sinh khóa (Generator), các số nguyên tố P, Q, v.v. Ngoài ra còn có loại dựa trên hàm băm (Hash-based), ví dụ như Stark, Risk Zero, loại zkSNARK dựa trên hàm băm này cũng cần CRS, hàm băm bạn chọn, mã RS (Reed-solomon codes)... về mặt nghiêm ngặt, tất cả đều nằm trong CRS.
Tóm lại, CRS về cơ bản là bắt buộc, chỉ là nội dung CRS có thể rất khác nhau, mục đích chung thường nhằm giảm chi phí truyền thông, giảm kích thước bằng chứng, nhưng giữa các giao thức khác nhau cũng tồn tại sự khác biệt nhất định.
Làm sao chuyển đổi nhu cầu thực tế thành biểu diễn đa thức ZK?
Quách Vũ chỉ ra rằng về mặt lý thuyết, để đạt được biểu diễn đa thức ZK, cần thực hiện phép tính, dù là mở rộng quy mô hay bảo vệ riêng tư, đều cần biểu diễn bằng mạch điện phù hợp, và phép tính này phải là phép tính cố định, không chỉ thuật toán cố định mà quy mô tính toán cũng phải cố định. Khi thuật toán ở giai đoạn xác định, lượng tính toán dễ phân tích thì thao tác càng thuận tiện, còn gọi là viết mạch điện.
Cùng với việc nghiên cứu sâu ZKEVM và sự phát triển nhanh chóng của stack công nghệ ZKVM, hiện đã xuất hiện các nền tảng tính toán kiến thức không mã nguồn mở miễn phí như Risc Zero, SP1, zkWASM với các triển khai khác nhau, cho phép không cần xây dựng mạch điện, chỉ cần dùng Rust hoặc mã tùy chỉnh để viết ứng dụng ZK. Do đó, việc chuyển logic nghiệp vụ sang ZK ngày càng đơn giản.
Ngoài việc viết mạch điện, một dạng tính toán khác dựa trên mô hình RAM (Máy Truy Cập Ngẫu Nhiên). Chúng ta có thể hình dung như một máy ảo đang chạy, trong quá trình này không còn là viết mạch điện mà là viết chuyển trạng thái, làm sao để chuyển logic nghiệp vụ tốt hơn thành chuyển trạng thái, thậm chí đạt được nhẹ hóa hoặc trực tiếp chuyển logic nghiệp vụ thành đa thức, điều này đòi hỏi nhiều hơn vào năng lực cá nhân và tích lũy kinh nghiệm.
Nhưng nhìn chung, vẫn có rào cản, kể cả việc viết mạch điện cũng có rào cản.
Tổng hợp câu hỏi đáp hấp dẫn
Tại sao cần ZK?
Quách Vũ cho rằng hiện tại thiếu các ứng dụng lớn để chứng minh tính hữu ích/dễ dùng, sự xuất hiện của ZK có thể xây dựng niềm tin tốt hơn, hơn nữa ZK là công cụ cơ bản hiếm hoi trong mật mã học giải quyết vấn đề tin cậy. Thứ hai, trong quá trình phát triển blockchain, bản thân đã gặp nhiều vấn đề như: số lượng nút giảm mạnh, trạng thái Ethereum bùng nổ... những vấn đề này kỳ vọng có thể cải thiện và giải quyết bằng ZK, do đó ZK rất quan trọng với blockchain hiện tại và tương lai.
Tất nhiên, bản thân ZK cũng cần blockchain, điều kiện tiên quyết là phải có niềm tin, rồi mới đến tin cậy hay vấn đề tương tác giao thức, blockchain là mắt xích không thể thiếu trong quá trình khởi động lạnh niềm tin của ZK. Hai bên hỗ trợ lẫn nhau, không thể tách rời.
Kinh nghiệm học tập và nhập môn ZK
Quách Vũ trả lời trước tiên xuất phát từ động cơ, vì bản thân rất quan tâm đến mặt lý thuyết, muốn hiểu rõ bản chất và cơ chế hoạt động. Về nhập môn, cần đọc nhiều bài báo chuyên môn và tài liệu cơ bản, nắm vững kiến thức nền tảng và học sâu, trong quá trình này tích lũy dần, dày công chờ đợi. Với bài báo, nhiều cái thiếu ngữ cảnh hoặc hỗn tạp, nên cần đọc nhiều lần, thậm chí đọc lại mới có thể hiểu mượt mà và đầy đủ. Tất nhiên, nếu tìm việc thì viết mạch điện là con đường thiết thực. Thực hành nhiều, học mã nguồn dự án chất lượng, có thể bạn sẽ tìm thấy điều tuyệt vời ở những góc khuất nhỏ, đồng thời mô phỏng viết mạch điện, thử tổng kết kinh nghiệm, chuyển hóa thành kiến thức tích lũy và tổng kết cá nhân.
Đồng thời, có thể theo dõi thêm các người yêu thích không chuyên trong ngành. Họ thường phổ biến các hướng dẫn dễ hiểu hoặc chia sẻ kinh nghiệm học tập. Nhưng do ngành phát triển nhanh, khi học cần chú ý nội dung có lỗi thời không, lưu ý thời gian biên soạn và thái độ biện chứng khi học.
Những bạn quan tâm lý thuyết có thể tập trung vào điểm cụ thể, từ điểm đến mặt, học rõ một phần trước, sau đó mang kinh nghiệm học phần đó để xem các nội dung khác, tức là duyệt ưu tiên chiều sâu (DFS: Depth First Search) tốt hơn duyệt ưu tiên chiều rộng (BFS: Breadth First Search). Với các tài liệu học sâu hoặc bài báo, cách tìm và đảm bảo hữu ích, thực tế học nhóm là hình thức tốt, một người tự học rất khó, thông qua học nhóm cùng bạn đồng hành thảo luận sâu sắc, có thể giúp chúng ta học tập và khám phá bền vững và hiệu quả.
Học ZK đến mức độ nào thì có thể tìm việc?
Quách Vũ cho rằng hiện tại chính là thời điểm tốt nhất, cứ tìm trước, thiếu năng lực thì bổ sung sau. Thông tin chi tiết hầu hết công việc đều công khai, có thể thử liên hệ, giúp sửa mã hoặc tìm Bug, v.v. Hơn nữa nhu cầu kỹ sư giỏi rất lớn, công nghệ ZK phát triển rất nhanh, nên dù có thể thiếu kinh nghiệm cũng không phải vấn đề. Ngược lại, do công nghệ đổi mới nhanh, người mới cũng không có nhiều bất lợi.
Nếu chúng ta dùng ZKVM, ví dụ như trên chuỗi tương tự Starknet (STRK), có cần viết mạch điện không?
Quách Vũ chỉ ra rằng hiện tại các máy ảo (VM) này cần cung cấp lệnh hệ thống gọi đặc biệt hoặc giao diện đặc biệt, tức là nếu lặp lại một phép tính, nếu trực tiếp biên dịch thành lệnh VM sẽ phình to nghiêm trọng. Do đó, các lệnh thường dùng, chúng ta thường chuyển thành mạch điện, sau khi chuyển thành mạch điện, chuỗi phân tích phân tán (Trace) mà VM chứng minh sẽ ngắn hơn nhiều. Đồng thời, chuyển thành mạch điện cũng giúp xử lý trước một số công việc và bản thân nó hiệu quả hơn Trace.
Trong một vài hệ thống chứng minh đặc biệt, trong tính toán có một số mạch điện, cùng một thuật toán nhưng tham số khác nhau, lặp lại mười lần hàm băm, bình thường nếu không can thiệp sẽ tạo ra mười lần mạch băm. Nhưng hiện nay có một loại kỹ thuật chứng minh có thể song song hóa mười mạch điện này, sau khi song song hóa có thể tạo ra tối ưu hóa bổ sung, và tối ưu hóa này khá đáng kể. Vì vậy, nguyên tắc thiết kế VM hiện nay cũng có thể cân nhắc cho phép người dùng tự viết mạch điện cho hàm đặc biệt cần thực thi và tích hợp lại, nhưng hiện tại vẫn chủ yếu dựa vào VM cung cấp.
Ngoài ra, còn có kỹ thuật Folding scheme, có thể nén các mạch điện nối tiếp lặp lại thành một bản, quá trình chứng minh sẽ đặc biệt tiết kiệm bộ nhớ nhưng đồng thời yêu cầu cao hơn đối với việc viết mạch điện. Tóm lại, có cần học hay viết hay không thực tế liên quan chặt đến lợi ích, nhưng về lý thuyết có thể biên dịch mù quáng, gọi trực tiếp qua ZKVM.
ZK ngoài kết hợp blockchain còn có hướng đi nào khác không?
Quách Vũ cho rằng bảo vệ quyền riêng tư có thể là một hướng, nhưng nhu cầu này còn nghi ngờ, vì ngay cả trong Web3, mọi người cũng không quan tâm nhiều đến riêng tư, huống hồ ngành truyền thống. Trong giới học thuật, thực tế có nhiều hướng kết hợp ZK với phi Crypto, ví dụ như học máy kiến thức không (ZKML), cơ sở dữ liệu ZK, hay dùng ZK cho bỏ phiếu ẩn danh... nhưng những điều này thực sự giải quyết vấn đề thực tế và có phải là điểm đau không, vẫn cần xác nhận. Khi có nhu cầu cấp bách/thực tế thúc đẩy, thành quả sẽ dễ hiển hiện hơn, ví dụ như sự phát triển ZKEVM thực tế bắt nguồn từ EVM, toàn bộ Ethereum cần tương thích EVM trên Layer 2, mặc dù EVM không thuận lợi lắm, nhưng khi chuyển công nghệ liên quan sang ZKEVM đã đạt được thành quả tương đối tốt.
Ở giai đoạn hiện tại của blockchain, công nghệ và kịch bản nghiệp vụ mang lại giá trị gì?
Quách Vũ trả lời, nếu nói đến nhu cầu trong thế giới Crypto, công dụng khá nhiều. Ví dụ như nhận dạng phi tập trung (DID: Decentralized Identity) trong xác thực danh tính và bảo vệ riêng tư trên mạng xã hội... chỉ là điểm mấu chốt là cần tìm một kịch bản, thỏa mãn nhu cầu/đặc điểm người dùng thực tế để bùng nổ. Do đó nếu làm nghiệp vụ có thể xem xét thêm tình hình hiện tại của ZK. Vì hiện nay điều kiện kỹ thuật đã đạt hoặc gần đạt một số kịch bản đơn giản.
Khán giả tại chỗ tên Thạch nói thêm, do việc xây dựng niềm tin hoặc đồng thuận trong mô hình vận hành hiện tại tiêu tốn rất nhiều tài nguyên băng thông hoặc lưu trữ, trong khi dùng ZK có thể nâng hiệu suất lên cấp số mũ, nghĩa là ít nhất về mặt kỹ thuật giá trị rất cao, và khi giá trị kỹ thuật thể hiện, giá trị kịch bản chắc chắn cũng sẽ thể hiện tương ứng.
Quách Vũ bổ sung thêm rằng hiện nay ZK phát triển có một vấn đề là không có định hướng rõ ràng, không thể suy đoán hay dự kiến. Vì phân nhánh phát triển ZK quá nhiều, bạn không thể biết nhánh nào sẽ phát triển lên hay có phân nhánh hay không, dẫn đến khoảng cách lớn giữa người làm ứng dụng và người làm lý thuyết. Ví dụ người làm lý thuyết khó biết điểm đau ở tầng ứng dụng, chỉ có thể tự suy nghĩ, tưởng tượng vô căn cứ để xây dựng kịch bản ứng dụng viết bài báo. Nhưng đồng thời rào cản ZK lại không ngừng tăng cao, khiến người làm sản phẩm, làm nghiệp vụ càng khó hiểu rõ nó có thể làm gì, làm được gì. Vì vậy, người làm ứng dụng có thể tìm hiểu thêm một số khái niệm cơ bản và công cụ thông dụng, ví dụ như các công cụ và tài liệu ZK phổ biến, chúng có thể chứng minh logic nghiệp vụ lớn cỡ nào, lượng tính toán ra sao. Không cần hiểu sâu ZK, chỉ cần biết khái niệm cơ bản ZK, đại khái làm được việc gì, việc gì không giỏi giải quyết là được. Tóm lại, hai bên hỗ trợ lẫn nhau, cùng thúc đẩy sự phát triển thịnh vượng của blockchain.
Kết luận
Thông qua buổi chia sẻ LX kỳ này, hy vọng mọi người đã có cái nhìn toàn diện và sâu sắc hơn về sự phát triển, thực tiễn ứng dụng và nhập môn học tập chứng minh kiến thức không (ZK). Cùng với sự phát triển liên tục của ngành, sự đổi mới và đột phá không ngừng của công nghệ ZK, chúng tôi tin rằng ZK sẽ thể hiện tiềm năng phát triển khổng lồ và triển vọng ứng dụng rộng lớn. Đồng thời, điều này cũng sẽ tiếp thêm sức sống mới cho sự phát triển của ngành mã hóa và toàn bộ Web3. Tương lai, mong tiếp tục đồng hành cùng mọi người, cùng khám phá ZK, cùng xây dựng một thế giới số an toàn, hiệu quả và minh bạch hơn!
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














