In B.C. (before Corona) we presented a domain-specific language and a compiler for secure multi-party computation (MPC). The compiler targets a state-of-the-art backend that specializes in low-level numerical computations. While the DSL helped to focus on the critical MPC domain, for a practical system we needed a way to easily connect with the outside world. This would enable us to compose multiple MPC programs as well as intertwine them with business logic.
Today we present Speakeasy, a library for composing privacy-enhancing technologies. It allows you to express the general flow of secret and non-secret data as a logical graph, and then offers a way to analyze this graph and execute it on different backends depending on the need. As a result, a user not only gets domain-specific annotations and error-messages for the privacy-preserving part of their code, they can also run full pipelines of non-trivial programs defined in a single, cohesive environment.
Our talk will focus on presenting the foundations of this library as well as discuss the Scala 3 features which make it possible and user friendly.