PrivCount proof of concept: implement check counters
We can start building a PrivCount proof of concept with 3 check counters:
- ZeroCount - all Data Collectors (DCs) store zero in this counter. If aggregation succeeds, the result is zero. Otherwise, all aggregated results for this round are meaningless.
- DataCollectorCount - all Data Collectors (DCs) store one in this counter. If aggregation succeeds, the result is the number of DCs that reported results.
- SampledNoiseAmount - all Data Collectors (DCs) store some noise in this counter, using their standard processes for generating noise, including noise weighting, sampling, and rounding (if needed). If aggregation succeeds, and the standard deviation is large enough, the result will almost always be non-zero, and almost always be within a few standard deviations of zero. We need this counter, because bugs in noise generation may not be obvious in the results.