 Hi, everyone. Today, I'll be giving the brief overview of this privacy-preserving smart contract industry. It's quite a hot thing now with companies like Oasis raising a lot of money. And I'll be break down the different approaches to achieving this. So the easiest example to understand why this is useful at all is let's think of a private election smart contract. We all want to vote, and the smart contract will sort of count everyone's votes and give like a winner. But as you can see in this example, let's say vote one and two come in at the same time, and vote three comes in at like 10 minutes later. The third vote can actually see what the other people have voted first. They can sort of decide, oh, it's 50-50 right now, so now if I vote, I can actually push the result in whichever favor I want, which is really bad. So what we want is actually everything hidden, all the inputs are hidden, the state of the smart contract is hidden, and we can only see the actual result. So there are sort of four ways of doing this. The first one is homomorphic encryption, which is sort of like a pipe dream, and it's really slow today, so it's not really feasible right now. But the three ones I'll cover today are trusted and execution environments, multi-party computation and zero-knowledge proofs. Zuko will be really happy. So the first one, TEEs are sort of this idea that on computer chips, there can actually be like a separate environment which is sort of hidden from the OS. And this sort of special, they call it an enclave. Imagine if this enclave had like a private key and a public key, and I encrypt the file with the enclave's public key, only the enclave can actually decrypt it. No one else in the entire world can see what it actually is. So that's how we can actually achieve this private computation. Sort of the most common thing, the most common enclave today is the Intel SGX chip, which is actually available in most Intel computers today, Intel chips today. But obviously there are some problems with like we having to trust Intel that they did not put like a backdoor or whatever. But sort of, you can think of how it will work is that we have a smart contract which actually coordinates users and off-chain trusted execution environment computers. And they don't see what you're actually computing, but they will help you do the result. That's like the easiest way and the most practical one today. The second one is quite interesting. It's a cryptographic method. It's not hardware at all. It's called MPC. Some of you guys might have heard of it. It sort of goes like this. Let's say there are three people, X, Y, Z, who want to compute the sum of their numbers or whatever. But each of them don't want to reveal what their actual number is. What person X can do is he can do like a lineage secret sharing scheme. He can break down his input like X into three pieces, maybe X1, X2, and X3. And he can send these to three different nodes. Y will do the same, Z will do the same. And in the end, one of these nodes, for example, that node there, he only gets X1, Y1, Z1. And he can calculate sum 1. So he doesn't actually see the full input of any of the XYZ, but he only gets like a piece of it. And in the end, all three of them can come together and actually produce the actual sum without anyone seeing what the actual inputs were. It's quite magical, actually. Addition is really easy. Multiplication is super hard for this MPC method. But there are a lot of cryptographic ways of doing it. And most of the cutting-edge work today is sort of trying to optimize doing multiplication. And actually, if you can do multiplication and addition, you can do any computation you want in the entire world. So that's how you can achieve sort of these Turing-complete private smart contracts. One of the big problems with that is like, for example, for the MPC thing, what if one guy actually doesn't do the correct protocol? He just does some random computation and the result is nonsense. He would have wasted everyone else's time. So that's some sort of civil attack kind of thing. So we also want to make sure that all these private computing nodes do the right thing. So how do we do that? We sort of force them to prove that they did the correct thing. They ran the correct computation. There are sort of two ways of doing this. One is the Trubit model. It's really easy to do today. It doesn't use much cryptography. It's more like economically guaranteeing that people do correct computations. But sort of, I think the more interesting one is sort of using like zero-knowledge proofs, stuff like that to make sure that nodes can actually run the computation, submit a proof to the smart contract that they actually ran the right one and there's mathematical guarantee that they did. So Snarks are quite interesting in this regard, but they need a trusted setup for each type of computation that you do. So it might be good for like one time, one contract which has, which is used many, many times like maybe like Zcash type thing. But if you want like a new trusted setup for each smart contract, that's like super unscalable. So there are a lot of cool new things that you guys have seen over the last few days like Snarks and there's this one new protocol called ZXI I think, which is by some Cornell guys, which also does this in a very interesting way. So sort of to put it all together, we can think of the original problem of hiding all the inputs, hiding the state of the smart contract and getting the output, using the three methods that I mentioned above. So we can make sure that the smart con, the people who are computing the actual output, the computing nodes, all have to run trusted execution environments. And if that is compromised, they also have to run an MPC protocol. So if you're able to pretend that you have like an enclave, but you actually don't, you still only have a piece of the data. It's really strong adversarial guarantees actually. And lastly, we can use some sort of zero knowledge proof so that these computing nodes can show the whole world that they ran the thing correctly. And we can also sort of use the smart contract to economically incentivize this whole process. And we can do private voting stuff and a lot of other cool applications. Thank you.