5 个不稳定版本
0.2.3 | 2022年1月6日 |
---|---|
0.1.2 | 2020年11月19日 |
0.1.1 | 2020年11月19日 |
0.1.0 | 2020年11月2日 |
0.0.1 | 2020年10月22日 |
#10 in #差分隐私
1MB
16K SLoC
注意:SmartNoise-Core 已废弃。请迁移到 OpenDP 库
SmartNoise Core:差分隐私库运行时
此运行时是 SmartNoise-Core 的子项目。有关此系统的配套 SmartNoise SDK 仓库 和 SmartNoise-Samples 仓库,请参阅。
差分隐私是隐私保护的金标准定义。SmartNoise 项目旨在将学术界的理论解决方案与现实部署中获得的实践经验相结合,使差分隐私能够广泛适用于未来的部署。具体而言,我们提供了一些基本构建模块,这些模块可用于处理敏感数据的人员,基于经过验证和成熟的差分隐私研究。在 SmartNoise Core 中,我们提供了一个可插入的开源库,包含差分隐私算法和机制,用于发布隐私保护的查询和统计信息,以及用于定义分析和验证器、评估这些分析以及组合数据集上的总隐私损失的 API。
此库提供了一种快速、内存安全的本地运行时,用于运行差分隐私分析。差分隐私计算被指定为可验证和执行的 protobuf 分析图,以生成数据的不同隐私版本。发布包括关于输出准确性和分析完整隐私成本的元数据。
更多关于 SmartNoise Core 运行时的信息
组件
有关库中提供的广泛组件的完整列表,请参阅此文档。
架构
SmartNoise-core系统架构在父项目中进行了描述。[链接](https://github.com/opendp/smartnoise-core#Architecture)。本包是运行时实例的一个示例。运行时的目的是在任意数据集上评估分析组件。该包假设数据足够小,可以加载到内存中。然而,更广泛的系统设计为能够在不同的运行时上评估组件。对于大数据集,在不同的运行时/后端上进行非私有转换和聚合可能更实用,而仅使用rust运行时进行隐私化机制。
使用本包所需的公共API很小——只有一个函数,[release](https://opendp.github.io/smartnoise-core/doc/smartnoise_runtime/index.html)。该函数的输入是计算的任意复杂描述(分析)和分析的部分执行(也称为release)。Release可以通过[prost structs](https://opendp.github.io/smartnoise-core/doc/smartnoise_runtime/proto/index.html)或序列化的protobuf来调用。构建必要protobuf的实用库称为bindings。目前,bindings仅适用于Python。
确定组件是否发布不同隐私数据、噪声缩放、属性跟踪和精度估计的逻辑由Validator处理。
SmartNoise Rust 文档
[Rust文档](https://opendp.github.io/smartnoise-core/)包含了关于库和validator的所有部分的完整文档,包括详尽的[组件描述及示例](https://opendp.github.io/smartnoise-core/doc/smartnoise_runtime/components/index.html)。
通讯
(处理中)
版本和贡献
如遇到错误,请[创建问题](https://github.com/opendp/smartnoise-core/issues)。
我们感谢所有贡献。我们欢迎未经事先讨论的bug修复的pull请求。
如果您计划贡献新的功能、实用函数或核心扩展,请首先创建一个问题,并与我们讨论该功能。
- 未经讨论就发送PR可能会导致PR被拒绝,因为我们可能将核心推向了您可能不知道的方向。
- 请查看[contribute.md](https://github.com/opendp/smartnoise-core/blob/330092a493398a674a32d86249693da907e1d9d5/contributing.md)以获取额外的指导和指南。
依赖关系
~11-23MB
~461K SLoC