docs/research/sota-2026-05-22/ticks/tick-15.md
Thread: ADR-106 (DP-SGD + biometric primitive isolation) Verdict: Closes the two items deferred from ADR-105 (member-inference defence + primitive isolation enforcement). The federation protocol now has formally-bounded privacy.
docs/adr/ADR-106-dp-sgd-and-primitive-isolation.md — full ADR draft. Direct extension of ADR-105.| Layer | Mechanism | Defends against |
|---|---|---|
| 1 — Primitive Isolation | API-level tagging of on-device-only tensors (R15 binding list) | Exfiltration of biometric primitives via federation channel |
| 2 — Gradient clipping | Per-sample L2 norm bound (Abadi 2016) | Bounds sensitivity of any single training sample |
| 3 — Gaussian noise | Per-round N(0, σ²C²I) on aggregated delta | Formal (ε, δ)-DP via Moments Accountant |
Recommended (per Moments Accountant, δ=1e-5):
| Profile | σ | Rounds | Total ε | Use |
|---|---|---|---|---|
| Conservative (medical-grade) | 1.5 | 50 | 2.0 | HIPAA-aligned |
| Standard (typical RuView) | 1.0 | 100 | 5.0 | Most cogs |
| Lenient | 0.5 | 100 | 8.0 | Below ε=10 community soft-bound |
7 ✅ "never transmit" primitives:
3 ⚠️ "transmit with mitigation":
API surface enforces ✅ as compile-time error where possible.
Extends ADR-105's 500 LOC by +300 LOC: PrimitiveTag (60) + clipping (30) + DP noise (40) + Moments Accountant (120) + per-cog config schema (50). Total federation budget: ~800 LOC, 3-week effort.
R3 + R14 + R15 + ADR-105 + ADR-106 = complete chain from physics (R6 forward model) → embeddings (R3) → personalised features (R14) → trained how (ADR-105) → defended how (R7) → privacy-bounded how (ADR-106).
The chain has:
The per-occupant feature surface (R14 V1/V2/V3) now has formal (ε, δ) privacy backing, not just policy.
ticks/tick-15.md. No PROGRESS.md edit. Branch research/sota-adr106-dp-sgd-primitive-isolation.
~5.3h to cron stop. 15 ticks landed. PROGRESS.md research agenda + 1 follow-up ADR closed.