3 个不稳定版本
0.2.0 | 2020年8月25日 |
---|---|
0.1.1 | 2020年5月18日 |
0.1.0 | 2020年5月12日 |
#9 在 #data-privacy
每月 25 次下载
760KB
14K SLoC
WhiteNoise 核心库
差分隐私库运行时
此运行时是 Whitenoise-Core 的子项目。还可以参阅此系统的配套 WhiteNoise-System 和 WhiteNoise-Samples 仓库。
差分隐私是隐私保护的金标准定义。WhiteNoise 项目旨在将学术界提出的理论解决方案与从现实世界部署中汲取的实践经验相结合,使差分隐私在未来的部署中得到广泛的应用。具体来说,我们提供了一些基本构建块,这些构建块可用于涉及敏感数据的人员,其实现基于经过验证和成熟的差分隐私研究。在 WhiteNoise Core 中,我们提供了一组可插件的开源库,包括差分隐私算法和机制,用于发布隐私保护查询和统计信息,以及用于定义分析和验证器以及评估这些分析和在数据集上组合总隐私损失的 API。
此库提供了一个快速、内存安全的本地运行时,用于运行差分隐私分析。差分隐私计算指定为可验证和执行的 protobuf 分析图,以产生差分隐私数据发布。发布包括关于输出准确性和分析完整隐私成本的元数据。
更多关于 WhiteNoise Core 运行时的信息
组件
有关库中提供的丰富组件的完整列表,请参阅此文档。
架构
Whitenoise-core 系统架构在父项目中进行了描述。[链接](https://github.com/opendifferentialprivacy/whitenoise-core#Architecture)。此包是运行时的一个实例。运行时的目的是在一个任意数据集的分析中评估组件。该包假定数据足够小,可以加载到内存中。然而,更广泛的系统设计为能够在不同的运行时上评估组件。对于大型数据集,在另一个运行时/后端上进行非私有转换和聚合可能更实用,而仅使用 Rust 运行时进行其隐私化机制。
使用此包所需的公共 API 很小——只有一个函数:release。此函数的输入是计算的任意复杂描述(分析)以及分析的部分执行(也称为发布)。发布可以通过 prost 结构 或序列化的 protobuf 调用。用于构建必要 protobuf 的实用库称为绑定。绑定目前仅在 Python 中可用。
确定组件是否发布差异隐私数据的逻辑,以及噪声的缩放、属性跟踪和精度估计都由 Validator 处理。
WhiteNoise Rust 文档
Rust 文档[链接](https://opendifferentialprivacy.github.io/whitenoise-core/)包括了关于库和 Validator 所有部分的完整文档,包括详细的[组件描述和示例](https://opendifferentialprivacy.github.io/whitenoise-core/doc/whitenoise_runtime/components/index.html)。
沟通
(进行中。)
发布和贡献
如果您遇到错误,请通过[创建问题](https://github.com/opendifferentialprivacy/whitenoise-core/issues)来通知我们。
我们感谢所有贡献。我们欢迎不经过事先讨论的带有错误修复的 pull request。
如果您计划贡献新功能、实用函数或核心的扩展,请首先打开一个问题,并与我们讨论该功能。
- 未经讨论发送 PR 可能会导致被拒绝,因为我们可能将核心推向了您可能不知道的方向。
- 请查阅
../contributing.md
以获取更多指南和指导。
依赖关系
~10–22MB
~448K SLoC