Paper 2016/459

Non-Interactive RAM and Batch NP Delegation from any PIR

Zvika Brakerski, Justin Holmgren, and Yael Kalai


We present an adaptive and non-interactive protocol for verifying arbitrary efficient computations in fixed polynomial time. Our protocol is computationally sound and can be based on any computational PIR scheme, which in turn can be based on standard polynomial-time cryptographic assumptions (e.g. the worst case hardness of polynomial-factor approximation of short-vector lattice problems). In our protocol, the prover and the verifier do not need to interact at all: The verifier sets up a public key ahead of time, and this key can be used by any prover to prove arbitrary statements in a completely adaptive manner. Verification is done using a secret verification key, and soundness relies on this key not being known to the prover. Our protocol further allows to prove statements about computations of arbitrary RAM machines. Previous works either relied on knowledge assumptions, or could only offer non-adaptive two-message protocols (where the first message could not be re-used), and required either obfuscation-based assumptions or super-polynomial hardness assumptions. We show that our techniques can also be applied to construct a new type of (non-adaptive) 2-message delegation protocols for batch NP statements. Specifically, we can simultaneously prove the membership of multiple instances in a given NP language, with communication complexity proportional to the length of a single witness.

Available format(s)
Public-key cryptography
Publication info
Preprint. MINOR revision.
DelegationNo-SignalingAdaptive SoundnessRAMBatch Protocols
Contact author(s)
holmgren @ mit edu
2016-08-08: revised
2016-05-13: received
See all versions
Short URL
Creative Commons Attribution


      author = {Zvika Brakerski and Justin Holmgren and Yael Kalai},
      title = {Non-Interactive RAM and Batch NP Delegation from any PIR},
      howpublished = {Cryptology ePrint Archive, Paper 2016/459},
      year = {2016},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.