更新:この答えは、適切な参照から完全に多対数の境界を持つ、他の答えによって廃止されました。
考え直して、マークルツリーを徐々に明らかにする必要はないので、下位の通信バージョンでは余分なラウンドは必要ありません。通信手順は
- 証明者Pは、色付けをランダム化し、(塩漬け)マークルツリーに変換し、ルートを検証者Vに送信します。
- Vはランダムなエッジを選択し、Pに送信します。e
- Pは、ルートから各エンドポイントへのマークルツリーパスをVに送信します。e
これは、得られるを介した通信O (1 )ラウンド。O(belognlog(1/p))O(1)
更新: マークルツリーの構築の詳細を以下に示します。簡単にするために、いくつかの切断されたノードを追加してグラフを拡張し、頂点を正確につにします(これらは3つの色付け可能性またはゼロの知識には影響しません)。任意のサイズの入力を受け取り、bビット出力を生成する安全なハッシュ関数を想定します。マークルツリーごとに、証明者は2 a + 1 − 1のランダムなbビットのノンスを選択します。バイナリツリーのリーフとノンリーフごとに1つです。葉では、ノンスと連結された色をハッシュして葉の値を生成します。各非リーフで、2つの子値を非リーフのノンスでハッシュして、非リーフの値を生成します。2ab2a+1−1b
最初のラウンドでは、証明者はルート値のみを送信しますが、ルートのノンスでハッシュされるため、情報は提供されません。3回目のラウンドでは、そのようなノードはそのノードでナンスでハッシュされているため、バイナリツリー内の拡張されていないノードに関する情報は伝達されません。ここでは、証明者と検証者の両方が計算的に制限されており、ハッシュを破ることができないと想定しています。
編集:欠落因子を指摘してくれたリッキー・デマーに感謝します。e