Skip to main content

Glossary

This glossary provides definitions of terms specific to Divvi Up and the protocols it uses.

Aggregator

A server that implements the aggregation subprotocol of DAP. Divvi Up and its partners operate DAP-compliant aggregators. Aggregators can also be self-hosted.

Aggregators ingest measurements sent from clients. They aggregate reports into batches, and service collector requests.

Aggregators can be in one of two roles: Leader or Helper.

Examples of aggregator software include Janus (ISRG), and Daphne (Cloudflare, helper-only).

Client

An end-user app that uses the client subprotocol of DAP to contribute measurements to a task. Typically, app developers will integrate a DAP client library to achieve this.

Collector

An application that implements the collector subprotocol of DAP. It collects aggregated batches from the aggregators and provides the final aggregate to the subscriber. This is most often operated by the application developer.

A library suitable for building collectors is found in the Rust crate janus_collector. A primitive collector implementation is available in Janus.

Distributed Aggregation Protocol (DAP)

A protocol that describes a multi-party distributed system for privacy preserving aggregation of measurements. It is currently in the draft phase. Its specification can be viewed on the IETF data tracker.

Each participant in a DAP system adopts one of these roles: client, collector, leader, or helper.

Helper

A DAP aggregator that performs aggregation and collection in response to direction from the Leader.

The system and network bandwidth requirements for a helper are lower than those for a leader.

Leader

A DAP aggregator that directly ingests reports from clients, and drives the aggregation and collection processes with the helper. The leader determines how reports are to be batched.

The system and network bandwidth requirements for a leader are higher than for those for a helper.

Query type

Describes how reports are grouped into batches for aggregation. There are two query types defined by DAP:

  • Time-interval: Reports are grouped into batches based on the timestamp of the report.
  • Fixed-size: Reports are grouped into batches of fixed size by the leader.

Report

A client-submitted measurement. Each report is composed of two report shares: one for the leader, and one for the helper.

Each report share contains the following data:

  • An encrypted shard of the original measurement.
  • A public share, containing additional data required for validation. Not all measurement types require a public share.
  • A randomly generated report identifier.
  • The time at which the report was generated.

Subscriber

An organization or individual who is using Divvi Up to implement privacy perserving metrics for their application.

Task

The core entity that Divvi Up and clients use for submitting and aggregating measurements. Determines the type of measurement (count, sum, histogram, et. al.), which aggregators will be used, which aggregation function to use, and additional metadata depending on the DAP participant.

An client application will have a task for each kind of measurement it takes.