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

Add support for the Mastic VDAF #769

Merged
merged 1 commit into from
Jan 28, 2025
Merged

Add support for the Mastic VDAF #769

merged 1 commit into from
Jan 28, 2025

Conversation

cjpatton
Copy link
Contributor

@cjpatton cjpatton commented Jan 27, 2025

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.

Cargo.toml Outdated Show resolved Hide resolved
@cjpatton cjpatton force-pushed the cjpatton/698-2-bump-prio branch 2 times, most recently from 7154396 to fd8b153 Compare January 27, 2025 19:07
@cjpatton cjpatton marked this pull request as ready for review January 27, 2025 19:29
@cjpatton cjpatton requested a review from mendess January 28, 2025 14:45
@cjpatton cjpatton force-pushed the cjpatton/698-2-bump-prio branch from fd8b153 to 9498e2e Compare January 28, 2025 15:40
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.
@cjpatton cjpatton force-pushed the cjpatton/698-2-bump-prio branch from 9498e2e to 0994c94 Compare January 28, 2025 20:51
@cjpatton cjpatton merged commit bfe5b34 into main Jan 28, 2025
4 checks passed
@cjpatton cjpatton deleted the cjpatton/698-2-bump-prio branch January 28, 2025 21:14
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.

2 participants