Phân tích nguyên lý STARKs của Binius và những suy nghĩ tối ưu hóa
1 Giới thiệu
Một trong những lý do chính khiến STARKs kém hiệu quả là: hầu hết các giá trị trong chương trình thực tế đều nhỏ, chẳng hạn như chỉ số trong vòng lặp for, giá trị đúng/sai, bộ đếm, v.v. Tuy nhiên, để đảm bảo an toàn cho chứng minh dựa trên cây Merkle, khi mở rộng dữ liệu bằng mã Reed-Solomon, nhiều giá trị dư thừa bổ sung sẽ chiếm toàn bộ miền, ngay cả khi giá trị gốc rất nhỏ. Để giải quyết vấn đề này, việc giảm kích thước miền trở thành chiến lược then chốt.
Độ rộng mã hóa của STARKs thế hệ 1 là 252bit, độ rộng mã hóa của STARKs thế hệ 2 là 64bit, độ rộng mã hóa của STARKs thế hệ 3 là 32bit, nhưng độ rộng mã hóa 32bit vẫn còn rất nhiều không gian lãng phí. So với đó, miền nhị phân cho phép thao tác trực tiếp trên các bit, mã hóa chặt chẽ và hiệu quả mà không có không gian lãng phí nào, tức là STARKs thế hệ 4.
So với Goldilocks, BabyBear, Mersenne31 và các nghiên cứu mới trong những năm gần đây về trường hữu hạn, nghiên cứu về trường nhị phân có thể truy ngược lại từ thập kỷ 80 của thế kỷ trước. Hiện tại, trường nhị phân đã được ứng dụng rộng rãi trong mật mã học, ví dụ điển hình bao gồm:
Tiêu chuẩn mã hóa nâng cao (AES), dựa trên miền F28;
Mã xác thực tin nhắn Galois ( GMAC ), dựa trên trường F2128;
Mã QR, sử dụng mã Reed-Solomon dựa trên F28;
Giao thức FRI gốc và zk-STARK, cũng như hàm băm Grøstl lọt vào vòng chung kết SHA-3, hàm băm này dựa trên trường F28, là một thuật toán băm rất phù hợp cho việc đệ quy.
Khi sử dụng miền nhỏ hơn, việc mở rộng miền trở nên ngày càng quan trọng để đảm bảo an ninh. Miền nhị phân mà Binius sử dụng hoàn toàn phụ thuộc vào việc mở rộng miền để đảm bảo an ninh và khả năng sử dụng thực tế. Hầu hết các đa thức liên quan trong tính toán Prover không cần phải vào miền mở rộng, mà chỉ cần hoạt động trong miền cơ bản, do đó đạt được hiệu suất cao trong miền nhỏ. Tuy nhiên, việc kiểm tra điểm ngẫu nhiên và tính toán FRI vẫn cần phải đi sâu vào miền mở rộng lớn hơn để đảm bảo an ninh cần thiết.
Khi xây dựng hệ thống chứng minh dựa trên miền nhị phân, có 2 vấn đề thực tiễn: Khi tính toán biểu diễn trace trong STARKs, kích thước miền sử dụng cần lớn hơn bậc của đa thức; Khi cam kết Merkle tree trong STARKs, cần thực hiện mã hóa Reed-Solomon, kích thước miền sử dụng cần lớn hơn kích thước sau khi mở rộng mã hóa.
Binius đã đưa ra một giải pháp sáng tạo để xử lý hai vấn đề này, và đạt được điều đó bằng cách biểu diễn cùng một dữ liệu theo hai cách khác nhau: đầu tiên, sử dụng đa thức đa biến (cụ thể là đa thức đa tuyến) thay cho đa thức đơn biến, thông qua giá trị của nó trên "siêu khối" (hypercubes) để biểu diễn toàn bộ quỹ đạo tính toán; thứ hai, do chiều dài của mỗi chiều của siêu khối đều là 2, nên không thể thực hiện mở rộng Reed-Solomon tiêu chuẩn như STARKs, nhưng có thể coi siêu khối như một hình vuông (square), và thực hiện mở rộng Reed-Solomon dựa trên hình vuông đó. Phương pháp này không chỉ đảm bảo an toàn mà còn nâng cao đáng kể hiệu quả mã hóa và hiệu suất tính toán.
2 Phân tích nguyên lý
Hiện tại, hầu hết các hệ thống SNARKs được xây dựng thường bao gồm hai phần sau:
Chứng minh Oracle tương tác đa thức lý thuyết thông tin (Information-Theoretic Polynomial Interactive Oracle Proof, PIOP): PIOP là cốt lõi của hệ thống chứng minh, chuyển đổi các quan hệ tính toán đầu vào thành các phương trình đa thức có thể xác minh. Các giao thức PIOP khác nhau cho phép người chứng minh gửi từng bước đa thức thông qua tương tác với người xác nhận, giúp người xác nhận xác minh tính đúng đắn của tính toán chỉ bằng cách truy vấn một số ít kết quả đánh giá đa thức. Các giao thức PIOP hiện có bao gồm: PLONK PIOP, Spartan PIOP và HyperPlonk PIOP, mỗi cái có cách xử lý biểu thức đa thức khác nhau, từ đó ảnh hưởng đến hiệu suất và hiệu quả của toàn bộ hệ thống SNARK.
Hệ thống cam kết đa thức (Polynomial Commitment Scheme, PCS): Hệ thống cam kết đa thức được sử dụng để chứng minh liệu phương trình đa thức do PIOP tạo ra có hợp lệ hay không. PCS là một công cụ mật mã, thông qua đó, người chứng minh có thể cam kết một đa thức và sau đó xác minh kết quả đánh giá của đa thức đó, đồng thời ẩn đi thông tin khác của đa thức. Các hệ thống cam kết đa thức phổ biến bao gồm KZG, Bulletproofs, FRI (Fast Reed-Solomon IOPP) và Brakedown. Các PCS khác nhau có hiệu suất, độ an toàn và tình huống áp dụng khác nhau.
Dựa trên yêu cầu cụ thể, chọn PIOP và PCS khác nhau, và kết hợp với miền hữu hạn hoặc đường cong elip phù hợp, có thể xây dựng các hệ thống chứng minh với các thuộc tính khác nhau. Ví dụ:
• Halo2: Kết hợp giữa PLONK PIOP và Bulletproofs PCS, dựa trên đường cong Pasta. Khi thiết kế Halo2, chú trọng đến khả năng mở rộng và loại bỏ thiết lập tin cậy trong giao thức ZCash.
• Plonky2: Kết hợp PLONK PIOP và FRI PCS, dựa trên miền Goldilocks. Plonky2 được thiết kế để đạt được tính tái diễn hiệu quả. Khi thiết kế những hệ thống này, PIOP và PCS được chọn phải tương thích với miền hữu hạn hoặc đường cong ellip được sử dụng, nhằm đảm bảo tính chính xác, hiệu suất và an ninh của hệ thống. Sự lựa chọn của những tổ hợp này không chỉ ảnh hưởng đến kích thước chứng minh và hiệu quả xác minh của SNARK, mà còn xác định xem hệ thống có thể đạt được tính minh bạch mà không cần thiết lập đáng tin cậy hay không, và liệu nó có thể hỗ trợ các chức năng mở rộng như chứng minh tái diễn hoặc chứng minh tổng hợp hay không.
Binius: HyperPlonk PIOP + Brakedown PCS + miền nhị phân. Cụ thể, Binius bao gồm năm công nghệ chính để đạt được hiệu quả và an toàn của nó. Đầu tiên, cấu trúc toán học dựa trên miền nhị phân tháp (towers of binary fields) đã tạo thành nền tảng cho tính toán của nó, cho phép thực hiện các phép toán đơn giản trong miền nhị phân. Thứ hai, Binius đã điều chỉnh HyperPlonk sản phẩm và kiểm tra hoán vị trong giao thức chứng minh Oracle tương tác của nó (PIOP), đảm bảo việc kiểm tra tính nhất quán an toàn và hiệu quả giữa các biến và hoán vị của chúng. Thứ ba, giao thức đã giới thiệu một chứng minh dịch chuyển đa thức mới, tối ưu hóa hiệu suất xác minh các mối quan hệ đa thức trên miền nhỏ. Thứ tư, Binius đã sử dụng một phiên bản cải tiến của chứng minh tìm kiếm Lasso, cung cấp sự linh hoạt và an toàn mạnh mẽ cho cơ chế tìm kiếm. Cuối cùng, giao thức sử dụng kế hoạch cam kết đa thức miền nhỏ (Small-Field PCS), cho phép nó thực hiện hệ thống chứng minh hiệu quả trên miền nhị phân và giảm thiểu chi phí thường liên quan đến miền lớn.
2.1 Miền hữu hạn: toán học dựa trên tháp của các trường nhị phân
Miền nhị phân tháp là chìa khóa để thực hiện tính toán có thể xác minh nhanh chóng, chủ yếu nhờ vào hai khía cạnh: tính toán hiệu quả và tính toán hóa hiệu quả. Miền nhị phân về bản chất hỗ trợ các phép toán số học cực kỳ hiệu quả, khiến nó trở thành lựa chọn lý tưởng cho các ứng dụng mật mã nhạy cảm với yêu cầu hiệu suất. Hơn nữa, cấu trúc miền nhị phân hỗ trợ quy trình tính toán hóa đơn giản hóa, tức là các phép toán được thực hiện trên miền nhị phân có thể được biểu diễn dưới dạng đại số gọn gàng và dễ xác minh. Những đặc điểm này, cộng với khả năng tận dụng tối đa các đặc điểm phân cấp thông qua cấu trúc tháp, khiến miền nhị phân đặc biệt phù hợp cho các hệ thống chứng minh có thể mở rộng như Binius.
Trong đó "canonical" chỉ cách diễn đạt duy nhất và trực tiếp của các phần tử trong miền nhị phân. Chẳng hạn, trong miền nhị phân cơ bản F2, bất kỳ chuỗi k bit nào cũng có thể được ánh xạ trực tiếp đến một phần tử miền nhị phân k bit. Điều này khác với miền số nguyên tố, miền số nguyên tố không thể cung cấp cách diễn đạt chuẩn này trong một số bit nhất định. Mặc dù miền số nguyên tố 32 bit có thể nằm trong 32 bit, nhưng không phải mọi chuỗi 32 bit đều có thể tương ứng duy nhất với một phần tử miền, trong khi miền nhị phân lại có sự tiện lợi của ánh xạ một-một này. Trong miền số nguyên tố Fp, các phương pháp rút gọn phổ biến bao gồm rút gọn Barrett, rút gọn Montgomery, cũng như các phương pháp rút gọn đặc biệt cho các miền hữu hạn cụ thể như Mersenne-31 hoặc Goldilocks-64. Trong miền nhị phân F2k, các phương pháp rút gọn thường dùng bao gồm rút gọn đặc biệt (như được sử dụng trong AES), rút gọn Montgomery (như được sử dụng trong POLYVAL) và rút gọn đệ quy (như Tower). Bài báo "Khám Phá Không Gian Thiết Kế Của Các Triển Khai Phần Cứng ECC Trên Miền Số Nguyên Tố So Với Miền Nhị Phân" chỉ ra rằng miền nhị phân không cần phải giới thiệu việc chuyển sang trong các phép toán cộng và nhân, và phép toán bình phương trong miền nhị phân rất hiệu quả, vì nó tuân theo quy tắc đơn giản (X + Y )2 = X2 + Y 2.
Như hình 1 cho thấy, một chuỗi 128 bit: chuỗi này có thể được giải thích theo nhiều cách trong ngữ cảnh của miền nhị phân. Nó có thể được coi là một phần tử độc nhất trong miền nhị phân 128 bit, hoặc được phân tích thành hai phần tử miền tháp 64 bit, bốn phần tử miền tháp 32 bit, mười sáu phần tử miền tháp 8 bit, hoặc 128 phần tử miền F2. Tính linh hoạt của cách diễn đạt này không cần bất kỳ chi phí tính toán nào, chỉ là việc chuyển đổi kiểu chuỗi bit (typecast), là một thuộc tính rất thú vị và hữu ích. Đồng thời, các phần tử miền nhỏ có thể được đóng gói thành các phần tử miền lớn hơn mà không cần chi phí tính toán bổ sung. Giao thức Binius đã tận dụng đặc điểm này để cải thiện hiệu quả tính toán. Ngoài ra, bài báo "On Efficient Inversion in Tower Fields of Characteristic Two" đã khám phá độ phức tạp tính toán của phép nhân, bình phương và phép đảo trong miền tháp nhị phân n bit (có thể phân giải thành miền con m bit).
2.2 PIOP: Phiên bản cải biên của Sản phẩm HyperPlonk và Kiểm tra Permutation------Áp dụng cho miền nhị phân
Thiết kế PIOP trong giao thức Binius đã tham khảo HyperPlonk, sử dụng một loạt các cơ chế kiểm tra cốt lõi, nhằm xác minh tính chính xác của đa thức và tập hợp đa biến. Những kiểm tra cốt lõi này bao gồm:
GateCheck: Xác minh chứng nhận bảo mật ω và đầu vào công khai x có thỏa mãn quan hệ toán tử mạch C(x,ω)=0, để đảm bảo mạch hoạt động đúng.
PermutationCheck: Xác thực kết quả đánh giá của hai đa thức nhiều biến f và g trên hình lập phương Boolean có phải là mối quan hệ hoán vị f(x) = f(π(x)), để đảm bảo tính nhất quán của sự sắp xếp giữa các biến đa thức.
LookupCheck: Xác minh xem giá trị của đa thức có nằm trong bảng tra cứu đã cho hay không, tức là f(Bµ) ⊆ T(Bµ), đảm bảo rằng một số giá trị nằm trong phạm vi chỉ định.
MultisetCheck: Kiểm tra hai tập hợp đa biến có bằng nhau hay không, tức là {(x1,i,x2,)}i∈H={(y1,i,y2,)}i∈H, đảm bảo tính nhất quán giữa nhiều tập hợp.
ProductCheck: Kiểm tra xem giá trị của đa thức hợp lý trên hypercube Boolean có bằng với một giá trị đã tuyên bố ∏x∈Hµ f(x) = s, để đảm bảo tính chính xác của tích đa thức.
ZeroCheck: Xác minh một đa biến đa thức tại bất kỳ điểm nào trên hypercube Boolean có phải là không ∏x∈Hµ f(x) = 0, ∀x ∈ Bµ, để đảm bảo phân phối điểm không của đa thức.
SumCheck: Kiểm tra xem tổng của đa thức nhiều biến có bằng giá trị đã khai báo hay không ∑x∈Hµ f(x) = s. Bằng cách chuyển đổi vấn đề đánh giá đa thức nhiều biến thành đánh giá đa thức một biến, làm giảm độ phức tạp tính toán của bên xác minh. Hơn nữa, SumCheck còn cho phép xử lý hàng loạt, thông qua việc giới thiệu số ngẫu nhiên, cấu trúc tổ hợp tuyến tính để thực hiện xử lý hàng loạt nhiều trường hợp kiểm tra tổng.
BatchCheck: Dựa trên SumCheck, xác thực tính chính xác của việc đánh giá nhiều đa thức đa biến để nâng cao hiệu quả của giao thức.
Mặc dù Binius và HyperPlonk có nhiều điểm tương đồng trong thiết kế giao thức, nhưng Binius đã cải tiến ở 3 khía cạnh sau:
Tối ưu hóa ProductCheck: Trong HyperPlonk, ProductCheck yêu cầu mẫu số U không được bằng 0 ở mọi điểm trong siêu khối và tích phải bằng một giá trị cụ thể; Binius đơn giản hóa quy trình kiểm tra này bằng cách chuyên biệt hóa giá trị đó thành 1, từ đó giảm độ phức tạp tính toán.
Xử lý vấn đề chia cho không: HyperPlonk không xử lý đầy đủ các trường hợp chia cho không, dẫn đến không thể khẳng định vấn đề U không bằng không trên siêu lập phương; Binius xử lý đúng vấn đề này, ngay cả khi mẫu số bằng không, ProductCheck của Binius vẫn có thể tiếp tục xử lý, cho phép mở rộng đến bất kỳ giá trị tích nào.
Kiểm tra hoán vị giữa các cột: HyperPlonk không có chức năng này; Binius hỗ trợ kiểm tra hoán vị giữa nhiều cột, điều này cho phép Binius xử lý các trường hợp sắp xếp đa thức phức tạp hơn.
Do đó, Binius đã cải thiện cơ chế PIOPSumCheck hiện có, nâng cao tính linh hoạt và hiệu quả của giao thức, đặc biệt trong việc xử lý xác thực đa biến đa thức phức tạp hơn, cung cấp hỗ trợ chức năng mạnh mẽ hơn. Những cải tiến này không chỉ giải quyết được những hạn chế trong HyperPlonk mà còn đặt nền tảng cho các hệ thống chứng minh dựa trên miền nhị phân trong tương lai.
2.3 PIOP:thao tác chuyển đổi đa tuyến mới------áp dụng cho hypercube boolean
Trong giao thức Binius, việc xây dựng và xử lý đa thức ảo là một trong những công nghệ then chốt, có khả năng tạo ra và thao tác hiệu quả các đa thức được phát sinh từ tay cầm đầu vào hoặc các đa thức ảo khác. Dưới đây là hai phương pháp quan trọng:
Đóng gó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.
13 thích
Phần thưởng
13
8
Chia sẻ
Bình luận
0/400
StableGeniusDegen
· 07-23 00:04
Nói quá sâu thì chúng ta cũng không theo kịp được.
Xem bản gốcTrả lời0
LiquiditySurfer
· 07-21 04:57
Vùng này lãng phí quá, đã ba đời rồi mà vẫn vậy.
Xem bản gốcTrả lời0
RetailTherapist
· 07-20 05:05
Cái này tốn nhiều não quá nhỉ
Xem bản gốcTrả lời0
CryptoSourGrape
· 07-20 00:28
Nếu hồi đó tôi nghiên cứu những điều này thay vì nằm im thì tốt... Ai, càng nhìn càng thấy chua xót.
Xem bản gốcTrả lời0
gas_fee_therapist
· 07-20 00:24
Việc cắt giảm băng thông thực sự là để giảm chi phí và tăng hiệu quả phải không?
Xem bản gốcTrả lời0
ImpermanentLossEnjoyer
· 07-20 00:20
32bit lại bị chê bai rồi
Xem bản gốcTrả lời0
MEVHunter
· 07-20 00:19
heh, một giao thức không hiệu quả khác chín muồi cho việc khai thác... mẹo trường nhị phân sẽ không cứu bạn khỏi những con cá mập mempool
Xem bản gốcTrả lời0
MEV_Whisperer
· 07-20 00:14
Tối ưu vẫn chưa đến hồi kết, 32bit vẫn quá lãng phí không gian.
Binius đổi mới: Phân tích sâu về giải pháp tối ưu hóa STARKs trong lĩnh vực nhị phân
Phân tích nguyên lý STARKs của Binius và những suy nghĩ tối ưu hóa
1 Giới thiệu
Một trong những lý do chính khiến STARKs kém hiệu quả là: hầu hết các giá trị trong chương trình thực tế đều nhỏ, chẳng hạn như chỉ số trong vòng lặp for, giá trị đúng/sai, bộ đếm, v.v. Tuy nhiên, để đảm bảo an toàn cho chứng minh dựa trên cây Merkle, khi mở rộng dữ liệu bằng mã Reed-Solomon, nhiều giá trị dư thừa bổ sung sẽ chiếm toàn bộ miền, ngay cả khi giá trị gốc rất nhỏ. Để giải quyết vấn đề này, việc giảm kích thước miền trở thành chiến lược then chốt.
Độ rộng mã hóa của STARKs thế hệ 1 là 252bit, độ rộng mã hóa của STARKs thế hệ 2 là 64bit, độ rộng mã hóa của STARKs thế hệ 3 là 32bit, nhưng độ rộng mã hóa 32bit vẫn còn rất nhiều không gian lãng phí. So với đó, miền nhị phân cho phép thao tác trực tiếp trên các bit, mã hóa chặt chẽ và hiệu quả mà không có không gian lãng phí nào, tức là STARKs thế hệ 4.
So với Goldilocks, BabyBear, Mersenne31 và các nghiên cứu mới trong những năm gần đây về trường hữu hạn, nghiên cứu về trường nhị phân có thể truy ngược lại từ thập kỷ 80 của thế kỷ trước. Hiện tại, trường nhị phân đã được ứng dụng rộng rãi trong mật mã học, ví dụ điển hình bao gồm:
Tiêu chuẩn mã hóa nâng cao (AES), dựa trên miền F28;
Mã xác thực tin nhắn Galois ( GMAC ), dựa trên trường F2128;
Mã QR, sử dụng mã Reed-Solomon dựa trên F28;
Giao thức FRI gốc và zk-STARK, cũng như hàm băm Grøstl lọt vào vòng chung kết SHA-3, hàm băm này dựa trên trường F28, là một thuật toán băm rất phù hợp cho việc đệ quy.
Khi sử dụng miền nhỏ hơn, việc mở rộng miền trở nên ngày càng quan trọng để đảm bảo an ninh. Miền nhị phân mà Binius sử dụng hoàn toàn phụ thuộc vào việc mở rộng miền để đảm bảo an ninh và khả năng sử dụng thực tế. Hầu hết các đa thức liên quan trong tính toán Prover không cần phải vào miền mở rộng, mà chỉ cần hoạt động trong miền cơ bản, do đó đạt được hiệu suất cao trong miền nhỏ. Tuy nhiên, việc kiểm tra điểm ngẫu nhiên và tính toán FRI vẫn cần phải đi sâu vào miền mở rộng lớn hơn để đảm bảo an ninh cần thiết.
Khi xây dựng hệ thống chứng minh dựa trên miền nhị phân, có 2 vấn đề thực tiễn: Khi tính toán biểu diễn trace trong STARKs, kích thước miền sử dụng cần lớn hơn bậc của đa thức; Khi cam kết Merkle tree trong STARKs, cần thực hiện mã hóa Reed-Solomon, kích thước miền sử dụng cần lớn hơn kích thước sau khi mở rộng mã hóa.
Binius đã đưa ra một giải pháp sáng tạo để xử lý hai vấn đề này, và đạt được điều đó bằng cách biểu diễn cùng một dữ liệu theo hai cách khác nhau: đầu tiên, sử dụng đa thức đa biến (cụ thể là đa thức đa tuyến) thay cho đa thức đơn biến, thông qua giá trị của nó trên "siêu khối" (hypercubes) để biểu diễn toàn bộ quỹ đạo tính toán; thứ hai, do chiều dài của mỗi chiều của siêu khối đều là 2, nên không thể thực hiện mở rộng Reed-Solomon tiêu chuẩn như STARKs, nhưng có thể coi siêu khối như một hình vuông (square), và thực hiện mở rộng Reed-Solomon dựa trên hình vuông đó. Phương pháp này không chỉ đảm bảo an toàn mà còn nâng cao đáng kể hiệu quả mã hóa và hiệu suất tính toán.
2 Phân tích nguyên lý
Hiện tại, hầu hết các hệ thống SNARKs được xây dựng thường bao gồm hai phần sau:
Chứng minh Oracle tương tác đa thức lý thuyết thông tin (Information-Theoretic Polynomial Interactive Oracle Proof, PIOP): PIOP là cốt lõi của hệ thống chứng minh, chuyển đổi các quan hệ tính toán đầu vào thành các phương trình đa thức có thể xác minh. Các giao thức PIOP khác nhau cho phép người chứng minh gửi từng bước đa thức thông qua tương tác với người xác nhận, giúp người xác nhận xác minh tính đúng đắn của tính toán chỉ bằng cách truy vấn một số ít kết quả đánh giá đa thức. Các giao thức PIOP hiện có bao gồm: PLONK PIOP, Spartan PIOP và HyperPlonk PIOP, mỗi cái có cách xử lý biểu thức đa thức khác nhau, từ đó ảnh hưởng đến hiệu suất và hiệu quả của toàn bộ hệ thống SNARK.
Hệ thống cam kết đa thức (Polynomial Commitment Scheme, PCS): Hệ thống cam kết đa thức được sử dụng để chứng minh liệu phương trình đa thức do PIOP tạo ra có hợp lệ hay không. PCS là một công cụ mật mã, thông qua đó, người chứng minh có thể cam kết một đa thức và sau đó xác minh kết quả đánh giá của đa thức đó, đồng thời ẩn đi thông tin khác của đa thức. Các hệ thống cam kết đa thức phổ biến bao gồm KZG, Bulletproofs, FRI (Fast Reed-Solomon IOPP) và Brakedown. Các PCS khác nhau có hiệu suất, độ an toàn và tình huống áp dụng khác nhau.
Dựa trên yêu cầu cụ thể, chọn PIOP và PCS khác nhau, và kết hợp với miền hữu hạn hoặc đường cong elip phù hợp, có thể xây dựng các hệ thống chứng minh với các thuộc tính khác nhau. Ví dụ:
• Halo2: Kết hợp giữa PLONK PIOP và Bulletproofs PCS, dựa trên đường cong Pasta. Khi thiết kế Halo2, chú trọng đến khả năng mở rộng và loại bỏ thiết lập tin cậy trong giao thức ZCash.
• Plonky2: Kết hợp PLONK PIOP và FRI PCS, dựa trên miền Goldilocks. Plonky2 được thiết kế để đạt được tính tái diễn hiệu quả. Khi thiết kế những hệ thống này, PIOP và PCS được chọn phải tương thích với miền hữu hạn hoặc đường cong ellip được sử dụng, nhằm đảm bảo tính chính xác, hiệu suất và an ninh của hệ thống. Sự lựa chọn của những tổ hợp này không chỉ ảnh hưởng đến kích thước chứng minh và hiệu quả xác minh của SNARK, mà còn xác định xem hệ thống có thể đạt được tính minh bạch mà không cần thiết lập đáng tin cậy hay không, và liệu nó có thể hỗ trợ các chức năng mở rộng như chứng minh tái diễn hoặc chứng minh tổng hợp hay không.
Binius: HyperPlonk PIOP + Brakedown PCS + miền nhị phân. Cụ thể, Binius bao gồm năm công nghệ chính để đạt được hiệu quả và an toàn của nó. Đầu tiên, cấu trúc toán học dựa trên miền nhị phân tháp (towers of binary fields) đã tạo thành nền tảng cho tính toán của nó, cho phép thực hiện các phép toán đơn giản trong miền nhị phân. Thứ hai, Binius đã điều chỉnh HyperPlonk sản phẩm và kiểm tra hoán vị trong giao thức chứng minh Oracle tương tác của nó (PIOP), đảm bảo việc kiểm tra tính nhất quán an toàn và hiệu quả giữa các biến và hoán vị của chúng. Thứ ba, giao thức đã giới thiệu một chứng minh dịch chuyển đa thức mới, tối ưu hóa hiệu suất xác minh các mối quan hệ đa thức trên miền nhỏ. Thứ tư, Binius đã sử dụng một phiên bản cải tiến của chứng minh tìm kiếm Lasso, cung cấp sự linh hoạt và an toàn mạnh mẽ cho cơ chế tìm kiếm. Cuối cùng, giao thức sử dụng kế hoạch cam kết đa thức miền nhỏ (Small-Field PCS), cho phép nó thực hiện hệ thống chứng minh hiệu quả trên miền nhị phân và giảm thiểu chi phí thường liên quan đến miền lớn.
2.1 Miền hữu hạn: toán học dựa trên tháp của các trường nhị phân
Miền nhị phân tháp là chìa khóa để thực hiện tính toán có thể xác minh nhanh chóng, chủ yếu nhờ vào hai khía cạnh: tính toán hiệu quả và tính toán hóa hiệu quả. Miền nhị phân về bản chất hỗ trợ các phép toán số học cực kỳ hiệu quả, khiến nó trở thành lựa chọn lý tưởng cho các ứng dụng mật mã nhạy cảm với yêu cầu hiệu suất. Hơn nữa, cấu trúc miền nhị phân hỗ trợ quy trình tính toán hóa đơn giản hóa, tức là các phép toán được thực hiện trên miền nhị phân có thể được biểu diễn dưới dạng đại số gọn gàng và dễ xác minh. Những đặc điểm này, cộng với khả năng tận dụng tối đa các đặc điểm phân cấp thông qua cấu trúc tháp, khiến miền nhị phân đặc biệt phù hợp cho các hệ thống chứng minh có thể mở rộng như Binius.
Trong đó "canonical" chỉ cách diễn đạt duy nhất và trực tiếp của các phần tử trong miền nhị phân. Chẳng hạn, trong miền nhị phân cơ bản F2, bất kỳ chuỗi k bit nào cũng có thể được ánh xạ trực tiếp đến một phần tử miền nhị phân k bit. Điều này khác với miền số nguyên tố, miền số nguyên tố không thể cung cấp cách diễn đạt chuẩn này trong một số bit nhất định. Mặc dù miền số nguyên tố 32 bit có thể nằm trong 32 bit, nhưng không phải mọi chuỗi 32 bit đều có thể tương ứng duy nhất với một phần tử miền, trong khi miền nhị phân lại có sự tiện lợi của ánh xạ một-một này. Trong miền số nguyên tố Fp, các phương pháp rút gọn phổ biến bao gồm rút gọn Barrett, rút gọn Montgomery, cũng như các phương pháp rút gọn đặc biệt cho các miền hữu hạn cụ thể như Mersenne-31 hoặc Goldilocks-64. Trong miền nhị phân F2k, các phương pháp rút gọn thường dùng bao gồm rút gọn đặc biệt (như được sử dụng trong AES), rút gọn Montgomery (như được sử dụng trong POLYVAL) và rút gọn đệ quy (như Tower). Bài báo "Khám Phá Không Gian Thiết Kế Của Các Triển Khai Phần Cứng ECC Trên Miền Số Nguyên Tố So Với Miền Nhị Phân" chỉ ra rằng miền nhị phân không cần phải giới thiệu việc chuyển sang trong các phép toán cộng và nhân, và phép toán bình phương trong miền nhị phân rất hiệu quả, vì nó tuân theo quy tắc đơn giản (X + Y )2 = X2 + Y 2.
Như hình 1 cho thấy, một chuỗi 128 bit: chuỗi này có thể được giải thích theo nhiều cách trong ngữ cảnh của miền nhị phân. Nó có thể được coi là một phần tử độc nhất trong miền nhị phân 128 bit, hoặc được phân tích thành hai phần tử miền tháp 64 bit, bốn phần tử miền tháp 32 bit, mười sáu phần tử miền tháp 8 bit, hoặc 128 phần tử miền F2. Tính linh hoạt của cách diễn đạt này không cần bất kỳ chi phí tính toán nào, chỉ là việc chuyển đổi kiểu chuỗi bit (typecast), là một thuộc tính rất thú vị và hữu ích. Đồng thời, các phần tử miền nhỏ có thể được đóng gói thành các phần tử miền lớn hơn mà không cần chi phí tính toán bổ sung. Giao thức Binius đã tận dụng đặc điểm này để cải thiện hiệu quả tính toán. Ngoài ra, bài báo "On Efficient Inversion in Tower Fields of Characteristic Two" đã khám phá độ phức tạp tính toán của phép nhân, bình phương và phép đảo trong miền tháp nhị phân n bit (có thể phân giải thành miền con m bit).
2.2 PIOP: Phiên bản cải biên của Sản phẩm HyperPlonk và Kiểm tra Permutation------Áp dụng cho miền nhị phân
Thiết kế PIOP trong giao thức Binius đã tham khảo HyperPlonk, sử dụng một loạt các cơ chế kiểm tra cốt lõi, nhằm xác minh tính chính xác của đa thức và tập hợp đa biến. Những kiểm tra cốt lõi này bao gồm:
GateCheck: Xác minh chứng nhận bảo mật ω và đầu vào công khai x có thỏa mãn quan hệ toán tử mạch C(x,ω)=0, để đảm bảo mạch hoạt động đúng.
PermutationCheck: Xác thực kết quả đánh giá của hai đa thức nhiều biến f và g trên hình lập phương Boolean có phải là mối quan hệ hoán vị f(x) = f(π(x)), để đảm bảo tính nhất quán của sự sắp xếp giữa các biến đa thức.
LookupCheck: Xác minh xem giá trị của đa thức có nằm trong bảng tra cứu đã cho hay không, tức là f(Bµ) ⊆ T(Bµ), đảm bảo rằng một số giá trị nằm trong phạm vi chỉ định.
MultisetCheck: Kiểm tra hai tập hợp đa biến có bằng nhau hay không, tức là {(x1,i,x2,)}i∈H={(y1,i,y2,)}i∈H, đảm bảo tính nhất quán giữa nhiều tập hợp.
ProductCheck: Kiểm tra xem giá trị của đa thức hợp lý trên hypercube Boolean có bằng với một giá trị đã tuyên bố ∏x∈Hµ f(x) = s, để đảm bảo tính chính xác của tích đa thức.
ZeroCheck: Xác minh một đa biến đa thức tại bất kỳ điểm nào trên hypercube Boolean có phải là không ∏x∈Hµ f(x) = 0, ∀x ∈ Bµ, để đảm bảo phân phối điểm không của đa thức.
SumCheck: Kiểm tra xem tổng của đa thức nhiều biến có bằng giá trị đã khai báo hay không ∑x∈Hµ f(x) = s. Bằng cách chuyển đổi vấn đề đánh giá đa thức nhiều biến thành đánh giá đa thức một biến, làm giảm độ phức tạp tính toán của bên xác minh. Hơn nữa, SumCheck còn cho phép xử lý hàng loạt, thông qua việc giới thiệu số ngẫu nhiên, cấu trúc tổ hợp tuyến tính để thực hiện xử lý hàng loạt nhiều trường hợp kiểm tra tổng.
BatchCheck: Dựa trên SumCheck, xác thực tính chính xác của việc đánh giá nhiều đa thức đa biến để nâng cao hiệu quả của giao thức.
Mặc dù Binius và HyperPlonk có nhiều điểm tương đồng trong thiết kế giao thức, nhưng Binius đã cải tiến ở 3 khía cạnh sau:
Tối ưu hóa ProductCheck: Trong HyperPlonk, ProductCheck yêu cầu mẫu số U không được bằng 0 ở mọi điểm trong siêu khối và tích phải bằng một giá trị cụ thể; Binius đơn giản hóa quy trình kiểm tra này bằng cách chuyên biệt hóa giá trị đó thành 1, từ đó giảm độ phức tạp tính toán.
Xử lý vấn đề chia cho không: HyperPlonk không xử lý đầy đủ các trường hợp chia cho không, dẫn đến không thể khẳng định vấn đề U không bằng không trên siêu lập phương; Binius xử lý đúng vấn đề này, ngay cả khi mẫu số bằng không, ProductCheck của Binius vẫn có thể tiếp tục xử lý, cho phép mở rộng đến bất kỳ giá trị tích nào.
Kiểm tra hoán vị giữa các cột: HyperPlonk không có chức năng này; Binius hỗ trợ kiểm tra hoán vị giữa nhiều cột, điều này cho phép Binius xử lý các trường hợp sắp xếp đa thức phức tạp hơn.
Do đó, Binius đã cải thiện cơ chế PIOPSumCheck hiện có, nâng cao tính linh hoạt và hiệu quả của giao thức, đặc biệt trong việc xử lý xác thực đa biến đa thức phức tạp hơn, cung cấp hỗ trợ chức năng mạnh mẽ hơn. Những cải tiến này không chỉ giải quyết được những hạn chế trong HyperPlonk mà còn đặt nền tảng cho các hệ thống chứng minh dựa trên miền nhị phân trong tương lai.
2.3 PIOP:thao tác chuyển đổi đa tuyến mới------áp dụng cho hypercube boolean
Trong giao thức Binius, việc xây dựng và xử lý đa thức ảo là một trong những công nghệ then chốt, có khả năng tạo ra và thao tác hiệu quả các đa thức được phát sinh từ tay cầm đầu vào hoặc các đa thức ảo khác. Dưới đây là hai phương pháp quan trọng: