Modern SNARK constructions, almost ubiquitously, rely on a polynomial commitment scheme (PCS)—a method by which a prover can commit to a large polynomial P and later provide evaluation proofs of the form “ \(P(x)=y\) ” to the verifier. In the context of zkVMs (i.e., proof-systems for general-purpose RAM computations), the common design is to represent the computation trace as a sequence of tables, one per CPU instruction, and commit to the these tables, or even their individual columns, as separate polynomials. Committing separately to these polynomials has a large overhead in verification costs, especially in hash-based systems. In this work we drastically reduce this cost via a new construction which we call the jagged PCS. This PCS enables the prover to commit to the entire computation trace as a single polynomial, but then allows for the verifier to emulate access to the individual table or column polynomials, so that the arithmetization can proceed in the usual manner. The jagged PCS may be thought of as a sparse PCS for a very particular form of sparsity – namely, a “jagged” matrix in which each column has a different height. Our construction of the jagged PCS is highly performant in practice. In contrast to existing sparse PCS constructions for general sparse polynomials, the jagged PCS does not require the prover to commit to any additional oracles and the prover cost is dominated by 5 finite field multiplications per element in the trace. Furthermore, we implement the verifier as a purely arithmetic circuit that depends only on the total trace area—thereby significantly reducing the problem of “combinatorial explosion” often encountered in zkVM recursion.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Jagged Polynomial Commitments (or: How to Stack Multilinears)

  • Tamir Hemo,
  • Kevin Jue,
  • Eugene Rabinovich,
  • Gyumin Roh,
  • Ron D. Rothblum

摘要

Modern SNARK constructions, almost ubiquitously, rely on a polynomial commitment scheme (PCS)—a method by which a prover can commit to a large polynomial P and later provide evaluation proofs of the form “ \(P(x)=y\) ” to the verifier. In the context of zkVMs (i.e., proof-systems for general-purpose RAM computations), the common design is to represent the computation trace as a sequence of tables, one per CPU instruction, and commit to the these tables, or even their individual columns, as separate polynomials. Committing separately to these polynomials has a large overhead in verification costs, especially in hash-based systems. In this work we drastically reduce this cost via a new construction which we call the jagged PCS. This PCS enables the prover to commit to the entire computation trace as a single polynomial, but then allows for the verifier to emulate access to the individual table or column polynomials, so that the arithmetization can proceed in the usual manner. The jagged PCS may be thought of as a sparse PCS for a very particular form of sparsity – namely, a “jagged” matrix in which each column has a different height. Our construction of the jagged PCS is highly performant in practice. In contrast to existing sparse PCS constructions for general sparse polynomials, the jagged PCS does not require the prover to commit to any additional oracles and the prover cost is dominated by 5 finite field multiplications per element in the trace. Furthermore, we implement the verifier as a purely arithmetic circuit that depends only on the total trace area—thereby significantly reducing the problem of “combinatorial explosion” often encountered in zkVM recursion.