Binius STARKs: ефективна система нульових знань у двійковому полі

Аналіз принципів Binius STARKs та його оптимізаційні роздуми

1. Вступ

На відміну від SNARKs на основі еліптичних кривих, STARKs можна вважати SNARKs на основі хешу. Основною причиною низької ефективності STARKs є те, що більшість чисел у реальних програмах є досить малими, такими як індекси в циклах for, булеві значення, лічильники тощо. Однак для забезпечення безпеки, заснованої на доказах Меркле, використання кодування Ріда-Соломона для розширення даних призводить до того, що багато додаткових надмірних значень займають весь простір, навіть якщо оригінальні значення самі по собі є дуже малими. Щоб вирішити цю проблему, зменшення розміру поля стало ключовою стратегією.

Перший покоління STARKs має ширину коду 252 біт, друге покоління STARKs має ширину коду 64 біта, третє покоління STARKs має ширину коду 32 біта, але 32-бітна ширина коду все ще має велику кількість марного простору. Порівняно з цим, бінарна область дозволяє безпосередньо маніпулювати бітами, кодування є компактним та ефективним без будь-якого марного простору, тобто четверте покоління STARKs.

На відміну від Goldilocks, BabyBear, Mersenne31 та інших обмежених полів, відкритих у останні роки, дослідження бінарних полів простежується з 80-х років минулого століття. Наразі бінарні поля широко використовуються в криптографії, типовими прикладами є:

  • Стандарт високої криптографії (AES), оснований на полі F28;

  • Galois повідомлення аутентифікації ( GMAC ), основане на полі F2128;

  • QR код, використовуючи кодування Ріда-Соломона на основі F28;

  • Первісний протокол FRI та zk-STARK, а також хеш-функція Grøstl, яка потрапила у фінал SHA-3, основана на полі F28, є дуже підходящою для рекурсії хеш-алгоритмом.

Коли використовуються менші поля, операції розширення поля стають усе більш важливими для забезпечення безпеки. А двійкове поле, яке використовує Binius, повністю покладається на розширення поля для забезпечення своєї безпеки та фактичної придатності. Більшість поліномів, які беруть участь у обчисленнях Prover, не потребують переходу в розширене поле, а лише працюють у базовому полі, що дозволяє досягти високої ефективності в малих полях. Проте випадкові перевірки точок та обчислення FRI все ще потребують углиблення у більше розширене поле, щоб забезпечити необхідний рівень безпеки.

При побудові системи доказів на основі бінарного поля існує 2 реальні проблеми: під час обчислення відображення сліду в STARKs розмір поля повинен бути більшим ніж ступінь многочлена; під час зобов'язання Merkle tree в STARKs необхідно виконати кодування Ріда-Соломона, розмір поля повинен бути більшим ніж розмір після розширення коду.

Binius запропонував інноваційне рішення, яке окремо обробляє ці дві проблеми, та реалізує це, представляючи однакові дані двома різними способами: по-перше, використовуючи багатозмінний (, а саме багатолінійний ) поліном замість однозмінного полінома, представляючи всю обчислювальну траєкторію через його значення на "гіперкубах" (hypercubes); по-друге, оскільки довжина кожного виміру гіперкуба дорівнює 2, стандартне розширення Ріда-Соломона, як у STARKs, не може бути виконане, але гіперкуб можна розглядати як квадрат (square), на основі якого проводиться розширення Ріда-Соломона. Цей метод значно підвищує ефективність кодування та обчислювальну продуктивність, забезпечуючи при цьому безпеку.

2. Аналіз принципів

Поточна більшість систем SNARKs зазвичай складається з двох частин:

  • Інформаційно-теоретичне поліно-інтерактивне Oracle доказ (Information-Theoretic Polynomial Interactive Oracle Proof, PIOP): PIOP як основа доказової системи перетворює введені обчислювальні зв'язки на перевіряються поліноніальні рівняння. Різні протоколи PIOP через взаємодію з перевіряючим дозволяють доводчику поступово надсилати поліноніали, так що перевіряючий може перевірити правильність обчислень, запитуючи результати оцінки лише кількох поліноніалів. Існуючі протоколи PIOP включають: PLONK PIOP, Spartan PIOP та HyperPlonk PIOP та інші, які по-різному обробляють поліноніальні вирази, що впливає на загальну продуктивність та ефективність системи SNARK.

  • Поліноміальна схема зобов'язання ( Polynomial Commitment Scheme, PCS ): Поліноміальна схема зобов'язання використовується для доведення того, чи є поліноміальне рівняння, згенероване PIOP, дійсним. PCS є криптографічним інструментом, за допомогою якого доводчик може зобов'язатись певним поліномом і пізніше перевірити результати оцінки цього полінома, одночасно приховуючи іншу інформацію про поліном. Поширені поліноміальні схеми зобов'язання включають KZG, Bulletproofs, FRI ( Fast Reed-Solomon IOPP ) та Brakedown тощо. Різні PCS мають різні показники продуктивності, безпеки та сфери застосування.

В залежності від конкретних вимог, виберіть різні PIOP і PCS, а також поєднайте їх з відповідними скінченними полями або еліптичними кривими, можна побудувати системи доказів з різними властивостями. Наприклад:

• Halo2: поєднання PLONK PIOP та Bulletproofs PCS, основане на кривій Pasta. При проектуванні Halo2 акцент робиться на масштабованість та усунення довіреного налаштування в протоколі ZCash.

• Plonky2: використовує поєднання PLONK PIOP та FRI PCS, основане на області Goldilocks. Plonky2 розроблено для досягнення ефективної рекурсії. При проектуванні цих систем вибрані PIOP та PCS повинні відповідати використаній скінченній області або еліптичній кривій, щоб забезпечити правильність, продуктивність та безпеку системи. Цей вибір комбінацій впливає не лише на розмір доказу SNARK та ефективність перевірки, але й визначає, чи може система досягти прозорості без необхідності надійного налаштування, чи може підтримувати такі розширені функції, як рекурсивні докази або агреговані докази.

Binius: HyperPlonk PIOP + Brakedown PCS + двійкові поля. Конкретно, Binius включає п'ять ключових технологій для досягнення своєї ефективності та безпеки. По-перше, аритметика на основі веж двійкових полів (towers of binary fields) становить основу його обчислень, що дозволяє здійснювати спрощені операції в двійкових полях. По-друге, Binius адаптував HyperPlonk перевірку добутків та перестановок у своєму інтерактивному Oracle протоколі (PIOP), що забезпечує безпечну та ефективну перевірку узгодженості між змінними та їхніми перестановками. По-третє, протокол вводить новий багатолінійний зсувний доказ, оптимізуючи ефективність перевірки багатолінійних відносин на малих полях. По-четверте, Binius використовує покращену версію Lasso доказу пошуку, забезпечуючи гнучкість і потужну безпеку для механізму пошуку. Нарешті, протокол застосовує схему зобов'язань малопольних многочленів (Small-Field PCS), що дозволяє реалізувати ефективну систему доказів на двійкових полях, зменшуючи витрати, які зазвичай пов'язані з великими полями.

2.1 Обмежене поле: арифметика на основі веж бінарних полів

Тау-двійкове поле є ключовим для реалізації швидких перевіряємих обчислень, що в основному зумовлено двома аспектами: ефективними обчисленнями та ефективною алгебраїзацією. Двійкове поле за своєю суттю підтримує високоефективні алгебраїчні операції, що робить його ідеальним вибором для криптографічних застосувань, чутливих до продуктивності. Крім того, структура двійкового поля підтримує спрощений процес алгебраїзації, тобто операції, виконувані над двійковим полем, можуть бути представлені у компактній та легкій для перевірки алгебраїчній формі. Ці характеристики, разом із можливістю повністю використовувати його ієрархічні властивості через тау-структуру, роблять двійкове поле особливо підходящим для розширювальних систем доведення, таких як Binius.

Термін "canonical" відноситься до унікального та прямого способу представлення елементів у двійковій області. Наприклад, у найосновнішій двійковій області F2 будь-який k-бітний рядок може бути безпосередньо відображений на k-бітний елемент двійкової області. Це відрізняється від просторової області, яка не може забезпечити таке нормативне представлення в заданій кількості бітів. Хоча 32-бітна простора область може бути включена в 32 біти, не кожен 32-бітний рядок може унікально відповідати елементу області, тоді як двійкова область має таку зручність однозначного відображення. У просторовій області Fp звичайними методами зведення є зведення Барретта, зведення Монтгомері та спеціальні методи зведення для конкретних скінченних областей, таких як Mersenne-31 або Goldilocks-64. У двійковій області F2k звичайними методами зведення є спеціальне зведення (, як використовується в AES, зведення Монтгомері ), як використовується в POLYVAL, та рекурсивне зведення (, як Tower ). У статті "Exploring the Design Space of Prime Field vs. Binary Field ECC-Hardware Implementations" зазначається, що в двійковій області при виконанні операцій додавання та множення не потрібно вводити перенесення, а зведення у квадрат у двійковій області є дуже ефективним, оскільки воно підпорядковується спрощеному правилу (X + Y )2 = X2 + Y 2.

Bitlayer Research:Binius STARKs принципи аналізу та його оптимізаційні міркування

Як показано на малюнку 1, рядок з 128 біт: цей рядок може бути інтерпретований різними способами в контексті бінарного поля. Він може розглядатися як унікальний елемент у 128-бітному бінарному полі або бути розкладеним на два елементи 64-бітного поля, чотири елементи 32-бітного поля, 16 елементів 8-бітного поля або 128 елементів поля F2. Гнучкість такого подання не потребує жодних обчислювальних витрат, це просто перетворення типу рядка бітів (typecast), що є дуже цікавою та корисною властивістю. Одночасно, елементи малих полів можуть бути упаковані в більші елементи полів без додаткових обчислювальних витрат. Протокол Binius використовує цю властивість для підвищення обчислювальної ефективності. Крім того, стаття "On Efficient Inversion in Tower Fields of Characteristic Two" досліджує обчислювальну складність множення, піднесення до квадрату та обернення в n-бітному вежоподібному бінарному полі (, яке може бути розкладене на m-бітні підполя ).

( 2.2 PIOP: адаптована версія HyperPlonk Product та PermutationCheck------підходить для бінарних полів

Дизайн PIOP у протоколі Binius запозичив HyperPlonk, використовуючи ряд основних механізмів перевірки для верифікації правильності поліномів і множин з кількома змінними. Ці основні перевірки включають:

  1. GateCheck: перевірка, чи таємне свідчення ω і публічний вхід x відповідають обчислювальному відношенню C)x,ω###=0, щоб забезпечити правильну роботу схеми.

  2. PermutationCheck: перевірка того, чи є результати оцінки двох багатозмінних поліномів f та g у булевому гіперкубі пермутаційним відношенням f(x) = f(π)x((, щоб забезпечити узгодженість перестановок між змінними поліномів.

  3. LookupCheck: перевірка значення полінома на наявність у заданій таблиці пошуку, тобто f)Bμ) ⊆ T(Bμ), щоб забезпечити, що деякі значення знаходяться в зазначеному діапазоні.

  4. MultisetCheck: перевірка на рівність двох багатовимірних множин, тобто {(x1,i,x2,)}i∈H={(y1,i,y2,)}i∈H, забезпечення узгодженості між кількома множинами.

  5. ProductCheck: перевірка, чи дорівнює значення раціонального многочлена на булевому гіперкубі певному заявленому значенню ∏x∈Hμ f(x) = s, щоб забезпечити правильність добутку многочлена.

  6. ZeroCheck: перевірка того, чи є будь-яка точка полінома з декількома змінними на булевому гіперкубі нульовою ∏x∈Hμ f(x) = 0, ∀x ∈ Bμ, щоб забезпечити розподіл нульових точок полінома.

  7. SumCheck: Перевірка того, чи дорівнює сума значень багатозначного многочлена заявленому значенню ∑x∈Hμ f(x) = s. Зниження обчислювальної складності для перевіряючої сторони шляхом перетворення задачі оцінювання багатозначного многочлена у задачу оцінювання однозначного многочлена. Крім того, SumCheck дозволяє пакетну обробку, вводячи випадкові числа, щоб побудувати лінійні комбінації для реалізації пакетної обробки кількох випадків перевірки суми.

  8. BatchCheck: на основі SumCheck, перевірка правильності оцінок кількох багатозмінних поліномів для підвищення ефективності протоколу.

Незважаючи на те, що Binius має багато спільного з HyperPlonk у дизайні протоколу, Binius покращив у трьох наступних аспектах:

  • Оптимізація ProductCheck: в HyperPlonk вимога до ProductCheck полягає в тому, що знаменник U має бути ненульовим на всьому гіперкубі, а добуток має дорівнювати певному значенню; Binius спростив цей процес перевірки, спеціалізуючи це значення на 1, що знижує обчислювальну складність.

  • Обробка проблеми ділення на нуль: HyperPlonk не зміг належним чином обробити ситуацію з діленням на нуль, що призвело до неможливості стверджувати, що U є ненульовим на гіперкубі; Binius правильно обробив цю проблему, навіть коли знаменник дорівнює нулю, ProductCheck у Binius може продовжувати обробку, дозволяючи розширення до будь-якого значення добутку.

  • Перетворення PermutationCheck:HyperPlonk не має цієї функції; Binius підтримує PermutationCheck між кількома стовпцями, що дозволяє Binius обробляти більш складні випадки перестановок багато项ного.

Таким чином, Binius через

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 1
  • Поділіться
Прокоментувати
0/400
MetaverseLandladyvip
· 07-26 09:35
Здається, занадто повільно.
Переглянути оригіналвідповісти на0
  • Закріпити