0
$\begingroup$

One method to create a secure MPC protocol against malicious adversaries is to create a secure protocol against semi-honest adversaries and then add some zero-knowledge proofs to ensure that the latter protocol runs honestly.

What if we create an honest programming language in which every line of code can be proven to run correctly?

Can you tell me what the problem is with this approach?

Maybe it is inefficient or unattainable?

$\endgroup$

1 Answer 1

1
$\begingroup$

It's not clear what an honest programming language is exactly. For example, maybe the compiler will not output any malicious code in the executable, but that does not prevent an attacker from tweaking the executable. Maybe the executable always runs correctly, according to specification, but that requires trusted hardware or other techniques.

If you had an honest program, then you can send your private input to this honest program encrypted by a public key generated by the honest program. Then the honest program decrypts the private input and performs the computation and outputs the result. Because the program is honest, it will not reveal the secret key, private input or intermediate results. In summary, if it's possible to prove that the code is running correctly on a particular party, then you don't need MPC.

$\endgroup$
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.