The ultimate aim of this project is to design and implement an efficient virtual machine that can be used in practice for generic secure multiparty computation (MPC).
MPC is a way to convert any distributed computation that can be performed securely with the assistance of a trusted third party into a protocol that does not require any third parties, yet gives the same output and remains just as secure.
The existence of MPC is one of the breakthrough results of modern cryptography. These results appear to be extremely relevant for problems in many areas - wherever there is tension between privacy, trust and functionality. In practice, however, there is very little real-world use of these techniques.
Existing MPC techniques involve translating a function to be computed into a logical circuit. This architecture has some drawbacks, however, that we believe contribute to the scarcity of real-world use of these techniques. In particular, programs whose running time is potentially very long are infeasible to implement as circuits (since a circuit's size depends on the maximal running time of a program). Moreover, there are far more engineers familiar with programming than with the constraints of circuit design.
In this project we propose to take a new approach to practical MPC: changing it from a ``hardware engineering'' problem (designing circuits) to one of ``software engineering'' (writing programs). The high-level idea is to develop a ``secure computation virtual machine'' in the von Neumann architecture: a virtual CPU and virtual RAM that can run programs in a similar way to a modern physical computer system. Such an architecture would allow secure programs to be compiled directly from standard programming languages (such as C or Java). The hope is that, once such a system exists, MPC will become accessible to the many software engineers who already know how to program but do not have time to learn new, MPC-specific languages or circuit design.
Fields of science
Call for proposal
See other projects for this call