Suppose you and I are millionaires,
and we’d like to find out who 
amongst the two of us is the richer person.
Naturally we are talking about
sensitive information over here
and I dont want to share my 
Net Asset Value with you
and neither do you want to share 
that information with me.
But we'd just like to compute 
who is the richer person.
It seems like this task is impossible.
However, cryptographers using
sophisticated mathematical techniques
have figured out that you can compute this.
You and I can execute a protocol
by sending bits of 
information back and forth
and at the end of the protocol 
we have a strong mathematical guarantee
that the only information that we learn 
is who is the richer person amongst us.
Is this the only function we can compute? 
No.
You can think of any function that 
you want to compute on private inputs,
and we can exchange information
and compute just the output 
of that function.
This problem is known as 
Secure Multi-Party Computation or MPC.
Given the extraordinary advancements
being made
in the fields of artificial intelligence 
and machine learning,
such a tool could be invaluable today.
Let us suppose Microsoft has a health 
diagnostic tool that is hosted on Azure.
And we have a patient who has
some sensitive medical information.
The patient using MPC can 
execute this health diagnostic tool
on their private information and learn 
whether they are at risk for some disease.
All this can be done 
without the patient ever revealing
anything about their private 
medical information to Microsoft.
In fact, MPC can be used 
in almost any scenario
where information must be exchanged, 
and computation must be performed
without trust in one another.
So how do you build such MPC protocols?
Easy MPC or EzPC is a project at MSR India
that aims to make it very easy 
for developers to write MPC protocols.
The developer need not know 
anything about cryptography.
All they need to do is to specify 
what computation they want to perform
and who will be providing 
inputs to the computation.
This is very much like writing code
in popular languages such as Python or C.
EzPC will take care of everything else.
It will take the code that you write
and compile it into a secure MPC protocol
that is both efficient and scalable.
All this will be done while 
providing formal correctness
and security guarantees 
to the code that is being written.
There are many challenges
to solve this problem.
First, we must construct secure 
and efficient cryptographic protocols.
Next, we must ensure that 
our compiler did not introduce
any vulnerabilities or bugs 
into the code that we wrote.
Finally, all of this must run
at the scale of ML applications.
These are some of the problems
that EzPC aims to tackle.
The project is a deeply collaborative
project between researchers working in
cryptography, programming languages, 
machine learning as well as security.
If you are interested in 
building MPC protocols,
try out EzPC today.
