Oblivious Privacy in a Statically Typed World
summary
A Scala compiler plugin called Harpocrates enforces privacy policies at access points rather than via heavy IFC annotations by removing raw data constructors and inserting checks; it statically generates policy wrappers, wires external preference arguments by annotation, and uses implicits for ownership scope. The implementation has 15 phases and measures a 12.4% compile-time overhead over a raw app (7.8% vs brute-force) and 39% runtime overhead (11% vs brute-force). Integration into an 11k‑line codebase required 180 added and 251 changed lines (≈4% change); limitations include import renaming, private fields, and serialization of policy closures.
AI-written summary · about
chapters (17)
- 0:00Introduction and background
- 1:04Defining privacy in tech
- 3:57System architecture overview
- 5:48Challenges with current solutions
- 7:11Privacy container with monads
- 9:38Policy enforcement in constructors
- 11:47Handling arguments and operators
- 13:34Implementing policy checks
- 15:40Automatic argument wiring
- 16:23Policy propagation problem
- 18:56Policy composition on member access
- 19:59Scope controllers for implicit rules
- 20:40Case study with Vision
- 22:46Performance and developer impact
- 24:09Limitations and open questions
- 25:37Future research directions
- 26:24Q&A and resources
related talks
19mTaypsi: Static Enforcement of Privacy Policies for Policy-Agnostic Oblivious Computation
49mCompile-time Logic Programming in Scala: what for?
52mTrust No Input: Taint Analysis at Compile Time
01h 03mInside the Scala Capture Checker
53mFROM SCALA TO ASSEMBLY THE COST OF ABSTACTION REVISITED
15mHACCLE: Metaprogramming for Secure Multi-Party Computation
01h 01mFrom Theory to Practice: Crafting Differential Privacy Systems with Haskell
21mReasonable Scala Compiler
