 we have Zuko Wilcox from Zcash coming up Zuko. Is this it? I'll try clicking. Now I need to make that thing full screen and display it. Aha. Thanks. Okay. Thank you all for being here. Wow, what a crowd. I'm really happy to be here. I'm a little bit intimidated by all you folks. My name is Zuko and I'm the founder of the Zcash project. And the first half of this talk is about what Zcash is. And the second half is about ways to connect Zcash with Ethereum. Zcash, first of all, it's a science discovery that has been made over the past four or so years by a set of cryptographers. And I'll tell you what the science discovery is in a few minutes. And the cryptographers who are responsible for that are all part of the Zcash team now. And second of all, it's a technology that the Zcash team has been implementing and making efficient and useful and practical. Next it's a blockchain. And there is currently a testnet blockchain, which you can totally go attack and please explain how you did so. Thanks. And then on October 28, it'll be a real mainnet like permanent blockchain with a store of value on it. So it'll be a cryptocurrency. The Zcash cryptocurrency is intended to be useful for as like a store of value in a medium of exchange starting on October 28. And then lastly it's a community because there's a whole bunch of people spread out around the world who like me think that privacy is a really critical value in our society and this is a critical moment and that we have the opportunity to change the course of history for the better. And that's the Zcash community. And the main reason I came here to DevCon was to try to establish more contacts between the Zcash community and the Ethereum community. Okay, so what is cool about blockchain technology is the append only property which we call immutability and the single source of truth effect. And you all appreciate this pretty well. But this is really new. This was just recently discovered and we're only at the very beginnings of figuring out what you can do with those two properties. And this conference is really the cutting edge of experimenting with what you can do given append only and canonicity. And then the encryption, modern day encryption is like 40 or so years old and so it's better understood and pretty much everyone understands the privacy property that encryption gives you which is that if two people want to communicate and there's some third party who has some position of power with respect to those two people, the two can use encryption in order to prevent the other third person in the middle from spying on or changing the contents of what they're saying to each other. That's privacy. And slightly less widely appreciated is the selective disclosure property of encryption. And this is just a property of, this is just an outcome of mathematics is that if you're using encryption to control read access to your data, then that means there's some secret, some decryption key that is knowledge of that secret is necessary and sufficient to get read access to the data, right? But that implies that if you know that secret, you could choose to share that decryption key with someone else and if you did so that would give them the ability to see that data. So Zcash is the first time we've had all four of these properties together, combination of the blockchain and the encryption. And that means so that means in order to really understand what you might be able to do with Zcash, what kind of like products or programs you could build on top of it, you've got to appreciate the selective disclosure part because people often who are more familiar with the privacy consequence of encryption, they think of Zcash as being like the opposite of Bitcoin and Ethereum where Bitcoin and Ethereum were all transparent all the time. And so they think of Zcash as being like all opaque all the time. It's all dark all the time. But that's not true at all. With Zcash, you can append data to the blockchain and that data is encrypted. So by appending it to the blockchain, you're not revealing it to everyone in the world. But if you selectively reveal it to a certain person, that person gets to see that data in those single source of truth in the canonical blockchain. So you get the append only in canonicity properties. You can't change your story later and you can't tell one story to one person and a different story to a different person. But at the same time, you have control over who sees the data. So that's really interesting and we're even more at the beginnings of experimenting with what you could do by leveraging these properties. I really have no idea. I still haven't figured out what we're going to do with Bitcoin and Ethereum, much less with this. Okay, but hold on back up. Why would I do this? Why are we doing this? So I think that privacy is a fundamental human right. And I think that privacy is necessary for people to exercise their unique moral choices. And I also think that privacy is a social value. I think that the kind of privacy that we all were born into and the kind of privacy that all of our societies evolved around is healthy and that it strengthens and protects societies and it makes them more resilient and more humane. But I also have discovered that privacy is a business requirement. So I started, I decided to devote years of my life to this project because I really cared about the other three bullet points, the individual value, social value and fungibility. But then when I got started, I was pleasantly surprised to discover that businesses are really strongly demanding this kind of data security for their applications. And this is true both of industrial blockchain businesses like banking and trade finance and insurance and health care and Internet of Things and so on. There's a whole conference on this topic after this conference, which I'm also speaking. And those kinds of applications where they want to use blockchain technology for one of those applications, every single one of them requires improved privacy before they can use blockchain technology for that, as it turns out. And in addition, people who want to use open cryptocurrencies like Bitcoin and Ethereum just to transact and to find more customers from more countries and stuff like that, they also require privacy so that their contracts and transactions are not exposed to enemies and competitors. And one of our supporters, Jeff Garzik, says, if Samsung and Apple can see each other's transactions, then that prevents them from doing business. We need a neutral playing field where people can connect with their partners and customers at the same time as having privacy from competitors or criminals or hackers or whatever. So that turns out to be really important and widely demanded by businesses, which I've learned in the last two years when I started talking to them after I started this working on this. And lastly, fungibility. Fungibility is the property that two 100 one notes are worth exactly 100. Each one is worth exactly 100 one. It's not that some notes are worth a little more and some notes are worth a little less. And that's really important because you want commerce to be frictionless and easy. You have enough problems already, getting you know, getting business done. And so you don't want people hesitating and calculating about which particular note they're going to use for which purpose or anything like that. Fungibility is really important. And in the modern blockchain era, we need better privacy in order to keep having fungibility, in my opinion. All right. The way we do privacy, like I already alluded to encryption. So there's a lot of privacy techniques that have been developed for Bitcoin. I don't know if they've been applied to Ethereum yet. I'd be interested to hear from you all about that. And those ones are basically obfuscation in the sense of taking a transaction and hiding it in a bundle of other transactions. So that it's so there's a few different transactions that it could have been a part of or something like that. And what we're doing in Z cache is kind of a different approach, which is using encryption, which is a well understood modern technology. And we encrypt all of the parts of the transaction before posting it to the blockchain. So the sender address, recipient address, the amount, any other metadata that is part of the transaction, that all gets encrypted. And then only the ciphertext is posted to the blockchain. Okay, that clearly has a very strong privacy consequence. But there's also a major problem with it. Like why didn't Satoshi do that years ago with Bitcoin is that if you encrypt all the transactions, then how do the validators know how to discriminate, how to filter out bogus transactions and include only legitimate transactions in the blockchain. So that was the unsolved problem until about three years ago, when the scientists that I mentioned, that was the breakthrough. And it's called ZK Snarx, which Vitalik mentioned in his talk today about as a future potential future improvement to Ethereum. ZK Snarx are really efficient zero knowledge proofs. And a zero knowledge proof is a pretty mind boggling thing. But the effect of it is you can make a cryptographic string, a proof, and the validators can inspect this. And they can say to themselves, nobody could have come up with this cryptographic string, if they did not know a secret key which signed a transaction, which was valid according to all the rules of like not double spending and preserving all the invariance. And that transaction is what's inside this ciphertext. So the validators can use the zero knowledge proof to persuade themselves cryptographically that there must be a valid transaction signed by the person who owned the private key inside this encrypted transaction, but they don't learn anything that's called ZK is short for zero knowledge, because they don't learn anything else about the transaction, they don't learn anything about the amount of what kind of contract is involved or anything like that. So that's the science breakthrough that has just come out recently. So for the rest of this talk, different ways that ethereum and Zcash can connect with each other. The first way so ethereum's reason for existence is programmability. And Zcash's reason for existence is privacy. And so we want to we're wondering we Zcashers have been good because we love ethereum we've always loved ethereum since the moment I heard about it. Just slightly before the first public announcement of it. And so we've always been trying to figure out how do you how can you combine programmability and privacy. So the first way is add privacy into ethereum. And there's this this hack that we did called baby Zoe and it's called baby because it's just a baby step it's just a proof of concept. And Zoe is short for Zcash on ethereum. Some zcashers went to a hackfest and Vitalik was there and helped them and some people from Cornell were helping them. And what that does is add a zk snark pre compile into ethereum. And then implement kind of a minimal simplified version of zcash as an ethereum contract. So that's pretty awesome that that works. And that's hopefully the basis of the coming zk snark pre compile that should be added into ethereum proper. And the second thing you can do is add programmability into zcash. We don't have any results to talk about yet but some of our scientists spend some of their spare time in the lab poking at different kinds of programmability or smart contracting that would fit into the zcash engine and still preserve all the security properties of zcash. And then the third way is get the zcash and ethereum blockchains to connect because whatever happens for the for the next few years at least both of these blockchains are going to be active entities with a user base and developers around them. And I want the developer communities to be easily able to work together. That's what we call project alchemy is to make the zcash and ethereum blockchains inter interoperate so that there's a seamless ability to move between the two. And the way we want to do that is just by cloning BTC relay. BTC relay is an ethereum script that Joseph Chao and others have written which makes basically a Bitcoin light client inside ethereum. And so our project is to change that to make a zcash light client inside of ethereum. And Jaden Hess from consensus helped with this already. And sorry I keep hitting I'm just nervously clicking the button. I'm not trying to change my slides. So once you have that once you have an ethereum script that can that can see transactions from the other blockchain then it's possible to write an ethereum contract that can do a trustless swap of zcash for ether right because the the ethereum contract can say I will pay out 40 ether to the first zcash address which send to the first address of your choice which sends a certain amount like 5 zcash to a certain zcash address. And then once it's posted that offer a zcash program or user can fulfill that and then the ethereum contract will fulfill its side right. So there was never an opportunity for either side to take off with the other sides tokens. And there's there's a bunch of complicated like game theoretic problems that arise from that which Joseph Chao has thought a lot about I hope I mean he seems to have and hopefully we can just benefit from all of that research. And also I think the Raiden design also tries to solve the same problem so maybe we could use that or its solutions instead. But the end result of that is two things if you get if you get that if we get that working we get two things out of it. And this is the one I'm most excited about out of the three ways. These are all cool and we're contributing to all of them. But the one that I'm most excited about is number three because that's the one that can be deployed and people can start using it and building on it the soonest I think. So if we get this deployed the first thing is a decentralized currency exchange right there. So if all the currency exchanges have failed or if you live in a country where you can't use a currency exchange or something like that but you still have ethereum and zcash blockchains you can use this to swap ether for zcash with no third party and no extra vulnerability. So I think that's awesome that's very highly resilient and if that were to get bootstrapped and become widely used then it's one of those unshut downable kind of things. It's a general purpose utility for everyone to rely on after that. Maybe. I love the idea. But the other thing is if that gets going if you have those contracts on the ethereum blockchain then that means ethereum contracts gain a new power. This is the awesome thing about ethereum which I don't understand very well but the exciting thing about it is that every time someone adds a new contract to the ethereum blockchain this gives all the other contracts the possibility to do something new without without as much coordination and planning between the different coders. So if we succeed at getting this done then all the other ethereum contracts gain the ability to send and receive zcash basically because you can always you can always post a claim saying as an ethereum contract you can always post an offer saying I will pay you if you send zcash there or whatever. And if your ethereum contract receives zcash then if it were sent encrypted on the zcash blockchain no one can tell where it came from. But they can always see who has control of it now because ethereum contracts don't have any secrets. So everyone can see what an ethereum contract knows and what it decides. So if it decides to send zcash everyone can see to what address it intended to send it. So it could potentially have privacy on the incoming transaction and not on the outgoing transaction. But that's okay because privacy is a social system wide network property anyway it's not an atomic property of individual transactions so much. So basically it seems like it might make ethereum contracts able to send and receive more or less privately. Well we haven't been making much progress on this project in the last couple of months because October 28 is our launch date for zcash and it's coming up fast like five weeks or something from now. So hopefully we'll make more progress on the project alchemy and the other two after that. And in the meantime other people have been making some progress contributing to it. So you should if you find this interesting at all you should just reach out. And you should definitely find me after this talk because I'm going to be around at the conference the whole time. And I think that's all I have to say about that. Thanks.