[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