計算複雑性理論において、確率的検証可能証明( PCP ) は、有限量のランダム性を使用し、証明の有限数のビットを読み取るランダム化アルゴリズムによって検証できる証明の一種です。このアルゴリズムは、非常に高い確率で正しい証明を受け入れ、正しくない証明を拒否する必要があります。検証者ベースの複雑性クラスNPの定義で使用される標準証明 (または証明書)も、チェック手順で証明全体を決定論的に読み取り、正しい証明を常に受け入れ、正しくない証明を拒否するため、これらの要件を満たしています。ただし、これらを興味深いものにしているのは、本質的にランダム性を使用して証明のわずか数ビットを読み取るだけで確認できる確率的検証可能証明が存在することです。
確率的に検証可能な証明は、必要なクエリの数と使用されるランダム性の量に応じて、多くの複雑性クラスを生み出します。クラスPCP [ r ( n ), q ( n )]は、最大r ( n ) のランダムビットを使用し、最大q ( n ) ビットの証明を読み取ることで多項式時間で検証できる、確率的に検証可能な証明を持つ決定問題の集合を指します。[ 1 ]特に指定がない限り、正しい証明は常に受け入れられ、不正確な証明は 1/2 を超える確率で拒否されるべきです。計算複雑性理論の主要な結果であるPCP 定理は、PCP [ O (log n ), O (1)] = NPと述べています。
決定問題L (アルファベットΣ 上の言語)が与えられると、完全性c ( n ) および健全性s ( n ) (0 ≤ s ( n ) ≤ c ( n ) ≤ 1 ) を持つLの確率的に検証可能な証明システムが証明者と検証者から構成される。長さnの、偽の可能性のある解xが与えられると、証明者は、x がLを解く( x ∈ L、証明はΣ ∗内の文字列)という証明πを生成する。検証者は、ランダム化オラクルチューリングマシンV (検証者) であり、 x がLを解く(またはx ∈ L )というステートメントについて証明πをチェックし、ステートメントを受け入れるかどうかを決定する。システムには、次の特性がある。
検証者の計算複雑度は多項式時間であり、長さnのx全体にわたってV が使用するランダム ビットの最大数を測定するためのランダム複雑度r ( n ) があり、検証者のクエリ複雑度q ( n ) は、長さnのx全体にわたってV がπ に対して行うクエリの最大数です。
上記の定義では、証明の長さについては言及されていません。これは通常、証明にはアルファベットの集合とすべての証拠が含まれるためです。証明者にとって、問題の解にどのようにして到達したかは重要ではなく、その解が言語に属していることを証明できることだけが重要です。
検証者は、以前のクエリに対する回答のいずれかを受信する前にすべてのクエリを実行する場合、 非適応型であると言われます。
複雑性クラスPCP c ( n ), s ( n ) [ r ( n ), q ( n )]は、完全性c ( n ) と健全性s ( n )のバイナリアルファベット上の確率的に検証可能な証明システムを持つすべての決定問題のクラスです。検証者は非適応型で、多項式時間で実行され、ランダム複雑度r ( n ) とクエリ複雑度q ( n ) を持ちます。
PCP [ r ( n ), q ( n )]という略記法は、 PCP 1, 1/2 [ r ( n ), q ( n )]の意味で使われることがある。PCPの計算量クラスは、 PCP 1, 1/2 [ O (log n ), O (1)]と定義される。
確率的検証可能証明の理論は、様々なパラメータ(完全性、健全性、ランダム性計算量、クエリ計算量、アルファベットサイズ)の制約下での確率的検証可能証明システムの有効性を研究する。この理論は、計算量(特に近似困難性)や暗号学に応用されている。
確率的に検証可能な証明の定義は、1992年にアローラとサフラによって明示的に導入されたが[ 2 ] 、その性質は以前に研究されていた。1990年にババイ、フォートナウ、ルンドはPCP [poly( n ), poly( n )] = NEXP を証明し、標準的な証明( NEXP )と確率的に検証可能な証明の間に初めて非自明な同値性を与えた[ 3 ]。1992年に証明された PCP定理は、 PCP [ O (log n ), O (1)] = NP を述べている。[ 2 ] [ 4 ]
近似の困難性の理論では、確率的に検証可能な証明における完全性、健全性、アルファベットのサイズ、およびクエリの複雑さの役割を詳細に理解する必要があります。
計算複雑性の観点から見ると、パラメータを極端に設定した場合、確率的に検証可能な証明の定義は標準的な計算複雑性クラスと同等であることが容易に分かる。例えば、 PCP [ r ( n ), q ( n )]の異なる設定では、以下のようになる。
PCP 定理とMIP = NEXP は次のように特徴付けることができます。
| | 0 | | | |
|---|---|---|---|---|
| 0 | P | P | P | NP |
| | P | P | P | NP |
| | P | NP | NP | NP |
| | コーポレーション | MIP = NEXP | ネックス | ネックス |
PCP [ r ( n ), q ( n )] ⊆ NTIME (poly( n ,2 O ( r ( n )) q ( n )))であることも知られています。特に、PCP [O(log n ), poly( n )] = NPです。一方、NP ⊆ PCP [ o (log n ), o (log n )]のときはP = NP です。[ 2 ]
線形PCPとは、証明が有限体 の元のベクトルであり、PCPオラクルが証明に対して線形演算のみを実行できるPCPです。つまり、検証者のクエリに対するオラクルからの応答は線形関数 です。線形PCPは、SNARKにコンパイル可能な証明システムにおいて重要な用途があります。