zk-SNARK: Bằng chứng không có kiến thức sáng tạo và các ứng dụng của nó

Trung cấpNov 28, 2023
Công nghệ zk-SNARK thể hiện bước đột phá đáng kể trong lĩnh vực bảo vệ quyền riêng tư và xác minh được mã hóa. Nó không chỉ hứa hẹn trong việc cung cấp sự đảm bảo quyền riêng tư mạnh mẽ mà còn thiết thực trong việc nâng cao khả năng mở rộng của blockchain và nhiều ứng dụng khác.
zk-SNARK: Bằng chứng không có kiến thức sáng tạo và các ứng dụng của nó

Bối cảnh

Bằng chứng không có kiến thức (ZKP) là một công nghệ mật mã lần đầu tiên được đề xuất bởi S. Goldwasser, S. Micali và C. Rackoff vào đầu những năm 1980 trong một bài báo có tựa đề Sự phức tạp về kiến thức của các hệ thống chứng minh tương tác. Trong bài báo này, nó được khái niệm hóa như một mô hình lý thuyết để giải quyết vấn đề xác minh các phát biểu toán học mà không tiết lộ bằng chứng. Khái niệm này đã thu hút được sự chú ý đáng kể trong cộng đồng học thuật vì nó thách thức các giới hạn của kỹ thuật mã hóa truyền thống và cung cấp một cách tiếp cận mới để xử lý thông tin nhạy cảm.

Theo thời gian, ZKP đã phát triển từ một khái niệm lý thuyết trừu tượng thành các giao thức cụ thể có thể được tích hợp vào nhiều ứng dụng khác nhau. Vào năm 2010, Groth đã xuất bản một bài báo có tiêu đề Các đối số không có kiến thức không tương tác dựa trên ghép nối ngắn, bài báo này đã trở thành một công trình quan trọng trong việc phát triển zk-SNARK, một giải pháp quan trọng trong ZKP. Ứng dụng thực tế quan trọng nhất của ZKP là hệ thống bằng chứng không có kiến thức được Z-cash sử dụng vào năm 2015, hệ thống này đã đạt được sự bảo vệ quyền riêng tư cho các giao dịch và số tiền. Sau đó, zk-SNARK kết hợp với hợp đồng thông minh, dẫn đến phạm vi ứng dụng rộng hơn.

Nguyên tắc kỹ thuật của zk-SNARK

Các nguyên tắc mà ZKP truyền thống cần tuân thủ như sau:

  • Tính đầy đủ: Nếu một tuyên bố là đúng, một người chứng minh trung thực có thể thuyết phục người xác minh về sự thật của nó.
  • Tính đúng đắn: Nếu một tuyên bố là sai, bất kỳ người chứng minh gian lận nào cũng sẽ chỉ có một xác suất nhỏ khiến người xác minh hiểu nhầm rằng tuyên bố đó là đúng.
  • Không có kiến thức: Nếu một tuyên bố là đúng, người xác minh sẽ không tìm hiểu bất kỳ thông tin bổ sung nào ngoài thực tế rằng tuyên bố đó là đúng. Nói cách khác, quá trình xác minh không tiết lộ bất kỳ thông tin nào có thể được sử dụng để xây dựng bằng chứng.

Nguyên lý của ZKP có thể hiểu qua một ví dụ đơn giản: Nếu tôi cần chứng minh cho A rằng tôi có số điện thoại của B thì tôi không cần phải nói trực tiếp số điện thoại của A B. Thay vào đó, tôi có thể quay trực tiếp vào số điện thoại của B và sau khi cuộc gọi được kết nối, điều đó có thể chứng minh rằng tôi thực sự có số điện thoại của B. Quá trình này không tiết lộ thông tin số của B.

Và zk-SNARK nâng cấp thêm trên cơ sở này, với các đặc điểm sau:

  • Không có kiến thức: Người xác minh không thể thu được bất kỳ thông tin hữu ích nào từ bằng chứng.
  • Ngắn gọn: Bằng chứng có kích thước nhỏ (thường chỉ vài chục byte) và thời gian xác minh ngắn (thường chỉ vài mili giây).
  • Không tương tác: Người chứng minh chỉ cần gửi bằng chứng cho người xác minh một lần mà không cần liên lạc thêm.
  • Thông số đáng tin cậy: Cả người chứng minh và người xác minh đều cần sử dụng Chuỗi tham chiếu chung (CRS) do bên thứ ba đáng tin cậy tạo. CRS có thể chứa một số thông tin nhạy cảm và nếu bị rò rỉ hoặc giả mạo, nó có thể đe dọa đến tính bảo mật của hệ thống.

Trong bài báo của Groth, ông đã đề xuất một phương pháp chứng minh không có kiến thức không tương tác dựa trên các cặp biến đổi một vấn đề tính toán thành Chương trình số học bậc hai (QAP), sau đó xây dựng một bằng chứng hiệu quả bằng cách sử dụng mật mã đường cong elip và hàm băm. Các thiết kế sau này của zk-SNARK thường bao gồm bốn bước:

  • Thiết lập: Được thực hiện bởi bên thứ ba đáng tin cậy, nó tạo ra CRS bao gồm khóa chứng minh (pk) để tạo bằng chứng và khóa xác minh (vk) để xác minh bằng chứng. Quá trình này chỉ cần được thực hiện một lần và CRS có thể được sử dụng lại nhiều lần.
  • Mã hóa bài toán: Bài toán tính toán f(x) = y được chuyển thành dạng QAP A(x)·B(x) = C(x)·Z(x), trong đó A(x), B(x), C (x) là các đa thức được xác định bởi cấu trúc mạch của f, Z(x) là đa thức cố định, x là điểm được chọn ngẫu nhiên và y là đầu ra của f. Bước này có thể được thực hiện bởi người chứng minh, người kiểm chứng hoặc có thể được thực hiện trước bởi bên thứ ba.
  • Tạo bằng chứng: Được thực hiện bởi người chứng minh, nó sử dụng pk, x và đầu vào w của f để tạo ra bằng chứng π nhằm chứng minh rằng họ biết aw thỏa mãn f(w) = y mà không tiết lộ giá trị cụ thể của w. Quá trình này bao gồm các phép tính đa thức, các phép toán trên đường cong elip và các phép toán hàm băm, cuối cùng tạo ra một số π bao gồm một số điểm trên đường cong elip và một giá trị băm.
  • Xác minh bằng chứng: Được thực hiện bởi người xác minh, nó sử dụng vk, x, y và π để xác minh xem người chứng minh có thực sự biết aw thỏa mãn f(w) = y hay không. Quá trình này cũng bao gồm các phép tính đa thức, các phép toán trên đường cong elip và các phép toán hàm băm, cuối cùng mang lại giá trị Boolean cho thấy tính hợp lệ của bằng chứng.

Để hiểu rõ hơn, chúng ta hãy xem xét một ví dụ đơn giản: Giả sử bạn có một bản đồ kho báu có thể hướng dẫn bạn đến vị trí chính xác của kho báu bị chôn vùi. Bạn muốn chứng minh cho ai đó rằng bạn biết vị trí của kho báu mà không tiết lộ nội dung trên bản đồ hay vị trí thực sự của kho báu. Nếu bạn sử dụng công nghệ zk-SNARK, bạn sẽ cần tạo một câu đố phức tạp về bản đồ kho báu. Bạn chọn một mảnh nhỏ của câu đố (bằng chứng) và đưa cho người đó xem, điều này thuyết phục họ rằng bạn biết câu đố hoàn chỉnh khớp với nhau như thế nào, tức là vị trí của kho báu mà không cần nhìn thấy toàn bộ câu đố. Tuy nhiên, để đạt được điều này, bạn cần phải có được những dấu hiệu đặc biệt từ một nhà in đáng tin cậy, những dấu hiệu này dùng làm bằng chứng cho thấy mảnh ghép của bạn là thật.

Tại sao chúng ta cần zk-SNARK?

Cách tiếp cận truyền thống đối với các bằng chứng không có kiến thức bao gồm các phương pháp chứng minh tương tác, trong đó người chứng minh liên tục hỏi người xác minh “có hay không?” câu hỏi cho đến khi tìm được câu trả lời đúng. Quá trình này là không hiệu quả. Tuy nhiên, zk-SNARK loại bỏ nhu cầu tương tác lặp đi lặp lại bằng cách lấy CRS từ bên thứ ba đáng tin cậy. Tất cả những người chứng minh có thể so sánh trực tiếp CRS để xác định tính trung thực. Điều này cải thiện đáng kể hiệu quả của bằng chứng không có kiến thức.

Ngoài ra, zk-SNARK còn có những ưu điểm sau:

  • Bảo vệ quyền riêng tư: zk-SNARK cho phép người chứng minh chứng minh kiến thức hoặc việc đáp ứng các điều kiện nhất định cho người xác minh mà không tiết lộ bất kỳ thông tin cá nhân nào. Điều này đặc biệt hữu ích trong các tình huống liên quan đến dữ liệu nhạy cảm hoặc riêng tư, chẳng hạn như xác thực danh tính, bỏ phiếu ẩn danh và giao dịch riêng tư.
  • Khả năng mở rộng: zk-SNARK nén các vấn đề tính toán phức tạp thành các bằng chứng nhỏ và nhanh, giảm gánh nặng tính toán và yêu cầu lưu trữ cho người xác minh. Điều này có lợi trong các tình huống yêu cầu xác minh và lưu trữ hiệu quả lượng lớn dữ liệu, chẳng hạn như điện toán đám mây, khả năng mở rộng chuỗi khối và tính toán có thể kiểm chứng.
  • Bảo mật: zk-SNARK dựa trên các bài toán khó về mặt toán học, chẳng hạn như bài toán logarit rời rạc và bài toán ánh xạ song tuyến tính, mang lại tính bảo mật cao. Theo giả định về điện toán phi lượng tử, trừ khi bên thứ ba đáng tin cậy rò rỉ hoặc giả mạo CRS, người chứng minh không thể giả mạo bằng chứng hoặc người xác minh giả mạo kết quả xác minh.

Ứng dụng trong thế giới thực của zk-SNARK

Ứng dụng đầu tiên của zk-SNARK là Zcash, cho phép người dùng tham gia vào các giao dịch hoàn toàn ẩn danh bằng cách ẩn thông tin như người gửi, người nhận và số tiền bằng zk-SNARK. Trong không gian Web3 hiện tại, công nghệ zk-SNARK đóng một vai trò quan trọng trong khả năng mở rộng chuỗi khối và quản lý dự trữ trao đổi.

Khả năng mở rộng chuỗi khối

Do cơ chế đồng thuận và yêu cầu bảo mật của blockchain nên thông lượng và hiệu quả của nó bị hạn chế rất nhiều. Để giải quyết vấn đề này, một giải pháp phổ biến là sử dụng công nghệ Layer2, xây dựng một lớp bổ sung trên blockchain để di chuyển một số lượng lớn giao dịch hoặc tính toán từ chuỗi chính (Layer1) sang Layer2, từ đó cải thiện hiệu suất và khả năng sử dụng của hệ thống .

zk-SNARK đóng một vai trò quan trọng trong giải pháp này, vì nó có thể nén các giao dịch hoặc tính toán trên Layer2 thành một bằng chứng nhỏ và nhanh chóng, sau đó được gửi để xác minh trên chuỗi chính, đảm bảo tính chính xác và nhất quán của Layer2. Hiện tại, có hai giải pháp Layer2 chính thống dựa trên zk-SNARK: ZK-rollup và Validium.

  • ZK-rollup: Giải pháp này lưu trữ tất cả dữ liệu trạng thái trên chuỗi chính nhưng sử dụng bằng chứng để xác minh tính hợp lệ của các chuyển đổi trạng thái. Điều này đảm bảo tính sẵn có và bảo mật của dữ liệu Lớp 2 nhưng làm tăng gánh nặng lưu trữ trên chuỗi chính. Ví dụ: zkSync lưu trữ dữ liệu trạng thái trên chuỗi chính Ethereum và đảm bảo tính hợp lệ của việc chuyển đổi trạng thái thông qua bằng chứng không có kiến thức. Các dự án tương tự bao gồm Polygon zkEVM và Scroll.
  • Validium: Giải pháp này lưu trữ tất cả dữ liệu trạng thái trên Layer2 hoặc các bên thứ ba đáng tin cậy khác và chỉ sử dụng bằng chứng để xác minh tính hợp lệ của các chuyển đổi trạng thái, gửi bằng chứng đến chuỗi chính. Điều này giúp giảm gánh nặng lưu trữ trên chuỗi chính nhưng có thể làm giảm tính khả dụng và bảo mật của dữ liệu Lớp 2. DeversiFi sử dụng công nghệ Validium để duy trì tốc độ và hiệu quả giao dịch Lớp 2 đồng thời đảm bảo quyền riêng tư dữ liệu. Loopring cung cấp chế độ Validium để giảm bớt áp lực lưu trữ trên chuỗi chính.

Quỹ dự trữ trong các sàn giao dịch

Do sự biến động và không chắc chắn của thị trường tiền điện tử, nhiều sàn giao dịch cần nắm giữ một lượng tiền dự trữ nhất định để giải quyết các rủi ro hoặc nhu cầu tiềm ẩn. Tuy nhiên, các quỹ dự trữ này thường thiếu tính minh bạch và độ tin cậy, khiến người dùng không chắc chắn liệu sàn giao dịch có thực sự có đủ quỹ dự trữ để bảo vệ tài sản của họ hay không.

zk-SNARK có thể cung cấp giải pháp về vấn đề này bằng cách cho phép các sàn giao dịch chứng minh với người dùng hoặc cơ quan quản lý rằng họ sở hữu đủ số lượng và giá trị của quỹ dự trữ mà không tiết lộ chi tiết hoặc vị trí tài sản cụ thể.

Một ví dụ điển hình là Gate.io, sử dụng kết hợp cây zk-SNARK và Merkle. Họ mã hóa dữ liệu người dùng và tạo bằng chứng về quỹ dự trữ của 100 mã thông báo khác nhau bằng cách sử dụng các mạch bị ràng buộc để chứng minh khả năng thanh toán 100% của chúng.

Nguồn: https://www.gate.io/proof-of-reserves

Đọc thêm: Cách zk-SNARK cải thiện Bằng chứng dự trữ của Gate.io

Ngoài các ứng dụng Web3, zk-SNARK cũng có thể được sử dụng trong các miền không phải blockchain, chẳng hạn như:

  • Xác thực danh tính: zk-SNARK cho phép người dùng chứng minh việc họ sở hữu một số thuộc tính hoặc bằng cấp nhận dạng nhất định cho bên thứ ba mà không tiết lộ bất kỳ thông tin cá nhân nào, chẳng hạn như tuổi tác, quốc tịch, trình độ học vấn, v.v. Điều này hữu ích trong các tình huống yêu cầu xác thực hoặc ủy quyền danh tính, chẳng hạn như mua sắm trực tuyến, giáo dục trực tuyến, chữ ký số, v.v.
  • Bỏ phiếu điện tử: zk-SNARK cho phép người dùng chứng minh sự tham gia của họ vào một số hoạt động bỏ phiếu nhất định và tuân thủ các giao thức hoặc quy tắc cụ thể cho bên thứ ba mà không tiết lộ bất kỳ nội dung hoặc siêu dữ liệu bỏ phiếu nào. Điều này có lợi trong các tình huống yêu cầu bảo vệ quyền riêng tư và an ninh khi bỏ phiếu, chẳng hạn như bầu cử dân chủ, quản trị cộng đồng, ra quyết định công, v.v.

Hạn chế và thách thức kỹ thuật

Trong phần trước, chúng tôi đã giới thiệu các nguyên tắc kỹ thuật của zk-SNARK, trong đó đề cập rằng zk-SNARK cải thiện hiệu quả chứng minh bằng cách tìm một bên thứ ba đáng tin cậy để tạo CRS. Tuy nhiên, điều này cũng dẫn đến một số hạn chế và thách thức cố hữu của zk-SNARK.

  • Thông số đáng tin cậy: zk-SNARK yêu cầu CRS do bên thứ ba đáng tin cậy tạo ra, có thể chứa thông tin nhạy cảm. Nếu bị rò rỉ hoặc giả mạo, nó có thể ảnh hưởng đến tính bảo mật của hệ thống. Để giải quyết vấn đề này, một số dự án đã áp dụng phương pháp Tính toán nhiều bên (MPC) để tạo CRS, trong đó nhiều người tham gia cùng đóng góp vào quá trình tạo và hủy thông tin bí mật của họ. Tuy nhiên, cách tiếp cận này vẫn phải đối mặt với những thách thức như tính toàn vẹn của người tham gia, chi phí liên lạc và khó khăn trong việc phối hợp.
  • Tính phổ quát: Hiện tại, zk-SNARK chỉ có thể được áp dụng cho các vấn đề tính toán cụ thể, chẳng hạn như QAP hoặc R1CS và không thể áp dụng cho các vấn đề tính toán tùy ý. Để giải quyết hạn chế này, một số dự án đã khám phá việc sử dụng Mạch tổng quát (GC) hoặc Bằng chứng đệ quy tổng quát (GRS) để mở rộng khả năng ứng dụng của zk-SNARK. Tuy nhiên, cách tiếp cận này đi kèm với những đánh đổi như tăng kích thước bằng chứng, giảm hiệu quả và tăng độ phức tạp.
  • Khả năng xác minh: Mặc dù zk-SNARK đảm bảo rằng người chứng minh không rò rỉ bất kỳ thông tin cá nhân nào, nhưng nó không đảm bảo rằng người chứng minh sẽ không gian lận hoặc lừa dối người xác minh. Để giải quyết vấn đề này, một số dự án đã giới thiệu Hàm ngẫu nhiên có thể xác minh (VRF) hoặc Hàm độ trễ có thể xác minh (VDF) để nâng cao tính toàn vẹn của bộ chuẩn. Tuy nhiên, cách tiếp cận này cũng làm tăng độ phức tạp và chi phí chung của hệ thống.

Tóm lại, có nhiều cách tiếp cận khác nhau để giải quyết những hạn chế cố hữu của zk-SNARK.

Kịch bản ứng dụng trong tương lai

zk-SNARK, với tư cách là một công nghệ mã hóa tiên tiến, có nhiều kịch bản ứng dụng trong tương lai, đặc biệt là trong lĩnh vực quyền riêng tư:

  • Hợp đồng thông minh về quyền riêng tư: zk-SNARK cho phép người dùng chứng minh với bên thứ ba rằng họ đã thực hiện một số hợp đồng thông minh nhất định và nhận được kết quả đầu ra chính xác mà không tiết lộ bất kỳ logic hoặc trạng thái hợp đồng nào. Điều này đặc biệt hữu ích trong các tình huống liên quan đến bí mật thương mại hoặc các quy tắc nhạy cảm, chẳng hạn như quản lý chuỗi cung ứng, yêu cầu bảo hiểm, bảo vệ bản quyền, v.v.1
  • Tính toán bảo vệ quyền riêng tư: zk-SNARK cho phép người dùng chứng minh với bên thứ ba rằng họ đã thực hiện một số tác vụ tính toán nhất định và nhận được kết quả chính xác mà không tiết lộ bất kỳ dữ liệu đầu vào hoặc đầu ra nào. Điều này có thể áp dụng trong các tình huống liên quan đến dữ liệu nhạy cảm hoặc riêng tư, chẳng hạn như chẩn đoán y tế, phân tích dữ liệu, học máy, v.v.
  • Giao tiếp bảo vệ quyền riêng tư: zk-SNARK cho phép người dùng chứng minh với bên thứ ba rằng họ đã tham gia vào một số hoạt động giao tiếp nhất định và tuân thủ các giao thức hoặc quy tắc nhất định mà không tiết lộ bất kỳ nội dung hoặc siêu dữ liệu giao tiếp nào. Điều này có lợi trong các tình huống cần bảo vệ quyền riêng tư hoặc bảo mật liên lạc, chẳng hạn như nhắn tin tức thời, mạng xã hội, email, v.v.

Phần kết luận

Công nghệ zk-SNARK thể hiện bước đột phá đáng kể trong lĩnh vực bảo vệ quyền riêng tư và xác minh được mã hóa. Nó không chỉ hứa hẹn trong việc cung cấp sự đảm bảo quyền riêng tư mạnh mẽ mà còn thiết thực trong việc nâng cao khả năng mở rộng của blockchain và nhiều ứng dụng khác. Bất chấp sự tồn tại của những thách thức và hạn chế về kỹ thuật, thông qua nghiên cứu và đổi mới liên tục, chúng tôi hy vọng zk-SNARK sẽ tiếp tục phát triển, tối ưu hóa các hệ thống hiện có và truyền cảm hứng cho các mô hình ứng dụng mới nhằm thúc đẩy sự tiến bộ của công nghệ mã hóa và bảo vệ quyền riêng tư. Với sự trưởng thành của công nghệ và sự chú trọng ngày càng tăng vào quyền riêng tư dữ liệu trong xã hội, zk-SNARK có tiềm năng trở thành một công cụ không thể thiếu trong thời đại kỹ thuật số, trao quyền cho người dùng kiểm soát tốt hơn thông tin của họ và thúc đẩy các tương tác kỹ thuật số an toàn và minh bạch.

作者: Wayne
译者: Sonia
文章审校: KOWEI、Piccolo、Elisa、Ashley He、Joyce
* 投资有风险,入市须谨慎。本文不作为Gate.io提供的投资理财建议或其他任何类型的建议。
* 在未提及Gate.io的情况下,复制、传播或抄袭本文将违反《版权法》,Gate.io有权追究其法律责任。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!
立即注册