Binius:バイナリドメインに基づく効率的なSTARKsの新しいソリューション

Binius STARKsの原理とその最適化思考の解析

1 はじめに

STARKsの非効率性の主な原因の一つは、実際のプログラム内の大多数の数値が小さいことです。例えば、forループ内のインデックス、真偽値、カウンターなどです。しかし、Merkleツリーに基づく証明の安全性を保証するために、Reed-Solomon符号を使用してデータを拡張する際、多くの追加の冗長値が全体の領域を占めてしまいます。たとえ元の値自体が非常に小さくてもです。この問題を解決するために、領域のサイズを減らすことが重要な戦略となります。

第1世代STARKsのエンコードビット幅は252ビット、第2世代STARKsのエンコードビット幅は64ビット、第3世代STARKsのエンコードビット幅は32ビットですが、32ビットのエンコードビット幅には依然として大量の無駄なスペースがあります。比較すると、バイナリフィールドはビットを直接操作することを許可し、エンコードはコンパクトで効率的であり、無駄なスペースがありません。すなわち、第4世代STARKsです。

Goldilocks、BabyBear、Mersenne31など近年の新しい研究成果である有限体と比較して、二進数体の研究は1980年代にさかのぼります。現在、二進数体は暗号学に広く応用されており、典型的な例としては:

  • 高度な暗号化標準(AES)、F28フィールドに基づく;

  • F2128ドメインに基づくガロアメッセージ認証コード(GMAC)。

  • QRコードは、F28ベースのリード・ソロモン符号を使用しています;

  • 原始FRIおよびzk-STARKプロトコル、さらにSHA-3ファイナルに進出したGrøstlハッシュ関数は、F28体に基づいており、再帰に非常に適したハッシュアルゴリズムです。

より小さな体を使用する場合、拡張体操作はセキュリティを確保するためにますます重要になります。Biniusが使用する2進体は、そのセキュリティと実際の有用性を保証するために完全に拡張体に依存する必要があります。ほとんどのProver計算に関与する多項式は、拡張体に入る必要がなく、基体の下で操作するだけで、小さな体の中で高効率を実現します。しかし、ランダムポイントチェックとFRI計算は、必要なセキュリティを確保するために、より大きな拡張体に深く入り込む必要があります。

バイナリーフィールドに基づいて証明システムを構築する際に、2つの実際の問題があります:STARKsにおいてトレース表現を計算する際に、使用されるフィールドのサイズは多項式の次数より大きくなければなりません;STARKsにおけるマルケルツリーのコミットメントでは、リード・ソロモン符号化を行う必要があり、使用されるフィールドのサイズは符号化された拡張後のサイズより大きくなければなりません。

Biniusは、これら二つの問題をそれぞれ処理する革新的な解決策を提案し、同じデータを二つの異なる方法で表現することによって実現しました。まず、単変数多項式の代わりに多変数(具体的には多線形)多項式を使用し、その値を「超立方体」(hypercubes)上で表現することによって全計算軌跡を示します。次に、超立方体の各次元の長さは2であるため、STARKsのように標準のReed-Solomon拡張を行うことはできませんが、超立方体を正方形(square)と見なし、その正方形に基づいてReed-Solomon拡張を行うことができます。この方法は安全性を確保しつつ、コーディング効率と計算性能を大幅に向上させました。

2 原理分析

現在ほとんどのSNARKsシステムの構築は通常以下の2つの部分を含みます:

  • 情報理論的多項式インタラクティブオラクル証明(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プロトコルのtrusted setupを排除しています。

• Plonky2:PLONK PIOPとFRI PCSを組み合わせ、Goldilocks域に基づいています。Plonky2は高効率の再帰を実現するために設計されています。これらのシステムを設計する際に選択されるPIOPとPCSは、使用される有限体または楕円曲線と一致する必要があり、システムの正確性、性能、安全性を確保します。これらの組み合わせの選択は、SNARKの証明サイズと検証効率に影響を与えるだけでなく、信頼できる設定なしに透明性を実現できるかどうか、再帰証明や集約証明などの拡張機能をサポートできるかどうかを決定します。

Binius:HyperPlonk PIOP + Brakedown PCS + 二進法領域。具体的には、Biniusはその効率性と安全性を実現するために5つの重要な技術を含んでいます。まず、タワー型二進法領域(towers of binary fields)に基づく算術がその計算の基礎を形成し、二進法領域内での簡略化された演算を実現します。次に、Biniusはそのインタラクティブオラクル証明プロトコル(PIOP)において、HyperPlonkの積と置換のチェックを改編し、変数とその置換の間の安全で効率的な一貫性チェックを保証します。第三に、プロトコルは新しい多項式シフト証明を導入し、小領域上での多項式関係の検証効率を最適化しました。第四に、Biniusは改良版のLasso検索証明を採用し、検索メカニズムに柔軟性と強力な安全性を提供します。最後に、プロトコルは小領域多項式コミットメントスキーム(Small-Field PCS)を使用し、二進法領域上で効率的な証明システムを実現し、通常の大領域に関連するオーバーヘッドを削減します。

2.1 有限体:二値体の塔に基づく算術

タワービナリーフィールドは、高速検証可能な計算を実現するための鍵であり、主に2つの側面に起因します:効率的な計算と効率的な算術化。ビナリーフィールドは本質的に高度に効率的な算術操作をサポートし、それにより性能に敏感な暗号アプリケーションにとって理想的な選択肢となります。さらに、ビナリーフィールドの構造は簡略化された算術化プロセスをサポートし、つまりビナリーフィールド上で実行される演算はコンパクトで検証しやすい代数形式で表現できます。これらの特性に加え、タワー構造を通じてその階層的な特性を十分に活用できることから、ビナリーフィールドはBiniusのようなスケーラブルな証明システムに特に適しています。

ここで「canonical」は、2進数体における要素の唯一で直接的な表現方法を指します。例えば、最も基本的な2進数体F2では、任意のkビットの文字列は直接kビットの2進数体要素にマッピングできます。これは素数体とは異なり、素数体は指定されたビット数内でこのような規範的な表現を提供することができません。32ビットの素数体は32ビットの中に含むことができますが、すべての32ビットの文字列が唯一の体要素に対応できるわけではなく、2進数体はこの一対一のマッピングの便利さを持っています。素数体Fpにおいて、一般的な還元方法にはBarrett還元、Montgomery還元、そしてMersenne-31やGoldilocks-64など特定の有限体に対する特別な還元方法が含まれます。2進数体F2kでは、一般的な還元方法として特別な還元(AESで使用される)、Montgomery還元(POLYVALで使用される)、および再帰的還元(Towerなど)があります。論文『Exploring the Design Space of Prime Field vs. Binary Field ECC-Hardware Implementations』では、2進数体は加算および乗算の操作において繰り上がりを導入する必要がなく、2進数体の平方演算は非常に効率的であると指摘されています。なぜなら、それは(X + Y )2 = X2 + Y 2の簡略化ルールに従うからです。

図1に示すように、128ビットの文字列:この文字列は、バイナリフィールドのコンテキストでさまざまな方法で解釈できます。128ビットのバイナリフィールドのユニークな要素として見ることもでき、また、2つの64ビットタワーフィールド要素、4つの32ビットタワーフィールド要素、16の8ビットタワーフィールド要素、または128のF2フィールド要素として解析することもできます。この表現の柔軟性は、計算オーバーヘッドを必要とせず、単にビット文字列の型変換(typecast)であり、非常に興味深く有用な特性です。同時に、小さなフィールド要素は、追加の計算オーバーヘッドなしに、より大きなフィールド要素にパッケージ化できます。Biniusプロトコルはこの特性を利用して計算効率を向上させています。さらに、論文「On Efficient Inversion in Tower Fields of Characteristic Two」では、nビットのタワー型バイナリフィールド(mビットのサブフィールドに分解可能)での乗算、平方、および逆算の計算複雑性について探討しています。

! Bitlayer研究:Binius STARKsの原理分析と最適化思考

2.2 PIOP: バイナリドメイン用の適応 HyperPlonk プロダクトと PermutationCheck ------

BiniusプロトコルのPIOP設計はHyperPlonkを参考にしており、多項式と多変数集合の正確性を検証するための一連のコアチェックメカニズムを採用しています。これらのコアチェックには、以下が含まれます:

  1. GateCheck:秘密証明ωと公開入力xが回路演算関係C(x,ω)=0を満たしているかを検証し、回路が正しく動作することを確認します。

  2. PermutationCheck:ブールハイパーキューブ上の2つの多変量多項式fとgの評価結果が順列関係であることを確認しますf(x) = 多項式変数間の配置の一貫性を確保するためのf(π(x))。

  3. LookupCheck:多項式の評価が指定されたルックアップテーブルに存在するかどうかを確認します。つまり、f(Bµ) ⊆ T(Bµ)であり、特定の値が指定された範囲内にあることを確認します。

  4. MultisetCheck:2つの多変数集合が等しいかどうかを確認します。すなわち、{(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とプロトコル設計において多くの類似点があるにもかかわらず、以下の3つの点で改善を行っています:

  • ProductCheckの最適化:HyperPlonkでは、ProductCheckは超立方体上の分母Uが常に非ゼロであることを要求し、積は特定の値に等しくなければなりません;Biniusはこの値を1に特化することで、チェックプロセスを簡素化し、計算の複雑さを低下させました。

  • ゼロ除算問題の処理:HyperPlonkはゼロ除算のケースを十分に処理できず、超立方体上のUの非ゼロ問題を断言できませんでした;Biniusはこの問題を正しく処理し、分母がゼロの場合でもBiniusのProductCheckは処理を続け、任意の積値への拡張を許可します。

  • 列間PermutationCheck:HyperPlonkにはこの機能はありません;Biniusは複数の列間でPermutationCheckをサポートしており、これによりBiniusはより複雑な多項式の配置状況を処理できるようになります。

したがって、Biniusは既存のPIOPSumCheckメカニズムの改善を通じて、プロトコルの柔軟性と効率を向上させ、特により複雑な多変数多項式の検証を処理する際に、より強力な機能サポートを提供しました。これらの改善は、HyperPlonkの限界を克服するだけでなく、将来のバイナリフィールドに基づく証明システムの基盤を築くことにも寄与します。

! Bitlayer研究:Binius STARKsの原理分析と最適化思考

2.3 PIOP:新しいマルチラインシフト引数------ブールハイパーキューブに適用

Biniusプロトコルにおいて、仮想多項式の構築と処理は重要な技術の一つであり、入力ハンドルや他の仮想多項式から派生した多項式を効果的に生成し操作することができます。以下は二つの重要な方法です:

  • パッキング:
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 3
  • 共有
コメント
0/400
BlindBoxVictimvip
· 19時間前
32bit?相棒は紙とペンで計算した方がいいよ
原文表示返信0
AirdropworkerZhangvip
· 19時間前
まだポジションの幅を広げているのか。俺はただ金を送りたいだけだ。
原文表示返信0
MEV_Whisperervip
· 19時間前
たった32bitが多すぎるのですか?
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)