https://docs.google.com/presentation/d/16OkRgx5-0no9Z9HCUyNzT0UibSyCHdZc8eZqo9v4Ex4/edit#slide=id.g26a6d057e02_0_195
https://www.youtube.com/watch?v=HNdbw4UH7s8
The point: ZK, MPC, FHE, TEE are complementary. You will eventually want TEE plus {ZK, MPC, FHE} in your dApp if you want a privacy preserving smart contract system .
The god protocol: smart contracts with privacy
“Imagine the ideal protocol. It would have the most trustworthy third party imaginable – a diety who is on everybody's side. All the parties would send their inputs to God. God would reliably determine the results and return the outputs. God being the ultimate in confessional discretion, no party would learn anything more about the other parties' inputs than they could learn from their own inputs and the output.”
Motivating example: batch auction
Comment: I am actually a bit confused about the slides on this one. The first slide says "Can we do this without revealing residual bids?” but then proceeds to talk about “To make a private auction, need to start with private assets”. Isn’t private asset necessary only when you want to keep the winning bid private as well? It is not needed if you just want to keep the residual bids private right?
ZKP is sufficient for transfers of digital assets, thus achieving private assets.
Shortcoming with running the system with just ZKP is that the manager/sequencer have to decrypt the private inputs to carry out the computation on the inputs.
Hawk as a concrete example
MPC
“They have developed protocols which create virtual machines between two or more parties. Multiparty secure computation allows any number of parties to share a computation, each learning only what can be inferred from their own inputs and the output of the computation. These virtual machines have the exciting property that each party's input is strongly confidential from the other parties. The program and the output are shared by the parties.” from “the God protocol”
Mental model
Limitations of using MPC to simulate a mutually trusted virtual computer
The privacy an fault tolerance tradeoff makes it undesirable to have actual users to run as parties running MPC.
FHE
TEE
Sirrah