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

Prio3: Improve circuit specifications #451

Merged
merged 1 commit into from
Oct 10, 2024
Merged

Prio3: Improve circuit specifications #451

merged 1 commit into from
Oct 10, 2024

Conversation

cjpatton
Copy link
Collaborator

@cjpatton cjpatton commented Oct 7, 2024

Stacked on #449 (to reduce rebase conflicts later on).
Closes #411.

Rework the spec of each Prio3 variant by listing the entire class of each circuit. Also, list the specification of each gadget in
the appendix.

  • Prio3Sum: Use PolyEval instead of Range2, as this is a much more useful gadget to list in the doc.
  • Say "variant" instead of "instance".
  • Document missing operations on polynomials
  • Modify the constructor for Field elements by interpreting negative integers as additive inverses. This is necessary in order to allow expressing polynomial coefficients in the PolyEval circuit independent of the field modulus.

@cjpatton cjpatton marked this pull request as ready for review October 7, 2024 20:43
@cjpatton
Copy link
Collaborator Author

cjpatton commented Oct 7, 2024

Reviewer note: the diff is quite big because we are coalescing the circuit specification, encoding scheme, and parameter table into a single listing. My recommendation would be not look at the diff, but instead pull the branch and read through {{prio3-instantiations}}.

@cjpatton cjpatton force-pushed the cjpatton/412 branch 2 times, most recently from d4541cc to f7dd19a Compare October 8, 2024 18:29
@cjpatton cjpatton force-pushed the cjpatton/411 branch 2 times, most recently from c8e6146 to 7473dd3 Compare October 8, 2024 18:34
@cjpatton
Copy link
Collaborator Author

cjpatton commented Oct 8, 2024

Rebased.

@cjpatton cjpatton changed the base branch from cjpatton/412 to main October 8, 2024 18:35
@cjpatton cjpatton requested a review from divergentdave October 8, 2024 18:42
@cjpatton
Copy link
Collaborator Author

cjpatton commented Oct 8, 2024

Rebased. Initially the unit tests failed because Field expects a non-negative integer and we were expressing the Range2() as PolyEval([0, -1, 1]). We need to express this gadget this way because we don't know the field modulus at the time the gadget is constructed.

@cjpatton
Copy link
Collaborator Author

cjpatton commented Oct 9, 2024

Rebased.

poc/tests/test_flp_bbcggi19.py Outdated Show resolved Hide resolved
poc/vdaf_poc/flp_bbcggi19.py Outdated Show resolved Hide resolved
draft-irtf-cfrg-vdaf.md Outdated Show resolved Hide resolved
draft-irtf-cfrg-vdaf.md Outdated Show resolved Hide resolved
draft-irtf-cfrg-vdaf.md Outdated Show resolved Hide resolved
draft-irtf-cfrg-vdaf.md Outdated Show resolved Hide resolved
draft-irtf-cfrg-vdaf.md Outdated Show resolved Hide resolved
draft-irtf-cfrg-vdaf.md Outdated Show resolved Hide resolved
Rework the spec of each Prio3 variant by listing the entire class of
each circuit. Also, list the specification of each gadget in the
appendix.

* Prio3Sum: Use `PolyEval` instead of `Range2`, as this is a much more
  useful gadget to list in the doc.

* Say "variant" instead of "instance".

* Document missing operations on polynomials.

* Modify the constructor for `Field` elements by interpreting negative
  integers as additive inverses. This is necessary in order to allow
  expressing polynomial coefficients in the `PolyEval` circuit
  independent of the field modulus.
@cjpatton cjpatton merged commit b6aa650 into main Oct 10, 2024
6 checks passed
@cjpatton cjpatton deleted the cjpatton/411 branch October 17, 2024 00:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

@armfazh: draft 11: Replace circuit and gadget descriptions with their classes
2 participants