<p>This is not an actual answer; I'm just sharing some results (which do not fit in one comment).</p>

<ol>
<li>Goldreich, Micali and Wigderson (<a href="https://dl.acm.org/citation.cfm?id=116852" rel="noreferrer">J. ACM, 1991</a>) proved that every language in NP has a zero-knowledge proof of language membership (assuming OWFs exist). To this end, their presented a ZK proof for graph 3-colorability. Later, Bellare and Goldreich (<a href="http://link.springer.com/chapter/10.1007%2F3-540-48071-4_28" rel="noreferrer">CRYPTO '92</a>) proved that this ZK proof is also a ZK proof of knowledge (PoK). Using Levin reductions (see footnote 12 of the former paper), <strong>Every language in NP has a ZK PoK</strong> (assuming OWFs exist).</li>
<li>Itoh and Sakurai (<a href="http://link.springer.com/chapter/10.1007/3-540-57332-1_28" rel="noreferrer">ASIACRYPT '91</a>) have a paper on complexity-theoretic results regarding relations having constant-round ZK PoK.</li>
<li>This is a seemingly unrelated result, though I can't help noticing some similarities. I somehow feel (not anything formal) that <em>proof of membership</em> vs. <em>proof of knowledge</em> is similar to <em>decision</em> vs. <em>search</em>. Perhaps in this sense, one can also cite the work of Bellare and Goldwasser (<a href="http://epubs.siam.org/doi/abs/10.1137/S0097539792228289" rel="noreferrer">J. Computing, 1994</a>), where they (conditionally) prove that not all languages in NP have a reduction from search to decision.</li>
</ol>

<p>Some open problems (perhaps solved, but not that I know of) regarding complexity-theoretic aspects of PoKs:</p>

<ol>
<li><p>Various efficiency measures for ZK PoKs of a specific relation with certain complexity (e.g., a relation in AM):</p>

<ul>
<li>Communication complexity of the proof</li>
<li>Computational complexity of the parties</li>
<li>Knowledge tightness (i.e., the ratio between the (expected) running time of the simulator and the running time of the verifier in the real interaction)</li>
</ul></li>
<li><p>Complexity of relations admitting ZK PoK with certain limitations, say limited round complexities (Itoh and Sakurai only consider constant-round ZK PoK). Another example is when the prover is polynomial time: He cannot use the reduction to 3-colorability, as he cannot solve NP-complete relations. All NP-complete problems have a Cook reduction from search to decision. Yet, by Bellare-Goldwasser result cited above, such reductions do not necessarily exist for all NP languages/relations.</p></li>
<li>Other interesting results regarding PoKs which are not necessarily ZK, but whose knowledge complexity is otherwise limited. See Goldreich and Petrank (<a href="http://link.springer.com/article/10.1007%2Fs000370050019" rel="noreferrer">Comput. complex., 1999</a>).</li>
</ol>

<p>Before concluding, allow me to mention that there are actually several definitions for PoKs, some of which are cited below:</p>

<p>1) <strong>Early attempts:</strong> Feige, Fiat and Shamir (<a href="http://link.springer.com/article/10.1007%2FBF02351717#page-1" rel="noreferrer">J. Cryptology, 1988</a>), Tompa and Woll (<a href="http://www.computer.org/csdl/proceedings/focs/1987/5428/00/542800472-abs.html" rel="noreferrer">FOCS 1987</a>), and Feige and Shamir (<a href="https://dl.acm.org/citation.cfm?id=100272" rel="noreferrer">STOC 1990</a>).</p>

<p>2) <strong>De facto standard:</strong> Bellare and Goldreich (<a href="http://link.springer.com/chapter/10.1007%2F3-540-48071-4_28" rel="noreferrer">CRYPTO '92</a>). This paper surveys the early attempts at defining PoKs, observes their shortcomings, and suggests a new definition which can be considered as "the" definition of PoK. This definition has a black-box nature (the knowledge extractor has black-box access to the cheating prover).</p>

<p>3) <strong>Conservative PoKs:</strong> Defined by Halevi and Micali (<a href="https://eprint.iacr.org/1998/015" rel="noreferrer">ePrint Archive: Report 1998/015</a>), this definition augments the previous definition to guarantee prover feasibility. It also gives a definition for the knowledge of a single prover, which is good when answering the question "what does it mean to say that P knows something?"</p>

<p>4) <strong>Arguments of Knowledge with Non Black-Box Extraction:</strong> As mentioned above, the standard definition of PoKs is black box, which makes it impossible to have <em>resettable</em> zero-knowledge proofs (or arguments) of knowledge for non-trivial languages. Barak et al. (<a href="http://groups.csail.mit.edu/cis/pubs/shafi/2001-focs.pdf" rel="noreferrer">FOCS 2001</a>) provide a non-black-box definition, which is based on (but differs from) the definition of Feige and Shamir (STOC 1990) cited above.</p>

CC BY-SA 3.0
2015-09-10T11:29:55.757Z
2015-09-11T15:05:41.557Z
2015-09-11T15:05:41.557Z
Sadeq Dousti
<p>Prompted by a question Greg Kuperberg asked me, I'm wondering if there are any papers that define and study complexity classes of languages admitting various kinds of <a href="https://en.wikipedia.org/wiki/Proof_of_knowledge">proofs of knowledge</a>.  Classes like <a href="https://complexityzoo.uwaterloo.ca/Complexity_Zoo:S#szk">SZK</a> and <a href="https://complexityzoo.uwaterloo.ca/Complexity_Zoo:N#niszk">NISZK</a> are extremely natural from a complexity standpoint, even if we forgot entirely about zero knowledge and just defined them in terms of their complete promise problems.  By contrast, on googling 'proofs of knowledge,' I was surprised not to find any papers or lecture notes discussing this lovely concept in terms of complexity classes.</p>

<p>To give some examples: what can one say about the subclass of SZK&cap;MA&cap;coMA consisting of all languages L that admit statistical zero-knowledge proofs for x&isin;L or x&notin;L, that are also proofs of knowledge of a <i>witness</i> proving x&isin;L or x&notin;L?  Certainly this class contains things like discrete log, but we couldn't prove that it contains graph isomorphism without putting GI in coMA.  Does the class encompass all of SZK&cap;MA&cap;coMA?  One could also ask: if one-way functions exist, then does every language L&isin;MA&cap;coMA admit a computational zero-knowledge proof, that's also a proof of knowledge of a witness proving x&isin;L or x&notin;L?  (My apologies if one or both of these have trivial answers---I'm just trying to illustrate the sort of thing one <i>could</i> ask, once one decided to look at PoK in complexity-theoretic terms.)</p>

CC BY-SA 3.0
2015-09-09T17:36:52.247Z
Interesting question! Aren't these questions a lot like the question of $NP \cap coNP$ versus $DP$? In fact, your question about $MA \cap coMA$ seems to be nearly exactly the (or, a) randomized version of $NP \cap coNP$ versus $DP$.
Joshua Grochow
CC BY-SA 3.0
2015-09-10T00:55:01.880Z
Where does $DP$ enter the story?  Did someone show that it characterizes proofs of knowledge or something?
Scott Aaronson
CC BY-SA 3.0
2015-09-10T17:13:51.350Z
It's more just by analogy, I think. In both cases ($NP \cap coNP$ vs $DP$ and $MA \cap coMA$ vs the class you suggest), you have two classes defined by conditions on a verifier, and you are comparing the intersection of the two complexity classes to the set of languages that have a single verifier satisfying both conditions simultaneously. (If I've understood correctly.)
Joshua Grochow
<complexity-classes><cr.crypto-security><zero-knowledge>
Complexity classes for proofs of knowledge
Scott Aaronson
# Complexity classes for proofs of knowledge

(Asked by: username_0 on 2015-09-09)

Prompted by a question Greg Kuperberg asked me, I'm wondering if there are any papers that define and study complexity classes of languages admitting various kinds of [proofs of knowledge](https://en.wikipedia.org/wiki/Proof_of_knowledge). Classes like [SZK](https://complexityzoo.uwaterloo.ca/Complexity_Zoo:S#szk) and [NISZK](https://complexityzoo.uwaterloo.ca/Complexity_Zoo:N#niszk) are extremely natural from a complexity standpoint, even if we forgot entirely about zero knowledge and just defined them in terms of their complete promise problems. By contrast, on googling 'proofs of knowledge,' I was surprised not to find any papers or lecture notes discussing this lovely concept in terms of complexity classes.

To give some examples: what can one say about the subclass of SZK∩MA∩coMA consisting of all languages L that admit statistical zero-knowledge proofs for x∈L or x∉L, that are also proofs of knowledge of a *witness* proving x∈L or x∉L? Certainly this class contains things like discrete log, but we couldn't prove that it contains graph isomorphism without putting GI in coMA. Does the class encompass all of SZK∩MA∩coMA? One could also ask: if one-way functions exist, then does every language L∈MA∩coMA admit a computational zero-knowledge proof, that's also a proof of knowledge of a witness proving x∈L or x∉L? (My apologies if one or both of these have trivial answers---I'm just trying to illustrate the sort of thing one *could* ask, once one decided to look at PoK in complexity-theoretic terms.)

**Tags:** complexity-classes, cr.crypto-security, zero-knowledge
> **Comments:**
> **username_1**: Interesting question! Aren't these questions a lot like the question of $NP \cap coNP$ versus $DP$? In fact, your question about $MA \cap coMA$ seems to be nearly exactly the (or, a) randomized version of $NP \cap coNP$ versus $DP$.  
> **username_0**: Where does $DP$ enter the story?  Did someone show that it characterizes proofs of knowledge or something?  
> **username_1**: It's more just by analogy, I think. In both cases ($NP \cap coNP$ vs $DP$ and $MA \cap coMA$ vs the class you suggest), you have two classes defined by conditions on a verifier, and you are comparing the intersection of the two complexity classes to the set of languages that have a single verifier satisfying both conditions simultaneously. (If I've understood correctly.)  

---

## 1 answers

### Answer by username_2 on 2015-09-10. Score: 11

This is not an actual answer; I'm just sharing some results (which do not fit in one comment).

1. Goldreich, Micali and Wigderson ([J. ACM, 1991](https://dl.acm.org/citation.cfm?id=116852)) proved that every language in NP has a zero-knowledge proof of language membership (assuming OWFs exist). To this end, their presented a ZK proof for graph 3-colorability. Later, Bellare and Goldreich ([CRYPTO '92](http://link.springer.com/chapter/10.1007%2F3-540-48071-4_28)) proved that this ZK proof is also a ZK proof of knowledge (PoK). Using Levin reductions (see footnote 12 of the former paper), **Every language in NP has a ZK PoK** (assuming OWFs exist).
2. Itoh and Sakurai ([ASIACRYPT '91](http://link.springer.com/chapter/10.1007/3-540-57332-1_28)) have a paper on complexity-theoretic results regarding relations having constant-round ZK PoK.
3. This is a seemingly unrelated result, though I can't help noticing some similarities. I somehow feel (not anything formal) that *proof of membership* vs. *proof of knowledge* is similar to *decision* vs. *search*. Perhaps in this sense, one can also cite the work of Bellare and Goldwasser ([J. Computing, 1994](http://epubs.siam.org/doi/abs/10.1137/S0097539792228289)), where they (conditionally) prove that not all languages in NP have a reduction from search to decision.

Some open problems (perhaps solved, but not that I know of) regarding complexity-theoretic aspects of PoKs:

1. Various efficiency measures for ZK PoKs of a specific relation with certain complexity (e.g., a relation in AM):

   * Communication complexity of the proof
   * Computational complexity of the parties
   * Knowledge tightness (i.e., the ratio between the (expected) running time of the simulator and the running time of the verifier in the real interaction)
2. Complexity of relations admitting ZK PoK with certain limitations, say limited round complexities (Itoh and Sakurai only consider constant-round ZK PoK). Another example is when the prover is polynomial time: He cannot use the reduction to 3-colorability, as he cannot solve NP-complete relations. All NP-complete problems have a Cook reduction from search to decision. Yet, by Bellare-Goldwasser result cited above, such reductions do not necessarily exist for all NP languages/relations.
3. Other interesting results regarding PoKs which are not necessarily ZK, but whose knowledge complexity is otherwise limited. See Goldreich and Petrank ([Comput. complex., 1999](http://link.springer.com/article/10.1007%2Fs000370050019)).

Before concluding, allow me to mention that there are actually several definitions for PoKs, some of which are cited below:

1) **Early attempts:** Feige, Fiat and Shamir ([J. Cryptology, 1988](http://link.springer.com/article/10.1007%2FBF02351717#page-1)), Tompa and Woll ([FOCS 1987](http://www.computer.org/csdl/proceedings/focs/1987/5428/00/542800472-abs.html)), and Feige and Shamir ([STOC 1990](https://dl.acm.org/citation.cfm?id=100272)).

2) **De facto standard:** Bellare and Goldreich ([CRYPTO '92](http://link.springer.com/chapter/10.1007%2F3-540-48071-4_28)). This paper surveys the early attempts at defining PoKs, observes their shortcomings, and suggests a new definition which can be considered as "the" definition of PoK. This definition has a black-box nature (the knowledge extractor has black-box access to the cheating prover).

3) **Conservative PoKs:** Defined by Halevi and Micali ([ePrint Archive: Report 1998/015](https://eprint.iacr.org/1998/015)), this definition augments the previous definition to guarantee prover feasibility. It also gives a definition for the knowledge of a single prover, which is good when answering the question "what does it mean to say that P knows something?"

4) **Arguments of Knowledge with Non Black-Box Extraction:** As mentioned above, the standard definition of PoKs is black box, which makes it impossible to have *resettable* zero-knowledge proofs (or arguments) of knowledge for non-trivial languages. Barak et al. ([FOCS 2001](http://groups.csail.mit.edu/cis/pubs/shafi/2001-focs.pdf)) provide a non-black-box definition, which is based on (but differs from) the definition of Feige and Shamir (STOC 1990) cited above.


---

