Implementing Secure Multi-Party Computing
Secure Multiparty Computation (MPC) is a cryptographic primitive that allows several parties to jointly and privately compute desired functions over secret data. Building and deploying practical MPC applications faces several obstacles, including performance overhead, complicated deployment and setup procedures, and adoption of MPC protocols into modern software stacks. MPC applications expose trade-offs between efficiency and privacy that may be hard to reason about, formally characterize, and encode in a protocol design or implementation.
We describe technical and non-technical challenges from our experience deploying MPC applications in the real world. We showcase JIFF: an extensible general purpose MPC framework capable of running on web and mobile stacks, showing how developments in distributed systems, web development, and the SMDI paradigm can inform MPC constructs and implementation. JIFF is used to implement several MPC applications, including a successfully deployed study on economic opportunity for minority owned businesses in the Boston area, and a service for efficient privacy-preserving route recommendation.