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

Remove selector_map from pinned verification key and remove VerificationKey serialization #521

Merged
merged 4 commits into from
Mar 18, 2022

Conversation

ebfull
Copy link
Contributor

@ebfull ebfull commented Mar 16, 2022

Two problems this PR is addressing.

  1. The verification key deserialization logic fails to correctly deserialize when virtual selectors exist because it cannot reconstruct the gate expressions and the number of combined selector columns -- that information only exists right now during keygen. (Define a stable serialization format for VerifyingKey #449) So, this PR removes it for the time being until we can write a working implementation later.
  2. The pinned verification key stores a selector_map which isn't used anywhere and doesn't describe anything that isn't already fully determined by the rest of the key. We want to remove this from the pinned verification key so that we don't have to reconstruct this in the future. (Note that this makes proofs incompatible with previous versions because it changes Fiat-Shamir transcript initialization.)

@ebfull ebfull added M-verifier-compatibility This is a backwards-incompatible change to the verifier C-cleanup labels Mar 16, 2022
@ebfull ebfull force-pushed the reconstruct-selectors branch from 20da7e8 to 32dd524 Compare March 16, 2022 19:59
@ebfull ebfull force-pushed the reconstruct-selectors branch from 32dd524 to f46d777 Compare March 16, 2022 20:19
@nuttycom nuttycom added this to the Core Sprint 2022-10 milestone Mar 16, 2022
Copy link
Contributor

@daira daira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK

Copy link
Collaborator

@therealyingtong therealyingtong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK

@str4d str4d merged commit 642efc1 into main Mar 18, 2022
@str4d str4d deleted the reconstruct-selectors branch March 18, 2022 00:17
str4d added a commit to zcash/orchard that referenced this pull request Mar 22, 2022
The change to the pinned circuit description is due to removing the
unnecessary `selector_map` pin in zcash/halo2#521. This invalidates
previous proofs due to changing Fiat-Shamir transcript initialization).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-cleanup M-verifier-compatibility This is a backwards-incompatible change to the verifier
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants