-
Notifications
You must be signed in to change notification settings - Fork 26
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
Add support for the Mastic VDAF #769
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cjpatton
commented
Jan 27, 2025
cjpatton
commented
Jan 27, 2025
cjpatton
commented
Jan 27, 2025
7154396
to
fd8b153
Compare
mendess
reviewed
Jan 28, 2025
mendess
approved these changes
Jan 28, 2025
fd8b153
to
9498e2e
Compare
Mastic (https://datatracker.ietf.org/doc/draft-mouris-cfrg-mastic/) is a VDAF that enables a richer set of functionalities than the VDAFs we support so so far. The `daphne::vdaf::mastic` module contains a "dummy" version of Mastic intended to exercise the DAP protocol logic we would need in order to fully support this VDAF. The `prio` crate now implements Mastic, so upgrade to a version of the crate that supports it and replace the dummy VDAF with the real one. In addition, to complete aggregation of a report, it is necessary to know the aggregation parameter, which currently is only plumbed to report initialization. In particular, `DapTaskConfig::produce_agg_job_resp()` needs the aggregation parameter from the aggregation job request message. (Likewise, `ToInitializedReportsTransition::with_initialized_reports()` needs the aggregation parameter.) Finally, clean up some API cruft in `daphne::vdaf`: 1. Encapsulate variants of Mastic behind a `MasticConfig` as we've done for other VDAFs. 2. Modify `prep_finish_from_shares()` to not take the aggregator ID. This is a relic of when we supported DAP-02, when this method may have been called by either the Leader or the Helper. Now it's always called by the Helper. 3. Implement state encoding for Mastic, as required by the new async Helper implementation. 4. Generalize the `prep_init()` function in `daphne::prio3` to be used for Mastic as well.
9498e2e
to
0994c94
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Mastic (https://datatracker.ietf.org/doc/draft-mouris-cfrg-mastic/) is a
VDAF that enables a richer set of functionalities than the VDAFs we
support so so far. The
daphne::vdaf::mastic
module contains a "dummy"version of Mastic intended to exercise the DAP protocol logic we would
need in order to fully support this VDAF. The
prio
crate nowimplements Mastic, so upgrade to a version of the crate that supports it
and replace the dummy VDAF with the real one.
In addition, to complete aggregation of a report, it is necessary to
know the aggregation parameter, which currently is only plumbed to
report initialization. In particular,
DapTaskConfig::produce_agg_job_resp()
needs the aggregation parameterfrom the aggregation job request message. (Likewise,
ToInitializedReportsTransition::with_initialized_reports()
needs theaggregation parameter.)
Finally, clean up some API cruft in
daphne::vdaf
:Encapsulate variants of Mastic behind a
MasticConfig
as we've donefor other VDAFs.
Modify
prep_finish_from_shares()
to not take the aggregator ID.This is a relic of when we supported DAP-02, when this method may
have been called by either the Leader or the Helper. Now it's always
called by the Helper.
Implement state encoding for Mastic, as required by the new async
Helper implementation.
Generalize the
prep_init()
function indaphne::prio3
to be usedfor Mastic as well.