Skip to content

v0.3 - Big Bird

Latest

Choose a tag to compare

@tholop tholop released this 09 Jun 13:32
· 26 commits to main since this release

This release implements the Big Bird algorithm, described in our preprint. Big Bird is a privacy management layer that operates on top of the individual privacy loss accounting layer. It introduces a shared global budget to maintain strong privacy guarantees against colluding sites, and a system of quota filters to regulate how sites can deplete the global budget. Big Bird also exposes an experimental batch API that uses a fair scheduler that improves utilization while maintaining isolation. Together, these mechanisms establish a robust foundation for enforcing privacy protections in adversarial environments.

What's Changed

  • Add URIs to Event and Report APIs by @giorgi-o in #31
  • PDS refactor - Terminology alignments with CM 3.3 by @mychern in #35
  • Implementing logging infrastructure by @arcaulfield in #36
  • Implement c/nc/q-conv filters by @giorgi-o in #37
  • Added filtering of relevant events based on URIs by @mychern in #40
  • Add event metadata relevancy check by PPA by @mychern in #42
  • Add QSource filter by @mychern in #43
  • Fix tests, and a few QoL cleanups by @giorgi-o in #50
  • Adjusted individual sensitivity to be per epoch-site by @mychern in #51
  • Simplify PpaEvent interface by @mychern in #52
  • Harmonize source terminology and fix epoch-source budgeting by @tholop in #53
  • Simple 2p-commit to check remaining budget before consumption. If not enough, enable rollback. by @mychern in #59
  • is_matching_event can be closure with captured variables by @giorgi-o in #60
  • Some type improvements and simplifications by @tholop in #62
  • Refactor PdsReport and PdsFilterStatus by @tholop in #65
  • Add some serialization and Pure DP budget constructors by @tholop in #69
  • Intermediary sites queries optimizations by @mychern in #68
  • Do not specify patch version in Cargo.toml by @giorgi-o in #73
  • PPA: Make URIs generic, instead of hard-coded to String by @giorgi-o in #74
  • Simplify HashMapFilterStorage generics by @giorgi-o in #75
  • Histogram refactor by @tholop in #76
  • Refactor the pds module by @tholop in #77
  • Factor out PDS-core (without EventStorage) from PrivateDataService by @giorgi-o in #81
  • Simplify PureDPBudget type and filter arithmetic #79 by @arcaulfield in #82
  • Clone refactoring by @mychern in #84
  • Create RelevantEvents struct to store relevant events by @giorgi-o in #83
  • Replace (almost) all uses of usize with u64 by @giorgi-o in #85
  • Some small QOL fixes by @giorgi-o in #86
  • Simplify FilterStorage trait by @giorgi-o in #87
  • Make Ppa type aliases uri-customisable by @giorgi-o in #88
  • Implement batching algorithm and release filter by @giorgi-o in #89
  • Rename filters to match the paper's terminology by @giorgi-o in #92
  • Add Big Bird reference by @tholop in #93
  • Experimental flags - debug-reports by @mychern in #91
  • Implement cross-report privacy loss optimization with attributionObject API by @giorgi-o in #95

Full Changelog: v0.2...v0.3