Tiến bộ mang tính cách mạng trong công nghệ chứng minh không có kiến thức: khám phá chuyên sâu về thuật toán Nova

Cách đây một thời gian, tôi đang dịch một cuốn sách về công nghệ chứng minh không có kiến thức. Nội dung cơ bản đã được dịch vào cuối tháng trước. Bản dịch mất nhiều thời gian hơn tôi mong đợi. Hiện chúng tôi đang thảo luận với tác giả về một số lỗi văn thư trong cuốn sách và chuẩn bị cho bản thảo cuối cùng.

Dù sao thì cuối cùng tôi cũng có thời gian để xem thứ gì đó mới. Hãy bắt đầu với thuật toán Nova~

Thông tin liên quan đến thuật toán Nova

Ba thông tin có thể giúp hiểu thuật toán Nova:

  1. Giấy Nova:
  2. Các đòn tấn công tiềm tàng của Nova và cách điều chỉnh tương ứng:
  3. Tóm tắt hiểu biết về các cuộc tấn công tiềm tàng của Nova:

Bài viết này là sự hiểu biết và tóm tắt các thông tin trên. **Một số hình ảnh trong bài viết này được lấy từ thông tin trên và sẽ không được dán nhãn từng hình ảnh một trong bài viết này. **

Bắt đầu với IVC

Thuật toán Nova là thuật toán chứng minh không có kiến thức mới dành cho IVC (Tính toán có thể xác minh tăng dần). IVC, nghĩa là, cùng một hàm sẽ tính toán lặp đi lặp lại đầu ra trước đó làm đầu vào tiếp theo. Quá trình tính toán lặp của hàm F như sau:

z0 là đầu vào ban đầu và kết quả do phép tính hàm F tạo ra được sử dụng làm đầu vào của hàm F tiếp theo.

** Thư giãn R1CS và Cam kết Slack R1CS **

Như chúng ta đã biết, R1CS là đại diện cho các ràng buộc mạch trong công nghệ chứng minh không có kiến thức. R1CS thư giãn có thể được coi là một dạng mở rộng của R1CS. Trên cơ sở R1CS, u vô hướng và vectơ lỗi E được thêm vào. Một phiên bản R1CS thoải mái được biểu thị bằng (E, u, x).

Cam kết thoải mái R1CS cam kết các vectơ E và W dựa trên R1CS thoải mái. Một phiên bản của cam kết chậm R1CS được biểu thị bằng (\bar{E}, u, \bar{W}, x), trong đó x và u là các biến công khai.

Mở rộng từ R1CS sang R1CS thoải mái cho sơ đồ gấp. Lưu ý rằng từ góc độ R1CS thoải mái, R1CS là một trường hợp đặc biệt của nó. Nói cách khác, R1CS cũng là một R1CS “đặc biệt”.

Sơ đồ gấp

Nói một cách trực quan, sơ đồ gấp cho quan hệ R là "thu gọn" hai thể hiện phù hợp với quan hệ R thành một thể hiện mới của quan hệ phức hợp R. Cam kết Slack R1CS/Relax R1CS có thể thực hiện các thao tác gấp tương tự. Quá trình gấp là tương tự cho cả hai. Sơ đồ gấp của Cam kết Slack R1CS như sau:

Toàn bộ sơ đồ gấp bao gồm 4 bước. Ở bước đầu tiên, người chứng minh P gửi cam kết \bar{T} của mục chéo T cho người xác minh. Ở bước thứ hai, người xác minh gửi một thử thách ngẫu nhiên r cho người chuẩn bị. Bước thứ ba là thực hiện cam kết mà cả người chứng minh và người kiểm chứng cần thực hiện. Ở bước thứ tư, người chứng minh thực hiện một mình và gấp các vectơ E và W của hai trường hợp.

Hàm tăng cường F' (Hàm đối số)

Sơ đồ thu gọn, phiên bản R1CS đã thu gọn được nới lỏng. Vậy những tính toán được chứng minh bằng những ví dụ R1CS thoải mái này là gì? Rõ ràng, những phép tính này bao gồm cả phép tính gấp. Những phép tính này không chỉ là hàm F trong phép tính IVC, chúng còn được gọi là hàm tăng cường F'. Việc tính hàm tăng cường F' chủ yếu gồm hai phần:

1/ Hàm F trong IVC

2/ Tính toán gấp phiên bản R1CS

Vẻ ngoài lý tưởng

Với những hiểu biết trên bạn có thể hình dung được quá trình gấp giấy:

Trong đó, mạch là mạch tương ứng với hàm tăng cường F'. acc{1,2,3,4,5,6} là phiên bản R1CS cam kết chậm. Mạch có hai phép tính: 1/Thư giãn việc gấp phiên bản R1CS cam kết, chẳng hạn như acc1+acc2->acc3. 2/Tính hàm F, thay đổi trạng thái từ trạng thái 1 sang trạng thái 2, rồi từ trạng thái 2 sang trạng thái 3, v.v.

Lưu ý rằng mạch tương ứng với hàm tăng cường F' bản thân nó là một thể hiện R1CS, có thể được biểu diễn dưới dạng một thể hiện R1CS thoải mái. Đó là acc4 và acc6 trong hình. "Tóm tắt" là chuyển đổi một phiên bản R1CS không hoạt động thành một phiên bản R1CS đã cam kết không hoạt động.

Nhìn kỹ vào đầu vào của mạch thứ hai, acc3 là phiên bản R1CS cam kết thoải mái sau khi gấp, và acc4 là phiên bản R1CS cam kết thoải mái chứng tỏ acc3 là kết quả gấp chính xác. Hai instance này sẽ vào lần gấp tiếp theo và tạo ra acc5. Bạn có thể tưởng tượng rằng nếu acc3 và acc4 là các phiên bản R1CS cam kết chậm thỏa mãn, điều đó có nghĩa là acc3 được xếp từ hai phiên bản R1CS cam kết lỏng lẻo thỏa mãn. Nói cách khác, acc1 và acc2 là các phiên bản R1CS cam kết lỏng lẻo thỏa mãn. Loại độ tin cậy này có thể được suy luận từng bước một, từ đó chứng minh rằng phép tính hàm F trong mỗi mạch là chính xác. Nói chung, thông qua sự thỏa mãn của hai phiên bản R1CS cam kết chùng tương ứng với một mạch nhất định, tất cả các tính toán IVC trước đó có thể được chứng minh là đúng.

Hình thật

Những người quen với chứng minh không có kiến thức đều biết rằng các đường cong elip thường được sử dụng trong các sơ đồ cam kết đa thức. Cam kết đa thức tương ứng trên miền vô hướng được biểu diễn bằng miền cơ sở của đường cong elip. Các mạch R1CS thường được biểu diễn bằng miền vô hướng. Hãy xem kỹ, phần "tóm tắt" trong hình trên liên quan đến việc chuyển đổi tên miền. Tức là muốn gấp instance R1CS cam kết chùng tương ứng với một mạch thì phải "gấp" nó ở một mạch khác. Tại thời điểm này, một chu trình đường cong elip cần được giới thiệu. Giữa hai hoặc nhiều đường cong elip, miền vô hướng của một đường cong giống với miền cơ sở của đường cong kia. Thật trùng hợp, miền vô hướng của đường cong này giống với miền cơ sở của đường cong khác. miền cơ sở của đường cong trước đó. Bằng cách sử dụng vòng đường cong elip như vậy, bạn có thể nhận ra "diện mạo lý tưởng":

Toàn bộ quá trình gấp được chia thành hai mạch để gấp. Phần trên có thể được gọi là phần gấp của Mạch 1 và phần dưới có thể được gọi là phần gấp của Mạch 2. Trình bày chính thức về mối quan hệ giữa hai mạch nằm ở trang 8 của bài báo "Các cuộc tấn công tiềm tàng vào Nova và các sửa chữa tương ứng". U đại diện cho phiên bản gấp và u đại diện cho phiên bản thoải mái tương ứng với phiên bản R1CS. Lưu ý rằng Mạch 1 thu gọn phiên bản R1CS cam kết lỏng lẻo tương ứng với Mạch 2, trong khi Mạch 2 thu gọn phiên bản R1CS cam kết lỏng lẻo tương ứng với Mạch 1. Mục đích chính của Mạch 2 là thu gọn phiên bản R1CS cam kết chùng tương ứng với Mạch 1 và việc tính toán hàm trong mạch của nó là vô nghĩa. Thay vào đó, hàm F được triển khai ở Mạch 1. Kết hợp với “ngoại hình lý tưởng”, chúng ta có thể đoán đại khái mức độ hài lòng của U{i+2}^2, u{i+2}^1, u{i+2}^2, U{i+2}^1 là một phần quan trọng của chứng minh.

Bởi vì "mạch" được cắt thành hai phần và mạch tương ứng được gấp lại ở mạch kia. Có một số vấn đề ràng buộc giữa các phiên bản: liên kết giữa các phiên bản u và U và liên kết các phiên bản u đi qua giữa hai mạch. Để giải quyết các vấn đề ràng buộc này, các biến công khai x_0/x_1 được đưa vào mạch, trong đó x_1 chỉ định thể hiện U đầu ra mạch được liên kết với thể hiện u và đầu ra của hàm F hiện tại (để đơn giản hóa cấu trúc mạch, không được phản ánh trong hình). Bạn nghĩ, nếu kết quả H_1 của thể hiện U được đưa vào mạch, nếu thể hiện u thỏa mãn thì x_0/x_1 vừa thực vừa đáng tin cậy, tức là nó được "ràng buộc" với U. x_0 thiết lập mối quan hệ ràng buộc giữa đầu vào u và U và x_1 thiết lập mối quan hệ ràng buộc giữa đầu ra u và U.

Ví dụ: khi u{i+1}^1 được sử dụng làm đầu vào của nửa sau của mạch, nó sẽ đi qua Mạch 2 và đầu ra của nó u{i+1}^2.x0 = u{i+1 }^1.x1, do đó, khi đưa vào phần trên của mạch, nếu u{i+1}^2 có thể được thỏa mãn thì x_0 của nó phải bằng kết quả H1 của U_{i +1}^2. Điều này được kiểm tra trong Mạch 1. Bằng cách này, nó được đảm bảo rằng phiên bản chính xác được truyền giữa hai mạch.

Bằng chứng IVC

Để chứng minh IVC được tính toán chính xác trong một lần lặp nhất định, các thông tin sau cần được chứng minh một cách logic:

Ngoài việc chứng minh bốn trường hợp có thể thỏa mãn, còn cần chứng minh mối quan hệ ràng buộc giữa hai x1, như hình vẽ sau:

Liệu thông tin này có chính xác hay không đòi hỏi phải thực hiện mạch chứng minh bổ sung. Nghĩa là, phép chứng minh phép tính IVC là phép chứng minh mạch điện. Có thể hình dung rằng nếu là phép tính có nhiều lần lặp thì ban đầu các lần lặp này cần được thực hiện lần lượt trong mạch, bây giờ chỉ cần xác minh tính thỏa mãn và mối quan hệ ràng buộc của 4 thể hiện mạch. Sự cải thiện hiệu suất là rất lớn.

Sửa lỗi tấn công và thuật toán

Nhìn hình trên, tôi có trực giác, tôi cảm thấy các thể hiện của mạch trên và mạch dưới được “tách biệt” và không có ràng buộc. Trên thực tế, đây là cách cuộc tấn công được cấu trúc.

Giả mạo U_i^1 và U{i+1}^2, mặc dù chúng là giả mạo, nhưng là những trường hợp thỏa đáng. Giả mạo u{i+1}^1, sửa đổi x_0 và x_1 để tương ứng với phiên bản U giả mạo. Rõ ràng, trường hợp u{i+1}^1 không được thỏa mãn. Mặc dù không thỏa mãn nhưng mạch của Mạch 2 vẫn có thể thỏa mãn, nhưng thể hiện U{i+1}^1 đầu ra không thỏa mãn. Nếu u{i+1}^2 được xây dựng thành công, Mạch 1 có thể xây dựng u{i+2}^1 và U_{i+2}^2 thỏa mãn và thỏa mãn mối quan hệ ràng buộc của x1. Bằng cách này, một nửa bằng chứng giả mạo cuối cùng sẽ được xây dựng trước tiên. Thông qua tính đối xứng, có thể xây dựng thể hiện đầu ra của nửa dưới. Bằng cách "nối" kết quả của hai cách xây dựng, bằng chứng tính toán IVC có thể bị giả mạo.

Logic kiểm tra được sửa đổi như sau:

Chương 6 của bài báo "Các cuộc tấn công tiềm tàng trên Nova và các bản sửa lỗi tương ứng" cung cấp phân tích bảo mật chi tiết. Bạn bè quan tâm có thể tự mình kiểm tra giấy tờ gốc.

Ý tưởng cơ bản của Nova là gấp các trường hợp mạch thông qua sơ đồ gấp. Logic khá phức tạp và đòi hỏi phải suy nghĩ cẩn thận về quá trình gấp mạch và các mối quan hệ ràng buộc trong mạch.

Một từ để diễn tả: Tuyệt đối~

Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • 1
  • Chia sẻ
Bình luận
0/400
GateUser-a962ed6fvip
· 2023-09-11 15:38
Đi vào bối rối, đi ra bối rối
Xem bản gốcTrả lời0
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)