PLONK:チェーン上の計算を「再現可能」ではなく「証明可能」にする方法
ここ数日PLONKという一連の証明システムを見ていて、ブロックチェーンが「検証」を行うということが、論理を根本から作り直されているように感じる
まずは素朴な疑問:チェーン上で、ある計算が正しいとどう確認するのか
いちばん直接的な方法は「もう一度計算し直す」——各ノードが同じ計算を1回ずつ実行し、結果が一致すれば有効とみなす。これは単純で確実だが、コストは計算量に比例して線形に増える。計算が複雑になればなるほど、全ネットワークが繰り返し検証するための手間(オーバーヘッド)も大きくなる
PLONKがやっていることは、「もう一度計算し直す」を「一定サイズのものによって計算が正しいことを証明する」へ置き換えることだ。計算がどれほど複雑でも、検証者が確認すべき証明のサイズは基本的に定数レベルのままなので、コストは計算規模にほとんど膨らまない——これは単なる最適化ではなく、コストの構造を根本から入れ替えることだ
━━━━━━━━━━━━━━
その背後にあるのがKZG多項式コミットメント
PLONKは、回路全体の制約条件をいくつかの多項式に折り畳んで符号化する。証明者は計算の詳細をそのままあなたに開示する必要はなく、「これらの多項式が特定の点での評価として正しい」ことを証明するだけでよい。検証者が受け取るのは、いくつかの群演算に過ぎず、計算は非常に軽い。大量の実行トレースが、簡潔な代数検証を数回に圧縮される
さらに重要な設計として、前処理(preprocessing)がある
回路の中で公開され固定されている部分は、事前にオフラインで計算しておけるため、毎回の検証でやり直す必要がない。チェーン上での検証では、今回の具体的な証明に関連する軽量な部分だけを処理すればよい。これが、PLONKが「汎用でアップデート可能」でいられる理由でもある。同じ枠組みで異なる規模の回路に対応でき、回路が変わるたびに改めて信頼設定をやり直す必要がない
━━━━━━━━━━━━━━
Dusk側に落とし込むと、この証明システムはCVMによって直接呼び出される
プライバシー・コントラクトの実行が終わった後、結果を出して他人が改めて検証し直させるのではなく、直接「証明の一段」を吐き出す。実行そのものが、証明生成プロセスなのだ
これが「証明可能」と「再現可能」の本質的な違いだ。1つは皆がもう一度計算し直すことに頼る。もう1つは数学によって、あなたが計算しなくても信じられるようにする
@Dusk_Foundation $DUSK #dusk
ここ数日PLONKという一連の証明システムを見ていて、ブロックチェーンが「検証」を行うということが、論理を根本から作り直されているように感じる
まずは素朴な疑問:チェーン上で、ある計算が正しいとどう確認するのか
いちばん直接的な方法は「もう一度計算し直す」——各ノードが同じ計算を1回ずつ実行し、結果が一致すれば有効とみなす。これは単純で確実だが、コストは計算量に比例して線形に増える。計算が複雑になればなるほど、全ネットワークが繰り返し検証するための手間(オーバーヘッド)も大きくなる
PLONKがやっていることは、「もう一度計算し直す」を「一定サイズのものによって計算が正しいことを証明する」へ置き換えることだ。計算がどれほど複雑でも、検証者が確認すべき証明のサイズは基本的に定数レベルのままなので、コストは計算規模にほとんど膨らまない——これは単なる最適化ではなく、コストの構造を根本から入れ替えることだ
━━━━━━━━━━━━━━
その背後にあるのがKZG多項式コミットメント
PLONKは、回路全体の制約条件をいくつかの多項式に折り畳んで符号化する。証明者は計算の詳細をそのままあなたに開示する必要はなく、「これらの多項式が特定の点での評価として正しい」ことを証明するだけでよい。検証者が受け取るのは、いくつかの群演算に過ぎず、計算は非常に軽い。大量の実行トレースが、簡潔な代数検証を数回に圧縮される
さらに重要な設計として、前処理(preprocessing)がある
回路の中で公開され固定されている部分は、事前にオフラインで計算しておけるため、毎回の検証でやり直す必要がない。チェーン上での検証では、今回の具体的な証明に関連する軽量な部分だけを処理すればよい。これが、PLONKが「汎用でアップデート可能」でいられる理由でもある。同じ枠組みで異なる規模の回路に対応でき、回路が変わるたびに改めて信頼設定をやり直す必要がない
━━━━━━━━━━━━━━
Dusk側に落とし込むと、この証明システムはCVMによって直接呼び出される
プライバシー・コントラクトの実行が終わった後、結果を出して他人が改めて検証し直させるのではなく、直接「証明の一段」を吐き出す。実行そのものが、証明生成プロセスなのだ
これが「証明可能」と「再現可能」の本質的な違いだ。1つは皆がもう一度計算し直すことに頼る。もう1つは数学によって、あなたが計算しなくても信じられるようにする
@Dusk_Foundation $DUSK #dusk