PLOOKUP
Exploring the confusing tunnel of PLOOKUP
Last updated
Exploring the confusing tunnel of PLOOKUP
Last updated
Introduction and Context
These schemes allow a prover to commit to a polynomial while keeping it hidden, later revealing specific properties without disclosing the entire polynomial. The "plookup" protocol as detailed in the paper "plookup: A Simplified Polynomial Protocol for Lookup Tables" by Ariel Gabizon and Zachary J. Williamson (2020) plookup: A simplified polynomial protocol for lookup tables, addresses a specific challenge: verifying that the values of a committed polynomial at points in a multiplicative subgroup are contained within a lookup table . This is crucial for applications in zero-knowledge succinct non-interactive arguments of knowledge (zk-SNARKs), such as batched range proofs, where we need to ensure all polynomial values fall within a specific range.
Background: Commitment Schemes and Polynomial Commitments
To begin, let's define a commitment scheme. A commitment scheme allows a party to commit to a value while keeping it hidden, with two key properties:
Hiding property: The commitment reveals no information about the committed value.
Binding property: Once committed, the value cannot be changed.
Polynomial commitment schemes extend this to polynomials, enabling commitments to functions that can encode complex data or computations. For instance, schemes like KZG (Kate, Zaverucha, Goldberg) KZG polynomial commitments allow for succinct commitments and efficient verification of polynomial evaluations, which are foundational for zk-SNARKs.
Problem Statement and Motivation
The plookup protocol tackles the problem of verifying that for each point in a multiplicative subgroup of size , the value is in the lookup table , where has elements. This is essential in scenarios like range checks, where we need to prove all values of lie within a specific set without revealing .
Previous methods, such as those by Bootle et al. (2016) Efficient zero-knowledge arguments for arithmetic circuits in the discrete logarithm setting, required commitments to several auxiliary polynomials of degree , which could be inefficient for large . Plookup simplifies this, requiring only three commitments to auxiliary polynomials of degree , offering efficiency gains when which is most times the case.
Detailed Protocol Steps
The plookup protocol, as outlined in the attachment, involves the following steps, assuming for simplicity (padding with repetitions if ):
Sorting and Representation:
Concatenate the vector (values of the polynomial at points) and (table values), then sort to get .
Represent using two polynomials :
,
is the subgroup.
Prover Sends Polynomials:
The prover computes and sends and to the verifier.
Verifier Sends Random Challenges:
The verifier chooses random and sends them to the prover.
Prover Computes Aggregation Polynomial:
The prover computes , defined as:
,
For
.
Prover Sends Aggregation Polynomial:
The prover sends to the verifier.
Verifier Checks Identities:
The verifier checks:
,
,
.
Outputs "acc" if and only if all check pass.
Key Components and Underlying Concepts
The protocol's correctness ensures that if , the verifier accepts with negligible probability, with complexity .
Sorting Mechanism: The sorting of and transforms the membership problem into checking consistency in the sorted list, handled via polynomials and .
Aggregation Polynomial ( Z ): This polynomial, part of a grand product argument, compactly verifies multiple conditions, leveraging random challenges and for zero-knowledge properties.
Efficiency: By reducing commitments to three polynomials of degree , plookup is more efficient than Bootle et al.'s method, especially for .