Skip to content

Latest commit

 

History

History
70 lines (41 loc) · 8.19 KB

File metadata and controls

70 lines (41 loc) · 8.19 KB

1. Vector Oblivious Linear Evaluation (VOLE)

VOLEは、より高度なゼロ知識証明システムや安全な多者間計算(MPC)の基礎として機能する暗号プリミティブです。

1.1 VOLEの定義と相関

VOLEは、送信者(Sender)と受信者(Receiver)の間で実行される対話型プロトコルです。有限体 $F$ 上において、送信者は入力 $\mathbf{u}, \mathbf{v}$ を提供し、受信者はグローバル鍵 $\mathbf{\Delta}$ を提供します。プロトコル実行後、受信者は以下の**VOLE相関(VOLE correlation)**を満たす $\mathbf{q}$ を出力として得ます:

$$\mathbf{q} = \mathbf{u}\mathbf{\Delta} - \mathbf{v}$$

VOLEは、証明システム内で、 $\mathbf{u}$ の値に対する**情報理論的メッセージ認証コード(MAC)**として機能します。 VOLEの結合特性(binding property)により、グローバル鍵 $\mathbf{\Delta}$ を知らずに $q$ を固定した状態で $u$ の値を変更することはできません。この特性は、証明の健全性(soundness)を保証するために利用されます。

1.2 サブフィールドVOLE

特定の文脈(例:FAEST)では、VOLEはサブフィールドVOLEとして利用されます。ここでは、送信者の入力 $\mathbf{u}$ が $\mathbb{F}2$(2元体)に限定される一方で、$\mathbf{v}$ や $\mathbf{q}$、グローバル鍵 $\mathbf{\Delta}$ はより大きな有限体 $F{2^\lambda}$ 上に存在します。

2. MPC-in-the-Head (MPCitH)

**MPCitH(Multiparty Computation-in-the-Head)**は、効率的なゼロ知識証明システムを構築するために、安全な多者間計算(MPC)プロトコルを利用する一般的なフレームワークです。このフレームワークは、Ishai、Kushilevitz、Ostrovsky、Sahaiらによって2007年に発明されました。

2.1 基礎原理:ZKとMPCの接続

MPCitHの基本的な貢献は、NPリレーション $R(x, w)$ の知識証明(ZKPoK)を、関連する多者間計算ファンクショナリティ $f$ の実行に変換する点にあります。

証明者 $P$ が NP リレーション $R(x, w)$ を満たす証人 $w$ の知識を証明する場合、 $P$ はまず $w$$n$ 個のシェア $w_1, \dots, w_n$ に(加法秘密分散などで)分割します。ここで $w = w_1 \oplus \dots \oplus w_n$ が成り立ちます。

$P$ は、このシェアされた入力を用いて、関数 $f(x, w_1, \dots, w_n) = R(x, w_1 \oplus \dots \oplus w_n)$ を計算する半正直なMPCプロトコル $\Pi_f$自分の頭の中でエミュレートします。

2.2 MPCitHの検証プロセス

MPCitHプロトコルは以下のステップで識別スキームを構成します:

  1. ビューの生成とコミットメント: $P$ は、MPC $\Pi_f$ の実行全体から生成される $N$ 個の仮想パーティ(プレイヤー)のビュー $V_1, \dots, V_N$ (入力シェア、乱数、メッセージなど)を計算し、それぞれにコミットします。
  2. チャレンジ: 検証者 $V$ は、ランダムに一つのパーティのインデックス $i^* \in {1, \dots, N}$ を選択します。
  3. 開示: $P$ は、選択されなかった $N-1$ 個のパーティ $i \ne i^*$ のビュー $V_i$$V$ に開示します。
  4. 検証: $V$ は、開示されたビューがコミットメントと整合しているか、そして $N-1$ 個のパーティが MPC $\Pi_f$ のルールに従って正しく計算を行ったかをチェックします。

2.3 効率と健全性

MPCitHの健全性(Soundness)は、MPCプロトコルの**秘匿性(privacy)頑健性(robustness)**に依存します。MPCプロトコルが $(N-1)$-秘匿($N-1$個のパーティのビューが秘密 $w$ について何も漏らさない)であるという特性を逆に利用します。不正な $P$$w$ を知らずに受理されるためには、開示されなかったパーティ $i^*$ のビューを完璧に偽造する必要があります。

MPCitHは任意の回路に適用可能であり(ジェネリック性)、特にサイズの大きい回路 $C$ (サイズ $s$) に対して、通信量を回路サイズ $s$ に線形("constant-rate" zero-knowledge)にする $O(s) + poly(k, \log s)$ の効率を達成し、従来のプロトコル($O(ks)$)を改善しました。

3. QuickSilver

QuickSilverは、VOLEを利用して効率的なゼロ知識証明を構築するシステムです。QuickSilverは、Line-Point Zero-Knowledgeパラダイムに基づいています。

3.1 VOLEハイブリッドモデルでの機能

QuickSilverは、MPCitHが通常Boolean回路や算術回路全体を検証するのに対し、VOLEプロトコルによって提供される情報理論的MAC(VOLE相関)を利用して、回路の**非線形演算(乗算ゲートなど)**が正しく実行されたことを証明します。

QuickSilverでは、証明者は乗算ゲート $\alpha \cdot \beta = \gamma$ が成立していることを、VOLE MACの加法準同型性を用いて効率的に検証者に納得させます。検証者は、すべての制約のランダムな線形結合をチェックするだけで、証明の健全性を確率的に保証します。

3.2 マスクされたチェック

QuickSilverは、MACの組み $(u_i, v_i, q_i)$ の結合特性(binding property)を利用して健全性を確保します。ゼロ知識性を維持するため、証明者は、QuickSilverの証明応答を生成する際に、追加のMAC $(a^_1, a^_0, b^*)$ を使用して、証明値をマスクします。検証者は、マスクされた応答 $\tilde{a}_0, \tilde{a}_1$$\tilde{b}$ の間に VOLE 関係 $\tilde{b} = \tilde{a}_0 + \tilde{a}_1 \cdot \Delta$ が成立するかをチェックすることで、秘密情報 $\Delta$ を漏らさずに証明を検証します。

4. VOLE-in-the-Head (VOLEitH)

**VOLE-in-the-Head(VOLEitH)は、VOLEベースのゼロ知識プロトコルを、元の指定検証者(designated verifier)設定から公開検証可能(publicly verifiable)**なプロトコルへ変換する新しい手法です。

4.1 MPCitHとの関係と優位性

VOLEitHは、MPCitHフレームワークからの進化形と見なされます。VOLEitHは、既存のMPCitHに基づくアプローチと比較して、より簡潔で、より小さく、より高速なゼロ知識証明プロトコルを提供します。

4.2 オール・バット・ワン ベクトルコミットメント (VC)

VOLEitHの核心は、ランダムなOT(Oblivious Transfer)インスタンスを、**オール・バット・ワン ベクトルコミットメント(All-but-One Vector Commitments, VC)**で置き換えるコンパイラにあります。

  1. GGMツリーの利用: VCは、長さ倍増PRG(擬似乱数生成器)に基づくGGMツリーを用いて構築されます。署名者(証明者)は、ツリーのルートシードにコミットし、 $N$ 個の葉に $N$ 個のシードを生成します。
  2. 開示メカニズム: 署名者は、検証者が要求する開示しないインデックス $j^*$ に対応するルートからのパス上にあるノードの兄弟(sibling)キーを送るだけで、残りの $N-1$ 個のシード(メッセージ)を開示できます。これにより、開示情報は $O(\log N)$ の通信量に抑えられます。

4.3 VOLE相関の非対話的生成

VCは、VOLE相関を非対話的に確立するために使用されます。開示されなかったインデックス $j^*$ は、VOLE相関におけるグローバル鍵 $\Delta$ として機能します。

$N$ 個のシード $sd_i$ はPRGによって長いランダム文字列 $r_i$ に展開され、これを用いて署名者は VOLE の出力 $\mathbf{u}$$\mathbf{V}$ を定義します。検証者は、$\Delta$ (開示されなかったインデックス) を用いて、開示された $r_i$ の線形結合を計算することで、VOLE関係 $\mathbf{Q} = \mathbf{u}\mathbf{\Delta} - \mathbf{V}$ を満たす $\mathbf{Q}$ を生成します。