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

Adds Prio3 a set of verifiable distributed aggregation functions. #522

Merged
merged 15 commits into from
Jan 17, 2025

Conversation

armfazh
Copy link
Contributor

@armfazh armfazh commented Dec 17, 2024

Prio3 supports several variants for aggregating data measurements in a privacy preserving manner.
This implementation is compliant with v13 of CRFG draft VDAF https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-vdaf-13#name-prio3

Prio3 supports several variants for aggregating data measurements
in a privacy preserving manner.
This implementation is compliant with v13 of CRFG draft VDAF
https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-vdaf-13#name-prio3
@armfazh armfazh added the new feature New functionality or module label Dec 17, 2024
@armfazh armfazh self-assigned this Dec 17, 2024
Copy link
Contributor

@cjpatton cjpatton left a comment

Choose a reason for hiding this comment

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

This looks really good!

math/integer.go Show resolved Hide resolved
vdaf/doc.go Show resolved Hide resolved
vdaf/prio3/arith/arith.go Outdated Show resolved Hide resolved
vdaf/prio3/arith/arith.go Outdated Show resolved Hide resolved
vdaf/prio3/arith/arith.go Outdated Show resolved Hide resolved
vdaf/prio3/mhcv/mhcv.go Outdated Show resolved Hide resolved
vdaf/prio3/mhcv/mhcv.go Outdated Show resolved Hide resolved
vdaf/prio3/prio3_test.go Outdated Show resolved Hide resolved
vdaf/prio3/arith/templates/vector.go.tmpl Show resolved Hide resolved
vdaf/prio3/arith/arith.go Show resolved Hide resolved
@armfazh
Copy link
Contributor Author

armfazh commented Dec 20, 2024

Items todo:

  • Make Encode() constant time so doesn't leak measurement.
  • Add a unit test for Query(), to catch invalid query randomness
  • Mul of polynomials using NTT

@cjpatton
Copy link
Contributor

Items todo:

* Make Encode() constant time so doesn't leak measurement.

* Add a unit test for Query(), to catch invalid query randomness

* Mul of polynomials using NTT

Feel free to punt the NTT optimizations to a future PR.

@armfazh
Copy link
Contributor Author

armfazh commented Jan 17, 2025

Items Completed:

This is ready for a second review, cc: @cjpatton

Copy link
Contributor

@cjpatton cjpatton left a comment

Choose a reason for hiding this comment

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

A couple more comments then I think this is good to go.

@cjpatton
Copy link
Contributor

GitHub is burying the unresolved comments, so here are the unresolved threads for convenience:
#522 (comment)
#522 (comment)

@armfazh armfazh requested a review from cjpatton January 17, 2025 22:22
@armfazh armfazh merged commit 3d8cc98 into cloudflare:main Jan 17, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature New functionality or module
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants