目录

MoonBit 差分隐私预算管理器 (moon-privacy-budget)

MoonBit Version License Build & Test

moon-privacy-budget 是专为 MoonBit 语言生态打造的高性能、可追溯、可审计的差分隐私(Differential Privacy, DP)预算管理器

本项目不仅实现了主流的差分隐私加噪机制(Laplace, Gaussian, Analytic Gaussian, Exponential, SVT, Matrix Mechanism),更核心的是为现代数据分析、私密 SQL 查询以及差分隐私机器学习(DP-SGD)流水线提供全生命周期的隐私预算账户管理、高级组合定理核算、动态拦截过滤器、连续量测里程表以及格式化隐私损失审计报告导出


🌟 核心特性

  • 多维加噪机制 (src/mechanisms)

    • Pure ϵ\epsilon-DP Laplace 机制:支持标量与向量 query 加噪及解析置信区间计算。
    • (ϵ,δ)(\epsilon, \delta)-DP Gaussian 机制:基于 L2L_2 敏感度校准。
    • Analytic Gaussian 机制:Balle & Wang (2018) 精确数值根查找校准,无渐进近似误差。
    • Exponential 机制:非数值离散候选集的得分选择机制。
    • **Sparse Vector Technique (SVT)**:AboveThreshold 阈值搜索机制。
    • **Randomized Response (LDP)**:Warner 本地差分隐私响应与总体比例无偏估计。
    • Matrix Mechanism:针对 Workload 查询矩阵的最优策略加噪。
  • 高级组合定理与 Accountant (src/composition)

    • Basic Composition:线性累加 ϵi,δi\sum \epsilon_i, \sum \delta_i
    • Advanced Composition:Dwork-Roth-Vadhan (2014) O(kln(1/δ))O(\sqrt{k \ln(1/\delta')}) 上界。
    • **Rényi Differential Privacy (RDP)**:RDP 累加与转化为 (ϵ,δ)(\epsilon, \delta)-DP 的最佳 α\alpha 阶数查找。
    • **Zero-Concentrated DP (zCDP)**:ρ\rho-zCDP 累加器与转换。
    • Moments Accountant:Abadi et al. (2016) DP-SGD 子采样 Gaussian 累加器。
  • 隐私账本与拦截控制 (src/ledger)

    • **PrivacyAccount**:账户预算充值、消耗、剩余比例与自动告警/锁定。
    • **PrivacyLedger**:多账户事务扣减与并发安全逻辑。
    • **SubLedgerNode**:树状层级预算分配(组织 -> 部门 -> 团队)。
    • **PrivacyFilter**:查询前置拦截器(预算不足时拦截查询)。
    • **PrivacyOdometer**:连续量测里程表(实时监测无硬上限的隐私消耗)。
  • 审计日志与报告导出 (src/audit)

    • **AuditLogger**:不可变查询日志审计,支持按账户和数据集检索。
    • **ReportGenerator**:生成 JSON 格式审计日志与 Markdown 格式隐私损耗可视化表格报告。
  • 私密 SQL 查询与机器学习扩展 (src/query, src/federated, src/ml)

    • **PrivateQueryEngine**:支持 COUNT, SUM, AVG, HISTOGRAMGROUP BY 差分隐私查询。
    • **SQLParser**:SQL 查询文本词法分析与 AST 解析。
    • **FederatedBudgetCoordinator**:分布式节点隐私预算协调与安全聚合模拟。
    • **DPSGD**:梯度 L2L_2 范数截断与差分隐私逻辑回归/决策树选择。

📁 目录结构

moon-privacy-budget/
├── moon.mod                          # MoonBit 模块清单文件
├── LICENSE                           # Apache-2.0 开源许可证
├── README.md                         # 项目中文说明文档
├── OSC2026_Project_Declaration.md   # OSC 2026 大赛项目申报书
├── .github/
│   └── workflows/
│       └── ci.yml                   # GitHub Actions CI 工作流
├── src/
│   ├── core/                         # 基础类型 (Epsilon, Delta, PrivacyBudget, Error)
│   ├── math/                         # 数学库 (PRNG, Gaussian/Laplace CDF, erf, Matrix)
│   ├── mechanisms/                   # 加噪机制 (Laplace, Gaussian, Exponential, SVT)
│   ├── composition/                  # 组合定理 (Advanced, RDP, zCDP, Moments Accountant)
│   ├── ledger/                       # 隐私账本 (PrivacyAccount, Filter, Odometer)
│   ├── audit/                        # 审计日志 (AuditLogger, JSON/Markdown Exporter)
│   ├── aggregators/                  # DP 聚合器 (Count, Sum, Mean, Variance, Histogram)
│   ├── query/                        # 私密 SQL 引擎 (Table, PrivateQueryEngine, SQLParser)
│   ├── federated/                    # 联邦节点预算协调器 (FederatedNode, Coordinator)
│   └── ml/                           # 差分隐私机器学习 (DPSGD, DPLinearRegression)
└── main/                             # 示例程序与 CLI 入口

🛠️ 构建与测试

环境要求

  • MoonBit 工具链 0.10.3 或最新版 (已通过 moon check, moon test, moon fmt, moon info 验证)。

编译与检查

# 检查项目语法与类型
moon check

# 运行全套单元测试 (包含 57 项自动化测试)
moon test

# 代码格式化与信息检查
moon fmt
moon info

# 运行 CLI 演示程序
moon run main

💡 快速上手示例

// 1. 创建隐私预算账户 (ε = 10.0, δ = 1e-4)
let init_b = match @core.PrivacyBudget::make(10.0, 0.0001) {
  Ok(b) => b
  Err(e) => fail(e)
}
let acc = @ledger.PrivacyAccount::new("user_01", "Alice", init_b, 100)

// 2. 创建私密查询引擎与 Guard
let p_guard = @query.PrivacyGuard::new(acc, 12345UL)

// 3. 构建数据集并执行差分隐私查询
let bound = match @core.DomainBound::new(0.0, 100.0) { Ok(b) => b; Err(e) => fail(e) }
let col = @query.Column::new("age", [25.0, 30.0, 45.0, 50.0], bound)
let table = @query.Table::new("users")
let _ = table.add_column(col)

let req_budget = match @core.PrivacyBudget::make(0.5, 0.00001) { Ok(b) => b; Err(e) => fail(e) }
let res = p_guard.execute_query("q1", table, @query.QueryType::select_avg("age"), req_budget)

// 4. 查看剩余隐私预算与审计日志
println("Remaining Budget: " + p_guard.remaining_budget().to_string())

📜 论文引用与来源声明

本项目为完全独立原创开发,实现参考了以下差分隐私领域的经典学术文献:

  1. Dwork, C., & Roth, A. (2014). The Algorithmic Foundations of Differential Privacy. Foundations and Trends in Theoretical Computer Science.
  2. Balle, B., & Wang, Y. X. (2018). Improving the Gaussian Mechanism for Differential Privacy: Analytical Calibration and Exact Privacy Guarantees. ICML 2018.
  3. Abadi, M., et al. (2016). Deep Learning with Differential Privacy. ACM CCS 2016.
  4. Mironov, I. (2017). Rényi Differential Privacy. IEEE CSF 2017.
关于

实现 Laplace 和 Gaussian 噪声机制、隐私预算账户、组合定理、查询次数限制和隐私损失报告。项目重点不是单一加噪函数,而是为数据分析流程提供可追踪、可审计的预算管理;后续可扩展到隐私 SQL 和联邦统计。

109.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号