Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Public Instance Data #172

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft

Public Instance Data #172

wants to merge 3 commits into from

Conversation

dorebell
Copy link
Collaborator

@dorebell dorebell commented Jun 4, 2024

This PR addresses #155 by adding public values to the definition of the Chip trait. The public values are considered as a separate trace, similarly to how preprocessed traces are handled. However, whereas for the preprocessed trace, the indexer commits to trace matrix and the prover provides opening proofs for queries, the verifier computes its own queries against the public trace.

When implementing Air<_, .., AB> when AB: AirBuilderWithPublicValues, we are allowed to address rows of the public trace as with the ordinary trace and preprocessed trace when computing the constraints. The verifier performs polynomial interpolation of the public trace table (which should be short!) to obtain query values corresponding to the public trace columns, and uses these values when testing consistency between the quotient polynomial, the constraint polynomial, and the trace tables.

In order to accommodate situations when the public trace is better thought of as a vector (i.e. we have a series of public values that is not indexed by row of the main trace), we implement the PublicValues trait for PublicRow, a wrapper type around an ordinary vector. This treats the PublicRow as a matrix with the same row repeated the appropriate number of times.

The implementations of public values for the relevant Valida chips (namely: ProgramROM, StaticData, and Output) are placeholders; they will be filled in in a future PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants