# Zcash + Ethereum = ❤

- Channel: [Devcon](https://streameth.org/devcon)
- Date: 2017-10-09
- Duration: 20:58
- Topics: blockchain, smart contracts, distributed ledger, zcash, z-cash, baby zoe, ethereum, devcon2, zooko wilcox, zksnarks
- Watch: https://streameth.org/watch/yt-PCW2EaBjVPs
- YouTube: https://www.youtube.com/watch?v=PCW2EaBjVPs

## Description

Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on IPFS and more.
https://archive.devcon.org/archive/watch/2/zcash-ethereum

This presentation focuses on how Zcash uses zero-knowledge proofs to add private transactions to a public blockchain, and how Zcash and Ethereum will grow together. Zcash is a new cryptocurrency that provides private transactions — the sender’s and receiver’s addresses are not publicly visible in the blockchain, nor is the amount transferred. Zcash posts that private information to the blockchain in encrypted form, and uses zero-knowledge proofs to cryptographically guarantee the validity of transactions without exposing the private information. This results in “Selective Transparency”. It’s not all-dark-all-the-time — it’s that each encrypted transaction in the blockchain can be revealed by its creator to selected third parties. Zcash is developed by a VC-funded, highly skilled development team and a widespread and active open source community. There are three paths forward for integrating Ethereum’s programmability with Zcash’s privacy. The Zcash team is actively contributing to all three paths. 1. Programmable Zcash — add Ethereum-style programmability to the Zcash blockchain 2. Private Ethereum — add Zcash-style privacy to the Ethereum blockchain 3. Project Alchemy — interoperation between the Ethereum and Zcash

Speaker(s): Zooko Wilcox
Skill level: Intermediate
Track: Privacy
Keywords: immutability, encryption, communication, selective, dicslosure, human rights, society, fungibility, data, security, bitcoin, zksnarks, zkproofs, validators, programmability, alchemy, btcrelay

Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum
Learn more about devcon: https://www.devcon.org/
Learn more about ethereum: https://ethereum.org/ 

Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. 
Devcon 2 was held in Shanghai, China on Sep 19 - 21, 2016.
Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/

## Transcript

[Music] next up we have Zuko Wilcox from zcash comeing up Zuko uh-oh I need the clicker 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 um I'm really happy to be here a little bit intimidated by all you folks uh 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 um I'll tell you what the science Discovery is in a few minutes and the cryptographers who uh 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 um efficient and useful and practical next it's a blockchain and there is currently a test net blockchain which you can totally go uh attack and please explain how you did so thanks um and then on October 28th it'll be a real main net like permanent blockchain with a store of value on it so it'll be a cryptocurrency uh the zcash cryptocurrency is uh intended to be useful for as like a store of value and a medium of exchange starting on October 28 and then um lastly it's a community because there's a whole bunch of people um spread out around the world who like me think that privacy is a really critical value in our society and that this is uh a critical moment and that we have the opportunity to change the course of history for the better and that's the that's the zc the zcash community and the main reason I came here to Devcon was to try to establish uh more contacts between the zcash community and the ethereum community okay so what is cool about blockchain technology is uh the a pinned only property which we call a mutability and the single source of Truth uh effect and you all appreciate this pretty well um 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 um and this conference is really The Cutting Edge of experimenting with what you can do given uh app pinned only in canonicity and then the encryption modern day encryption is like 40 or so years old uh 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 uh third party who has some position of Power with respect to those two people the two can use encryption in order to prevent the 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 uh 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 uh zcash is the first time we've had all four of these properties together combination of the blockchain and the encryption uh and that means so so that means it's 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 selector disclosure part because people often who who are uh 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 are 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 uh with zcash you can append data to the blockchain and that data is encrypted so that 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 the single source of Truth in the canonical blockchain so you can't you get 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 experim 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 um okay but hold on back up why would I do this uh why 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 choice es um 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 uh healthy and that it strengthens and protects societies and it makes them more resilient and more Humane uh 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 uh bullet points the individual value social value and fungibility uh but then when I got started I was pleasantly surprised to discover that businesses uh are really strongly demanding this kind of data security for their applications and this is true both of um 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 um at which I'm also speaking um and those kinds of applications where they want to use blockchain technology for uh one of those applications every single one of them requires improved privacy before they can use blockchain technology for that as it turns out uh and in addition people who want to use um open cryptocurrencies like Bitcoin and ethereum uh just to transact and to find more customers from more countries and stuff like that they also require privacy so that their uh contracts and transactions are not exposed to enemies and competitors and um one of our supporters uh Jeff garic 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 uh 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 uh and lastly fungibility fungibility is the property that two 100 W notes are worth exactly 100 each one is worth exactly 100 W 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 friction L and easy you have enough problems already uh 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 uh privacy in order to keep having fungibility in my opinion all right uh the way we do privacy like I already alluded uh to encryption so there's a lot of privacy techniques that have been developed for uh Bitcoin um I don't know if they've been applied to ethereum yet um I'd be interested to hear from you all about that uh and uh those ones are basically obfuscation in the sense of uh taking a transaction and hiding it in a bundle of other transactions uh 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 zcash is 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 the recipient address the amount any other metadata that is part of the transaction that all gets encrypted uh and then only the cipher text is posted to the blockchain okay that clearly has a very strong privacy consequence um but uh 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 uh discriminate how to filter out bogus transactions that include only legitimate transactions in the blockchain so that was the unsolved problem until about three years ago when the scientists that I mentioned uh that was the Breakthrough and it's uh called ZK snarks which uh vitalic mentioned in his talk today as a future a potential future Improvement to ethereum uh ZK snaric are really efficient zero knowledge proofs and a zero knowledge proof is a pretty mindboggling thing uh but the effect of it is you can make a cryptographic uh string a proof and the validators can inspect this and 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 uh like not double spending and preserving all the invariant uh and that transaction is what's inside this Cipher text so the validators can use this zero knowledge proof to persuade themselves cryptographically that there must be a valid transaction signed by the person who who owned the private key inside this encrypted transaction but they don't learn anything that's called ZK a short for zero knowledge because they don't learn anything else about the transaction they don't learn anything about the amount that 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 uh the first way so ethereum's reason for existence is programmability and zcash is reason for existence is privacy and so we want to we're wondering we we zcash have been because we love ethereum we've I've always loved ethereum since the moment I heard about it uh just slightly before the first Public Announcement of it um 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 um add privacy into ethereum and there's this this hack that we did called Baby Zoey 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 zcash went to a a hackfest and vitalic was there and helped them and some people from Cornell were helping them and uh what that does is add a ZK snark pre-compile into ethereum uh and then Implement kind of a 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 uh ZK snark pre-compile that should be added into ethereum proper and the second thing you can do is add programmability into zcash um we don't have any results to talk about yet but some of our scientists uh spend some of their spare time in the lab uh poking at uh different kinds of programmability or smart Contracting that would fit into the zcash engine and still preserve all the security properties of zcash uh and then the Third Way is get the zcash and ethereum blockchains to connect because whatever happen for the for the next few years at least both of these blockchains are going to be active um 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 um 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 uh BTC relay is an ethereum script uh that Joseph chow and others have written which makes basically a uh a Bitcoin light client inside ethereum and so uh our project is to change that to make a zcash light client inside of ethereum um and Jaden hes from consensus has helped with this already and uh sorry I keep hitting I'm just nervously clicking the button not trying to change my slides um so once you have that once you have a an ethereum script that can that can see transactions from the other blockchain then it's possible to write uh an ethereum contract that can uh do a trustless swap of zcash for ether right because the um the ethereum contract can say I will pay out 40 ether to the first zcash address which send or to the first address of your choice which sends z a certain amount like five zcash to a certain zcash address and then once it's posted that offer a zcash programmer user can fulfill that and then the ethereum contract will fulfill its side right so there was never an opportunity for either side to uh take off with the other side's tokens um and there's there's a a bunch of complicated like game theoretic problems that arise from that uh which Joseph Chow has thought a lot about I hope I mean he seems to have uh and hopefully we can just benefit from all of that research um and also I think the Raiden uh design also tries to solve the same problem so maybe we could use that or its Solutions instead but uh 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 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 uh 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 uh if we get this deployed the first thing is is a decentralized currency exchange right there so if all the currency exchanges have failed uh or if you live in a country where you can't use a currency exchange um 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 vulner extra vulnerability so I think that's awesome that's very highly resilient and um you know if that were to get bootstrapped and become widely used then it's uh one of those unshut downable kind of things things it's a a general purpose utility for everyone to rely on after that maybe I love the idea uh 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 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 um send and receive zcash basically because you can always you can always post a claim saying as an ethereum contract you can always post a an offer saying I will pay you if you send zcash there or um whatever and if um 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 right 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 um so it could potentially have privacy on the incoming transaction and not on the outgoing transaction uh but that's okay because privacy is a a social systemwide 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 um October 28 is our launch date for zcash and it's coming up fast like five weeks or something from now um so hopefully uh we'll make more progress on the uh project Alchemy and the other two um after that uh and in the meantime other people have been making some progress uh contri contributing to it so uh you should if you find this interesting at all you should just reach out um and you you should definitely find me after this talk because I'm going to be around at the conference the whole time and um I think that's all I have to say about that thanks
