Cải tiến Binius STARKs: Hệ thống chứng minh không kiến thức hiệu quả dựa trên miền nhị phân

Phân tích nguyên lý Binius STARKs 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ỏ, như chỉ số trong vòng lặp for, giá trị đúng sai, bộ đếm, v.v. Tuy nhiên, để đảm bảo tính an toàn của các chứng minh dựa trên cây Merkle, việc sử dụng mã Reed-Solomon để mở rộng dữ liệu sẽ tạo ra nhiều giá trị dư thừa thêm 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 nhiều không gian lãng phí. So với điều đó, 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ó bất kỳ 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ể được truy ngược lại từ những năm 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 miền F2128;

  • Mã QR, sử dụng mã hóa 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 vào vòng chung kết SHA-3, hàm này dựa trên miền F28, là một thuật toán băm rất phù hợp cho đệ quy.

Khi sử dụng miền nhỏ hơn, thao tác mở rộng miền trở nên ngày càng quan trọng để đảm bảo an toàn. 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 toàn và tính khả 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ơ sở, từ đó đạ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 toàn 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 tế: Khi tính toán biểu diễn trace trong STARKs, kích thước miền sử dụng phải 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 phải lớn hơn kích thước sau khi mở rộng mã.

Binius đã đề xuất 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 biến ( cụ thể là đa thức đa tuyến tính ) thay thế cho đa thức đơn biến, bằng cách sử dụng giá trị của nó trên "siêu lập phương" ( 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 trong siêu lập phương đều bằng 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 lập phương như một hình vuông ( square ), và dựa trên hình vuông đó để thực hiện mở rộng Reed-Solomon. Phương pháp này đảm bảo an toàn trong khi 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 thông tin lý thuyết ( 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 minh, cho phép người xác minh xác minh xem tính toán có đúng hay không chỉ bằng cách truy vấn kết quả đánh giá của một số ít đ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 đều có cách xử lý các biểu thức đa thức khác nhau, do đó ảnh hưởng đến hiệu suất và hiệu quả toàn bộ hệ thống SNARK.

  • Kế hoạch cam kết đa thức ( Polynomial Commitment Scheme, PCS ): Kế hoạch cam kết đa thức được sử dụng để chứng minh sự tồn tại của các phương trình đa thức được tạo ra bởi PIOP. 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 thông tin khác của đa thức. Các kế hoạch 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 nhu cầu cụ thể, lựa chọn các PIOP và PCS khác nhau, và kết hợp với miền hữu hạn hoặc đường cong ellip phù hợp, có thể xây dựng hệ thống chứng minh với các thuộc tính khác nhau. Ví dụ:

• Halo2: được kết hợp giữa PLONK PIOP và Bulletproofs PCS, và dựa trên đường cong Pasta. Halo2 được thiết kế chú trọng vào khả năng mở rộng và loại bỏ thiết lập tin cậy trong giao thức ZCash.

• Plonky2: áp dụng PLONK PIOP kết hợp với FRI PCS và dựa trên miền Goldilocks. Plonky2 được thiết kế để đạt được sự đệ quy hiệu quả. Khi thiết kế các hệ thống này, PIOP và PCS được lựa chọn phải tương thích với miền hữu hạn hoặc đường cong elliptic đang sử dụng, để đảm bảo tính đúng đắn, hiệu suất và độ an toàn của hệ thống. Sự lựa chọn của những kết hợp này không chỉ ảnh hưởng đến kích thước chứng minh SNARK và hiệu suất xác minh, mà còn quyết đị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, cũng như có thể hỗ trợ các tính năng mở rộng như chứng minh đệ quy hoặc chứng minh tập hợp.

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 số học dựa trên tháp miền nhị phân (towers of binary fields) đã tạo thành nền tảng cho các phép toán của nó, có khả năng thực hiện các phép toán đơn giản trong miền nhị phân. Thứ hai, Binius trong giao thức chứng minh Oracle tương tác (PIOP) đã điều chỉnh kiểm tra tích và hoán vị của HyperPlonk, đảm bảo 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 tuyến mới, tối ưu hóa hiệu quả xác minh các mối quan hệ đa tuyến 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, mang lại tính 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 những chi phí thường liên quan đến miền lớn.

2.1 Trường hữu hạn: Số học dựa trên các tháp của 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à số học hiệu quả. Miền nhị phân về bản chất hỗ trợ các phép toán số học hiệu quả cao, 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 về hiệu suất. Hơn nữa, cấu trúc miền nhị phân hỗ trợ quy trình số học đơn giản hóa, tức là các phép toán 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 triệt để các đặc tính 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 với các hệ thống chứng minh có thể mở rộng như Binius.

Trong đó "canonical" đề cập đến cách biểu diễn duy nhất và trực tiếp của các phần tử trong miền nhị phân. Ví dụ, 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ử trong miền nhị phân k bit. Điều này khác với miền số nguyên tố, nơi không thể cung cấp cách biểu diễn chuẩn như vậy trong một số bit nhất định. Mặc dù miền số nguyên tố 32 bit có thể chứa 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ử trong 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, và 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 được sử dụng bao gồm rút gọn đặc biệt ( như trong AES ), rút gọn Montgomery ( như 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 ECC-Hardware Triển Khai 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 thêm bậc 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 + Y2.

Như hình 1 cho thấy, một chuỗi 128 bit: chuỗi này có thể được diễn giải theo nhiều cách trong bối cảnh của miền nhị phân. Nó có thể được coi là một phần tử duy 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, 16 phần tử miền tháp 8 bit, hoặc 128 phần tử miền F2. Sự linh hoạt trong cách biểu diễn này không yêu cầu bất kỳ chi phí tính toán nào, chỉ là một chuyển đổi kiểu chuỗi bit (typecast), đây 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 thêm chi phí tính toán. Giao thức Binius đã tận dụng đặc điểm này để tăng cường hiệu quả tính toán. Hơn nữa, tài liệu "On Efficient Inversion in Tower Fields of Characteristic Two" đã thảo luận về độ 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 rã thành miền con m bit (.

![Bitlayer Research:Phân tích nguyên lý Binius STARKs và suy nghĩ tối ưu hóa])https://img-cdn.gateio.im/webp-social/moments-5775a629f494c4e01e2b74d864fa4100.webp(

) 2.2 PIOP: Phiên bản cải biên của sản phẩm HyperPlonk và PermutationCheck------Áp dụng cho trường nhị phân

Thiết kế PIOP trong giao thức Binius lấy cảm hứng từ HyperPlonk, áp dụng một loạt cơ chế kiểm tra cốt lõi, dùng để xác minh tính chính xác của đa thức và tập hợp đa biến. Các kiểm tra cốt lõi này bao gồm:

  1. GateCheck: Xác minh chứng chỉ bảo mật ω và đầu vào công khai x có thỏa mãn quan hệ tính toán của mạch C###x,ω(=0, để đảm bảo mạch hoạt động chính xác.

  2. PermutationCheck: Xác thực kết quả đánh giá của hai đa thức đa biến f và g trên hypercube Boolean có phải là quan hệ hoán vị hay không 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.

  3. LookupCheck: Xác minh 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 khoảng đã chỉ định.

  4. MultisetCheck: Kiểm tra xem 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.

  5. ProductCheck: Kiểm tra xem giá trị của đa thức hợp lý trên khối siêu Boolean có bằng một giá trị đã tuyên bố nào đó ∏x∈Hµ f)x( = s, để đảm bảo tính chính xác của tích đa thức.

  6. ZeroCheck: Xác minh một đa biến đa thức tại bất kỳ điểm nào trên siêu lập phương Boolean có phải là không ∏x∈Hµ f)x( = 0, ∀x ∈ Bµ, để đảm bảo phân phối các điểm không của đa thức.

  7. SumCheck: Kiểm tra xem tổng của đa biến đa thức có bằng giá trị đã khai báo ∑x∈Hµ f)x( = s hay không. Bằng cách chuyển đổi bài toán đánh giá đa thức nhiều biến thành bài toán đánh giá đa thức một biến, giảm độ phức tạp tính toán của bên xác minh. Ngoài ra, SumCheck còn cho phép xử lý hàng loạt, thông qua việc đưa vào số ngẫu nhiên, xây dựng tổ hợp tuyến tính để thực hiện xử lý hàng loạt cho nhiều trường hợp kiểm tra tổng.

  8. BatchCheck: Dựa trên SumCheck, xác minh độ chính xác của việc đánh giá nhiều đa thức nhiều biến để cải thiện 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 nơi trên khối siêu lập phương, 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 đặc trưng 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 đủ trường hợp chia cho không, dẫn đến không thể khẳng định U không bằng không trên siêu khối; Binius đã xử lý đúng vấn đề này, ngay cả trong trường hợp 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ị Kcross: 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 tình huống 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 là trong việc xử lý xác minh đ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: lập luận dịch đa tuyến tính mới------thích hợp 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 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:

  • Packing: Phương pháp này tối ưu hóa hoạt động bằng cách gói các phần tử nhỏ hơn ở các vị trí liền kề trong thứ tự từ điển thành các phần tử lớn hơn. Toán tử Pack nhắm vào các khối có kích thước 2κ và kết hợp chúng thành cao.
Xem bản gốc
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Phần thưởng
  • 7
  • Chia sẻ
Bình luận
0/400
ChainSpyvip
· 07-06 02:52
Chỉ có vậy à? Cách làm này thực sự khá mới.
Xem bản gốcTrả lời0
GasFeeCryervip
· 07-05 11:30
Lại quảng bá nâng cao hiệu suất nữa rồi, hơi mệt.
Xem bản gốcTrả lời0
GasFeeBarbecuevip
· 07-04 15:47
Bản mới của stark thực sự khó khăn để giảm sức mạnh ~
Xem bản gốcTrả lời0
RuntimeErrorvip
· 07-04 15:47
32 bit cũng không mượt mà lắm, khi nào thử 2 bit xem.
Xem bản gốcTrả lời0
OnchainGossipervip
· 07-04 15:36
Làm thế nào để tiết kiệm không gian? Chìa khóa nằm ở việc giảm miền!
Xem bản gốcTrả lời0
BoredStakervip
· 07-04 15:28
Ai quan tâm đến băng thông, chỉ muốn biết khi nào thì chạy thông suốt.
Xem bản gốcTrả lời0
SmartContractPlumbervip
· 07-04 15:22
Vấn đề kích thước miền giống như việc theDAO tái nhập vào năm 16, đều là điểm yếu của cơ sở hạ tầng.
Xem bản gốcTrả lời0
  • Ghim
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)