Episode Transcript
Transcripts are displayed as originally observed. Some content, including advertisements may have changed.
Use Ctrl + F to search
0:01
Welcome to Zero Knowledge,
0:04
I'm your host Anna
0:07
Rose. In this podcast
0:09
we will be exploring
0:12
the latest in Zero
0:14
Knowledge Research and
0:17
the decentralized web, as
0:19
well as new paradigms
0:22
that promise to change
0:25
the way we interact
0:27
and transact online. founder of Rare
0:30
Skills. We talk about onboarding developers
0:32
into ZK. The approach they have
0:34
taken with their ZK book and
0:36
boot camp on ZK. How to
0:38
strip down a complicated topic into
0:40
its parts, what to start with,
0:42
what can be introduced later, the
0:45
choices of what to teach and
0:47
which tools to use, as well
0:49
as how to best teach people
0:51
effectively to teach them enough so
0:53
that they can teach themselves going forward.
0:55
Now before we kick off, I do want
0:58
to just let you know about the ZK
1:00
Summit. ZK Summit 13 is coming up. It's
1:02
happening on May 12th in Toronto. This is
1:04
the second time we bring the ZK
1:07
Summit to North America, the first being
1:09
all the way back in 2019 when
1:11
we did one in San Francisco. If
1:13
you've never been to a ZK Summit,
1:15
I definitely recommend checking it out. This
1:18
is the spot to find out about
1:20
the latest research, the newest applications, to
1:22
find out who are the most important
1:24
players in ZK today. It's also a
1:26
wonderful way to get to know through
1:29
the larger ZK community. The application
1:31
to attend is now open. If you'd like
1:33
to apply to speak, you can do so
1:35
in the same form. The speaker application
1:38
deadline is March 15th. Generally,
1:40
I recommend applying early. We
1:42
do expect this event to sell
1:44
out, and tickets are limited. Speaker
1:46
slots are even more limited. So do
1:48
get your application in early, and we'll
1:50
get in touch with you very shortly. Links
1:53
as always are in the show notes and
1:55
I hope to see you there. Now Tanya will
1:57
share a little bit about this week's
1:59
sponsor. You might already know
2:01
of the ZK Jobs Board, a
2:04
place where teams can share open
2:06
roles with our community. But when
2:08
it comes to key hires, finding
2:10
the right fit in our niche
2:12
space can be difficult. That's where
2:14
MissingLink comes in. They're a talent
2:16
team built for the Web3 era,
2:19
helping projects across the ecosystem connect
2:21
with the right candidates at the
2:23
right time. They've worked with names
2:25
you'll recognize, Ethereum Foundation, Matter Labs,
2:27
Lido, Mina, Web3 Foundation, and many
2:29
more. Filling critical roles that drive
2:31
these teams forward. Whether you're an
2:34
established project looking to fill a
2:36
senior leadership role, or a startup
2:38
searching for specialized talent to refine
2:40
your product market fit, MissingLink can
2:42
help. They've done it for some
2:44
of the biggest teams in the
2:47
space, helping them and now you
2:49
find the right people fast. For
2:51
more details, check out the show
2:53
notes and visit their website at
2:55
Missing -Link .io. So thanks again, MissingLink.
2:57
And now, here's our episode. Today,
3:03
I'm here with Jeffrey Scholes, founder of
3:05
Rare Skills. Welcome to the show. Thanks
3:07
for having me. Today, we are going
3:09
to be diving into ZK education, something
3:11
that is near and dear to my
3:13
own heart. As you may know, there's
3:15
a project called ZK Hack. It's a
3:17
sister project to this show, to the
3:19
Zero Knowledge podcast. And over at ZK
3:21
Hack, we have the ZK Whiteboard sessions.
3:23
We have study groups. And we do
3:25
sort of a form of informal education.
3:27
But there is no curriculum. It's not
3:29
really designed with end goals and site.
3:31
But this has made me a little
3:33
bit curious about generally ZK education. And
3:35
I think this is something we're going
3:37
to be talking about in this episode,
3:39
Rare Skills. Jeffrey, what you've been working
3:41
on is very much that. So I
3:43
really want to explore how you think
3:45
about ZK education. Now,
3:48
I hadn't been really aware of your group
3:50
until 2023, I
3:52
think, when there was
3:54
the ZK book that came
3:56
out. I am curious,
3:58
like, what were you doing
4:00
before that? what led you to even
4:02
start working on ZK education, were you educating before
4:04
that? So why do we start a little bit
4:06
with a backstory of rare skills? Where did you
4:09
guys get your start? So rare skills didn't start
4:11
off with ZK. We started off with solidity
4:13
because I had been already publishing some material
4:15
on it under my own personal name on
4:17
medium and I could created a eudomy course
4:19
on it, which I'll talk about later. But
4:21
when you're in Web 3, you know, ZK
4:23
comes up a lot, and there was a
4:25
lot of, I was personally curious about it,
4:28
there were a lot of people who wanted
4:30
to learn about it. In particular, I had
4:32
one guy, I had been talking about, hey,
4:34
we should have a ZK boot camp, we
4:36
should break this down for people. I should
4:38
share what I've learned on the topic. Luckily,
4:40
there was one very pushy person who
4:42
insisted on it, and we created a
4:44
ZK boot camp, which initially started off
4:47
with just three and that the lecture
4:49
notes became the ZK book. And it
4:51
was quite popular. So that's what led
4:53
to us continuing to develop the ZK
4:55
book and keep running ZK boot camps
4:57
and just keep investing in education in
4:59
that in general. Cool. Before the ZK book,
5:02
though, were you doing something else in
5:04
terms of like education? Was there like
5:06
another field? With rare skills, we were
5:08
only doing solidity related things before that.
5:10
So there wasn't as much material on
5:12
that back then. So that was kind
5:14
of the niche we were feeling we
5:16
were feeling in. ZK is a, besides people
5:18
wanting it, it's a very interesting
5:20
subject. And it definitely had and
5:22
still kind of has a very
5:24
strong mystique around it, so that
5:27
made it even more interesting.
5:29
Well, before we dive into just generally
5:31
this course and rare skills, we should
5:33
also learn a little bit about you,
5:35
like where are you coming from to
5:37
be even kind of teaching this stuff
5:39
in the first place. I got extremely
5:42
lucky, I would say, because my... In
5:44
graduate school I studied computational theory, which
5:46
is a lot closer to ZK than
5:48
you would think. So I mean I
5:51
did study cryptography and things like that.
5:53
But ZK is largely about proving that
5:55
you carried out a computation correctly, right?
5:57
But what does a computation even mean?
6:00
Right and what's what's the language of a computation?
6:02
So I think that's something that a lot of
6:04
people get confused about with decay because they look
6:06
at circum and think like, I'm trying to prove
6:08
I did addition and multiplication. Well, most real computations
6:11
are not addition and multiplication. So that's not actually
6:13
how circum is being used. You're building a set
6:15
of constraints that when they're satisfied model, model the
6:17
algorithm. So dealing with stuff around circuits and constraints
6:20
is already stuff I had. dove pretty deeply into
6:22
from an academic perspective. So a lot of the
6:24
stuff that goes into ZK, I had a lot
6:26
of the prerequisites for already. There was just a
6:29
huge amount of luck with that. I don't know
6:31
how else to say that. So that was, I
6:33
graduated in 2015. And I was doing blockchain on
6:35
and off since then. I was aware of, I
6:38
think Z-cash definitely caught my attention back in the
6:40
day, but I did not understand how it works.
6:42
So I worked for Yahoo full-time as a engineering
6:44
manager. That's actually where I would say a good
6:47
chunk of education came in just because I really
6:49
believed in upskilling my team. It's much easier to
6:51
upskill good people than it is to. It's risky
6:53
to hire people, right? You don't know if they
6:55
have a good motivation and you don't know if
6:58
they're talented or talented or not. If they're talented
7:00
or not. Engineers like it if they're talented or
7:02
not. Engineers like it if they're talented or not.
7:04
Engineers like it if they're talented or not. Engineers
7:07
like it if you up-engineers if you up-a if
7:09
you up-a if you up-a if you up-a if
7:11
you up-up-up-kate if you up-kate if you up-kate if
7:13
you up-kate if you up-k That also helps with
7:16
retention because it's hyper competitive to retain a team
7:18
and at the more high levels of tech. So
7:20
I wouldn't say that like launched an educational career
7:22
there, but I moved to, so I was living
7:25
in America at the time, I moved to Asia
7:27
in 2021 and couldn't, I was working for Yahoo
7:29
and I couldn't keep doing that as a manager
7:31
because your job is basically to sit in meetings.
7:34
And so I got started in blockchain, worked on
7:36
a project that didn't end up launching, but this
7:38
was in 2021 when the gas prices on Ethereum
7:40
were really horrible. Yeah. I spent a lot of
7:42
time trying to figure out gas optimization, which there
7:45
was no material on it back then. So I
7:47
wrote a lot of medium articles on it and
7:49
actually created a eutomy course which became a bestseller
7:51
within like two weeks. Wow. And that was kind
7:54
of a, I definitely recognized that it's not natural
7:56
to be that successful that quickly. I hope that
7:58
was a strong signal that education was probably and
8:00
maybe a natural strength that I should lean
8:03
into. Interesting. At the time 2021,
8:05
2022, in the Ethereum land, what
8:07
was there for education? What could
8:09
people already do? Like there was
8:11
the cryptography 101 from Dan Bonnet,
8:13
but that's not Ethereum focus. There
8:15
was the East Global events where
8:17
you could build things, and you
8:19
would have had workshops and stuff
8:21
like that. But yeah, what did
8:23
exist? Most of my learning
8:25
was either reading, was reading
8:27
the yellow paper and then
8:29
writing code that would kind of
8:32
test if I understood it
8:34
correctly. Yeah, there really wasn't
8:36
much education, at least not
8:39
beyond like, okay, here's how you,
8:41
you know, build a New York
8:43
20 contract or something like that.
8:46
Were there no solidity boot camps
8:48
and stuff like that? But the
8:50
introductory stuff, it wasn't. It's not
8:52
that hard to learn, right? But
8:54
if you're really trying to, at
8:56
least back then trying to get
8:58
into the intricacies of how the
9:01
EVM prices things, then there was
9:03
definitely no material for that. Got it.
9:05
Okay, so that's where you started to realize
9:07
this might be a path. Yeah. When did
9:09
you found Rare Skills? September 2022.
9:12
And what was the first thing you did
9:14
with it? Because of the materials I
9:16
had been publishing already. I kind of
9:18
already had a personal brand in an
9:20
audience. So it wasn't that hard to
9:22
get... classes going. This whole like
9:24
post post post like a brain teaser
9:26
that's solidity based or a CTF on
9:28
Twitter. I like to think that we
9:31
innovated that because I didn't see anyone
9:33
doing that before. And that because nobody
9:35
else was doing that that brought a
9:37
lot of attention to us and some
9:39
we didn't call them KOLs back then
9:41
but like engineering KOLs were thought leaders.
9:43
Yeah, thought leaders. We're engaging with the
9:46
problems and of course that boosted our
9:48
reach significantly. Okay. Because they want to
9:50
show hey look by audience I can
9:52
solve this problem that you may have
9:54
seen already and then that massively increased their
9:56
reach. So I guess that was a Twitter
9:59
marketing strategy that ended up working really
10:01
well. This is 2022. And it was
10:03
a solidity-based CTF kind of thing? Yeah,
10:05
all of them were. Okay. So of
10:07
course, you know, when you're running a
10:09
company, you always publish blogs because of
10:11
SEO and whatever. But that actually kind
10:14
of turned into the core. feature of
10:16
the company over time. In fact, I
10:18
think of us more of as a
10:20
content company than like a training company,
10:22
especially that we're now starting to do
10:24
partnerships with these other platforms and creating
10:26
content for them. So that's starting to
10:29
take up a big part of our
10:31
business relative to training. And we really
10:33
put a lot of thought into, okay,
10:35
are we writing something that's really providing
10:37
value for people because it's... Easy like
10:39
okay, I'm gonna look at what people
10:41
are googling for I'm gonna you know
10:44
match the headers and things like that
10:46
in order to target it Well initially
10:48
when we were writing about stuff that
10:50
obviously I started off that way And
10:52
we were writing about stuff that wasn't
10:54
covered and people really appreciate that because
10:56
people were googling for things that there
10:59
were announcers for So I think that's
11:01
one thing that kind of kicked us
11:03
off as a content company but over
11:05
time I would say we really put
11:07
a lot of effort into making sure
11:09
that the writing was and what goes
11:12
into making good writing, is ultimately people
11:14
get value from writing because you save
11:16
them time. That's. really fundamentally what it
11:18
boils down to because you don't need
11:20
education just read the source code yeah
11:22
yeah but if it's hard to read
11:24
that or if it's if it's because
11:27
like you look at ZK research or
11:29
whatever a lot of early ZK research
11:31
was all these papers academic papers which
11:33
didn't really handhold very well and they
11:35
didn't define things and so it's relying
11:37
on a lot of like assumed understanding
11:39
and someone trying to learn ZK from
11:42
scratch they were lacking those early works
11:44
almost to lead them to this, or
11:46
those defining just definitions. I mean, more
11:48
recently, Nico, who's sometimes co-host of this
11:50
show, created the ZK jargon decoder. And
11:52
this was just such a game changer
11:54
for people that like, it's just definitions
11:57
of words that are used all the
11:59
time. But if you are trying to
12:01
learn ZK from a, like a research paper,
12:03
that is not going to be defined for
12:05
you. It's going to be assumed that you
12:08
know it. Exactly. And I'm guessing
12:10
in, like, generally in blockchain, solidity,
12:12
a lot of this stuff is
12:14
happening in the same way. Yep. You
12:16
have to be very conscientious of, like, you
12:18
know, in games, there's like this skill tree
12:20
where you learn a skill and it unlocks
12:22
other skills, blah, blah, blah, blah, right? I
12:25
would say for good education. Like for example,
12:27
let's say you're talking about how to big
12:29
bread or something like that, people are not
12:31
really concerned about like, what's the air pressure
12:33
like in the local temperature and is the
12:35
bread rising enough? Did I even mix the
12:38
ratio correctly or something like that? So it's
12:40
really easy when you're deep in a subject
12:42
to kind of, you start to have an
12:44
intuitive knowledge about what the fundamentals are.
12:47
Yes. But the person you're talking to
12:49
doesn't share that context. Is it you really
12:51
have to be opinionated about what you
12:53
think the reader already knows? The other thing that I
12:55
see a lot of ZK papers do wrong is when
12:57
you're learning something you knew you need to learn it,
13:00
see it from a few angles, and you need
13:02
to be able to relate it to something that
13:04
you already know. For example, I see some ZK
13:06
education, we define a group as a set with
13:08
a binary operator with, you know, these four properties
13:10
identities, identities, inverse, blah, blah, blah, existence of an
13:13
inverse and so forth. That's the first time someone's
13:15
seeing that there's no way that they can make
13:17
any sense out of any sense out of sense
13:19
out of that. So the trouble is, once you
13:21
already know, like we say what a group is,
13:23
it's kind of hard to not know it. And
13:26
it becomes so obvious to you that you can't
13:28
explain it to another person. That's I
13:30
think one thing that can make writing
13:32
well a challenge is that you have
13:34
to translate your intuition into the English
13:37
language. I'm not like a brain scientist
13:39
or something like that, but I have
13:41
a strong suspicion that intuition is not
13:43
inherently verbal. So trying to make that
13:46
translation is... challenging and it takes time
13:48
and I don't think it can be
13:50
done in one shot. So it takes
13:52
a few iterations to receive. Okay, this
13:55
article actually reflects the knowledge that's encoded
13:57
in my brain and is adjacent to
13:59
what the... what I think the reader
14:01
already knows. I think it's
14:03
also, there's another. point maybe
14:05
here is that like the information that
14:08
you have it's also things are changing
14:10
really rapidly around you maybe with solidity
14:12
less so but with ZK it is
14:14
like since 2022 it's been changing quite
14:17
rapidly and so even if there is
14:19
an intuition on like how to do
14:21
this right or what the sort of
14:23
trajectory of research is you could be
14:26
surprised so you have to be sort
14:28
of nimble at the same time right
14:30
yes Actually, that's one thing that we
14:32
still only teach for our boot camp,
14:35
we only teach the Groth 16 algorithm.
14:37
Because what you describe is right, like
14:39
the stuff that's actually used is quite
14:41
complex and changing very fast. But
14:44
I definitely believe that what we
14:46
call advancements in any particular field
14:48
is really just a rearrangement of
14:50
the fundamentals. Because at the end
14:52
of the day, most ZK algorithms
14:55
are polynomials, elliptic curves if they're
14:57
snarks and some kind of commitment.
14:59
Ash based. Ash based. Yeah, if, right, maybe
15:01
it's hash, there could be hash
15:03
as if it's, um, stark. So
15:06
you're just kind of starting with
15:08
the same building blocks and shuffling
15:10
them around, right? So, okay, like
15:12
permutation argument is like, we can
15:14
use it for luckups really cool,
15:17
but like. If you boil it down
15:19
to its things, someone just did some
15:21
algebra to proof that a certain property
15:23
applies. And you are taking advantage of
15:25
the sports zipper lemma, which kind of
15:28
appears everywhere. So if we. just really
15:30
focus on what those atoms are that
15:32
are being used everywhere. Because the way
15:35
I think to teach a complicated subject
15:37
is to really break down what are
15:39
the requisite skills that are involved in
15:41
that and then bring it all together
15:44
at the end. So that's why our
15:46
book is structured. We spend an entire
15:48
chapter is talking about elliptic curves because
15:50
if you're seeing it for the first
15:52
time you need to spend the entire
15:55
article seeing it from a few angles
15:57
looking at a lot of examples at
15:59
the end. To understand like a polynomial
16:01
commitment scheme, you need to understand polynomials
16:03
and you need to understand elliptic curves
16:05
if you're doing something snark-based. So like
16:08
if someone's seeing the Swartz-Zippel-Lema for the
16:10
first time and elliptic curves point arithmetic
16:12
for the first time, and that's just
16:14
way too overwhelming unless this person has
16:16
a lot of background in math. So
16:18
I think it's really key to really
16:21
drill down the... What are the components
16:23
of the knowledge? If something is too
16:25
difficult, that means you need to further
16:27
break it into components. And I think
16:29
that can be done way more times than
16:32
a lot of educators realize, right? Interesting. Yeah.
16:34
So like with groups, OK, groups depend on
16:36
sets. binary operators just a subset of the
16:38
Cartesian product, right? So you can keep like
16:40
merges, you know, you can keep recursively breaking
16:43
things apart. And you should try to do
16:45
that. You should err on the side of
16:47
doing that more than not, I would say. Let's
16:49
talk about how the ZK book came
16:51
together. You released it in 2023, but
16:54
I'm assuming this took you a lot
16:56
longer than that. In 2022, so you've
16:58
already sort of given us
17:00
a bit of a hint about
17:03
the book. So you've chosen, you
17:05
chose at that time to focus
17:07
on Gros 16, which I think
17:09
was the right choice. Still, I
17:11
believe it's the most used proving
17:14
system. So it has quite a
17:16
few variations. There's different implementations. for
17:18
Gros 16. So engineers using one
17:20
may, as far as I understand,
17:22
like it's not a totally standardized
17:24
proving system, but it's the most
17:26
common. And I guess depending on
17:29
what level you're using, like you're
17:31
playing with it, it might be
17:33
a good starting point. So you
17:35
chose in 2022 to do Gros
17:37
16, but tell me like, where
17:39
do you start teaching something like Gros
17:41
16? And actually I am curious about
17:43
the CK. At what level are you
17:45
teaching it? Is it for an engineer
17:47
or is it for a cryptographer? Is
17:49
it like theoretical or is it like
17:51
hands-on? So in terms of picking Groth 16,
17:54
well one thing I learned from was tornado cash
17:56
was kind of a code base that I would
17:58
wrestle with until I really understand. And there
18:00
was a lot of reference implementation, so
18:02
that helps a lot. But the target
18:04
audience is a senior engineer who has
18:06
no experience with cryptography. So the North
18:08
Star is very clear. We want to
18:10
code Groth 16 from scratch and understand
18:12
what we're doing. In terms of how
18:14
to break it down, let's say we're
18:16
teaching people like how a hash function
18:18
works. Well, a hash function is really
18:20
just a bunch of x-hores, bit shifts,
18:22
maybe a permutation somewhere or something like
18:24
that. It's really just a matter of
18:26
what are all of the unfamiliar components
18:29
that people are dealing with in Brock
18:31
Groth 16 and then break that down,
18:33
you know, breaking it down to the
18:35
atomics. Okay, so there's pairings, there's elliptic
18:37
curves, there's QAPs and R1CS. Well, the
18:39
paper doesn't talk about rank one constraint
18:41
systems, but a lot of people do,
18:43
so we talk about that. Then there's
18:45
a trusted setup. Oh yeah. Then there's
18:47
the verification code, which if you look
18:49
at it and you know, tornado cache
18:51
or whatever CERCOM spits out, it's somewhat
18:53
straightforward, but you want to understand everything
18:55
that's going on to there, which is
18:57
largely calling the pre-compiles on Ethereum for
18:59
elliptic curve addition multiplication and pairing. So
19:01
those are things you really want to
19:03
understand, how do you interface with those
19:05
pre-compiles? And why are we even using
19:07
them in the first place? So originally...
19:09
Because the ZK book has actually gone
19:11
through a second edition. So in the
19:13
first edition, it was, okay, we start.
19:15
a rank-one constraint system, rank-one constraint system
19:17
becomes a QAP, and then the QAP,
19:19
you can be run on a trusted
19:21
setup, because the QAP is just one
19:23
big polynomial equation at the end. Can
19:25
you say again what QAP is? Oh,
19:27
sorry, quadratic arithmeticic program. Okay. Thank you.
19:29
I'm always used to just, see, this
19:31
is the thing I'm talking about. It's
19:34
in your head. I work with this,
19:36
and I actually did. I didn't recognize.
19:38
Is that accurate? Yeah, totally. And then
19:40
how to run that on an elliptic
19:42
curve? It evaluated to some elliptic curve
19:44
points. Now, a quadratic arithmetic program boils
19:46
down to three terms at the answer
19:48
you're left with three elliptic curve points.
19:50
If you pair the first two, you
19:52
should end up. with the third one
19:54
when you pair it with the generator
19:56
of the other group for that one.
19:58
OK. But if someone just gives you
20:00
three elliptic curve points and say, hey,
20:02
look, one pairs to the other, that's
20:04
not good enough. You could have just
20:06
given me any three points, whatever. So
20:08
we use that as a motivation for
20:10
why does Groth 16 have these other
20:12
terms like alpha, beta, gamma, and delta.
20:14
And now to understand elliptic curves, because
20:16
we actually taught elliptic curve cryptography at
20:18
least a little bit in our solidity
20:20
boot camp, and something I observed, this
20:22
is something I would tell everybody going
20:24
into it. Nobody ever learns elliptic curves
20:26
after a week. It never happens. And
20:28
I've actually have hard evidence to back
20:30
that up. So I was thinking, so
20:32
if someone's reading this from a book
20:34
perspective, they're not going to learn it
20:36
after one chapter. I had to really
20:38
think about what's the right way to
20:41
package elliptic curves so that they're understandable
20:43
because fundamentally they're actually not that complex.
20:45
It's just the simple algebra equation that
20:47
you can draw a line through and
20:49
then solve for intersex. But trying to
20:51
do algebra in your head like that
20:53
is a nightmare. And that's when I
20:55
realized presenting this as a group is
20:57
a lot simpler because even though groups
20:59
are, most engineers have not done group
21:01
theory before. But it lets you treat
21:03
these things kind of like a polymorphism
21:05
in object-oriented programming or like an interface
21:07
where you don't have to know what's
21:09
going on under the hood. You just
21:11
say, it's going to implement these functions
21:13
which have these properties and you don't
21:15
have to worry about what's going on
21:17
under the hood. But in order to
21:19
understand that interface you want to understand
21:21
what a group is. And then since
21:23
most people don't have an encountered groups
21:25
before, they need to relate it to
21:27
sets, which I think most engineers at
21:29
least have a vague idea of what
21:31
a set is. This is going from
21:33
sets to groups, and then from groups
21:35
to elliptic curves was kind of, here
21:37
is how I can keep breaking it
21:39
down until I'm close to what I
21:41
think the engineer knows already. And then
21:43
that happens over the course of four
21:46
or five chapters or so, which, if
21:48
you try to teach it in one
21:50
chapter, it's just not going to work.
21:52
And I've gone back and forth with
21:54
people where I have unlimited information bandwidth
21:56
and I can't do it. in one
21:58
setting. So there's trying to do it
22:00
in one chapter is just silly. So
22:02
that is how it evolved that way.
22:04
And I'm honestly, this is something I'm
22:06
really proud of because there's a lot
22:08
of CK tutorials that have come out
22:10
since we published that were, he sets
22:12
groups and like, no, we, we, uh...
22:14
You pioneered that. That was our idea
22:16
to break it down that way. And
22:18
then with pairings, pairings are very scary,
22:20
right? So the decision that I've made
22:22
there is we're not going to teach
22:24
how pairings work under the hood because
22:26
even Vitalica has a hard time understanding
22:28
them. But if we can treat them
22:30
like a black box, like engineers use
22:33
hash functions without knowing how they work
22:35
no problem. So how can I try
22:37
to present it in that manner? Not
22:40
knowing how a hash function works doesn't
22:42
mean you don't know its properties, you
22:44
don't know its properties, right? built up
22:46
a lot of intuition around groups. It's
22:49
a case not really a group, but
22:51
can we relate it to that in
22:53
a way where it doesn't feel like
22:56
such a huge leap to people? And
22:58
that is, I would say a
23:00
general teaching philosophy, sorry I'm
23:02
going on for a long
23:04
time, I'll wrap this up
23:07
here, is if something's hard
23:09
to explain, let's say you're
23:11
trying to teach topic why that
23:13
they might. be able to like rock
23:15
the concept. Yeah. If someone already understands
23:17
homomorphic encryption, for example, then elliptic
23:20
curves don't seem as strange because
23:22
they do have some of the
23:25
properties there. So if you're able
23:27
to relate to that, then people can
23:29
grasp it more quickly. So just really
23:31
try to avoid excessively massive leaps and
23:33
just bring people incrementally closer to what
23:35
they're looking for, which is why the
23:37
CK book is somewhat long. It's about...
23:39
When we first published it was about
23:41
50,000 or 60,000 words or something like
23:43
that. But you could describe graph 16
23:46
on one page. It's not at the
23:48
end of the day a complex algorithm.
23:50
The thing it just relies on things
23:52
that are unfamiliar to most people. Most
23:54
people don't know pairings in the
23:56
elliptic curves. And the notion of
23:58
a quadratic arithmetic program. Why are you
24:00
even using that? Even though it can
24:03
be expressed mathematically and a high schooler
24:05
could understand, but why? So explaining those
24:07
wise. So that it's not just, trust
24:09
me bro, write the code. That's not
24:11
what people are really, that's not what
24:13
people are really wanting, right? That whole
24:15
thought process is how the ZK book
24:18
evolved into its current form. The second
24:20
edition was, I realized there was a
24:22
lot of stuff around polynomials that was
24:24
not broken down enough. So I felt,
24:26
okay, short simple limits, so easy to
24:28
understand. I can just leave that
24:30
as like a mini section inside
24:33
of the discussion about quadiotic arithmeticic
24:35
programs. Not getting the quadratic arithmetic
24:37
program as quickly as I would
24:40
think they would. Okay, you evolved it.
24:42
Yeah, okay, we need to spend more
24:44
time thinking about how can we
24:46
represent vectors as polynomials because that's
24:48
basically what a quadratic arithmetic program
24:50
is doing. We can't just say,
24:52
oh, the transformation step is you
24:54
do Lagrange interpolation on the columns.
24:57
Let's just spend some time thinking
24:59
about what does it mean to
25:01
encode data as a polynomial even
25:03
in the first place? And then
25:05
what properties can you rely on?
25:07
Can you add them together and
25:09
then some property is retained? of
25:11
helping people get their hands dirty with
25:13
something before they moved on with it. I
25:15
mean, one thing that we do, for example,
25:18
when we're teaching the ZK boot camp is
25:20
when people are introduced to elliptic curves, I
25:22
have them implement the ECDSA algorithm, which is
25:24
very little to do with ZK. But why?
25:26
Because people need time to wrestle with elliptic
25:28
curves before they're comfortable with it, and if
25:30
you're stuck on ECDSA, there's a ton of
25:32
resources online that will help you, and nowadays,
25:34
chat-chatchat-GPT can probably one-GPT can probably one shot
25:36
it. So that now you're getting an environment
25:39
where you're able to get feedback because if
25:41
you jump right into using elliptic curves the
25:43
way Groth 16 does, you're not going
25:45
to find many resources and when you're
25:47
getting stuck, you're going to be very
25:49
frustrated. But if you've already built up
25:51
some fluency with elliptic curves, then you
25:53
go to the next stage of the
25:55
Groth 16 algorithm, it's not so bad. You're
25:57
not dealing with two things at the same time.
26:00
learned a lot from the actual boot camp
26:02
and then incorporated it into version two, this
26:04
sounds a lot like something that's been happening
26:06
since 2021 over on the ZKHAC Discord. And
26:09
to a listener, like, I'm going to mention
26:11
this a lot, ZKHAC, and this sort of
26:13
the educational portal that I would say, like,
26:15
we have, very different from rare skills. I
26:18
would say, way less structured. It's much more
26:20
kind of makeshift. We do study groups. We
26:22
do study groups. We kind of like we'll
26:25
have a little six-week. study group on
26:27
a paper and then wrap it up
26:29
and then do a different one. But
26:31
in that group there's Justin Thaler who's
26:33
been doing a study group and those
26:35
are long. He does like multiple months
26:38
study groups where he goes through his
26:40
book and he goes through it like
26:42
chapter by chapter with a group. Every
26:44
time he does it he's learning and
26:46
he's been on the show to talk
26:48
about it He's actually learned what's not
26:50
working in some explanation that he's put
26:52
in here or what's changed and so
26:54
he's updating it and this sounds somewhat
26:56
similar like that feedback to a book
26:58
I think in a space like this
27:00
is so important I think in the
27:02
past you'd have textbooks created and they'd sort
27:04
of sit there and they'd dominate a way
27:07
of thinking for a long time But it's
27:09
not a luxury that we have today like
27:11
things definitely need to evolve Yeah, no having that
27:13
feedback mechanism in there is nice because the
27:15
we launched the boot camp slightly before the
27:18
book about two months before So that I
27:20
mean the book the book I had been
27:22
working on for a long time because those
27:25
were my notes for the lecture initially
27:27
But yeah, it definitely informed that you
27:29
should not talk about topics in this
27:31
order or this explanation is just not
27:33
going to work for someone new to
27:36
the topic and I think Even something
27:38
I learned is I had to put a
27:40
lot of effort into learning growth 16, right?
27:42
And the temptation can be is like, I
27:44
want to share with you everything that I
27:46
learned. But in reality, the value is I
27:49
need to trim it off. Like for
27:51
example, a most salient example is, you
27:53
know, abstract algebra, we have groups, rings
27:55
and fields, right? So naturally, okay, I'll
27:57
talk about those things, but then I really...
28:00
after a few iterations on the boot camp, you
28:02
don't really need to know what a ring is
28:04
in order to really understand how
28:06
Roth 16 works. That's just giving people
28:08
another hurdle to go over, which is
28:10
not 100% necessary. Now should they learn
28:12
that eventually, of course, but... What we're
28:15
aiming for is what's the straightest line
28:17
to get from not knowing it to
28:19
being able to implement it and have
28:21
a really good understanding of what you're
28:23
doing. So there was a pretty significant
28:25
subtractive element that came in after having
28:27
learned that. And even when I'm editing
28:30
other people's research for our publications on
28:32
rare skills, it's just a very common
28:34
temptation. I put so much effort into
28:36
understanding this. I just want to tell you
28:38
about it, but it turns out you don't
28:40
actually need it. So which is frustrating. But
28:42
I think that's a, if you want to
28:45
produce good writing, it's just something that you
28:47
have to accept. I feel like there's a
28:49
parallel here to like gaming and how
28:51
really good games on board you well.
28:53
And like one of the things, and
28:55
it depends a little bit on the
28:57
type of learner, I know there's people
28:59
who really need to learn everything before
29:01
they do anything that exists. Like they
29:03
really want to detail, like they want
29:05
to know everything. I personally don't work
29:07
that way. I have a tendency to
29:09
like yellow into something and then figure
29:11
it out after. And games that are
29:13
built that way, where it's like you
29:15
can already very early on do something.
29:17
It's so much more fun. And like obviously
29:20
over time you can up your skills
29:22
and you can like learn a lot
29:24
more about this world or the whatever
29:26
the game infrastructure is. But at the
29:28
beginning being able to do something is
29:30
really key. And I think that's what
29:32
you're talking about here, which If you
29:34
wanted to build secure ZK systems in
29:36
the real world, you do need. But
29:38
if you are just trying to do
29:40
something, you don't. Yep. No, I think
29:42
that's very important. People need
29:44
feedback right away about like, they need
29:46
to see results to keep their motivation
29:48
up. I would say 98% of the
29:50
engineers that I've dealt with to match
29:53
the description of, I don't want to
29:55
learn everything before I get started. I
29:57
would say 98% of people will lose
29:59
motivation. if there's too much theory and
30:01
that before anything happens. So I do
30:03
try to in the ZK boot camp
30:06
and even in the book too. Hey,
30:08
here's a dummy ZK proof that we
30:10
can make as early as possible. Now,
30:12
it has very serious limitations. It's not
30:14
succinct. There's some edge cases where you
30:16
can leak information, but technically it's a
30:18
ZK proof. Oh, okay. That is so
30:20
important. And then when people, people are
30:23
more motivated to learn the theory after
30:25
they've. seen. Oh, okay, I can see.
30:27
I kind of already have a framework
30:29
for where to put things in my
30:31
brain. What tools are you using with
30:33
these engineers? So you have the book
30:35
itself, but like, is there a DSL
30:37
that you've chosen? You sort of mentioned
30:39
CERCOM. Like, is that what you're building
30:42
this stuff in? The ZK boot camp,
30:44
talking about the back end. So assuming
30:46
you already have CERCOM, how do you
30:48
how do you prove that? So that
30:50
compiles to a rank one constraint one
30:52
constraint system, right? Now how do you
30:54
create a proof for that? So this
30:56
is lower on the stack then. You're
30:59
not using CERCOM. You're like working behind
31:01
CERCOM. Would you use anything like Arkworks
31:03
or also not? Well, okay. So we're
31:05
basically implementing Arkworks in Python, essentially. That's
31:07
what the... Not obviously not a fully
31:09
production version, but the whole thing like,
31:11
okay, you're given a rank one constraint
31:13
system now you need to run the
31:15
polynomial interpretation and evaluate the polynomials and
31:18
elliptic curve points to the commitment so
31:20
forth and so on. That's the stuff
31:22
that we teach in the class and
31:24
that's all done in Python. Rust is
31:26
way more important to learn if you
31:28
want to work in ZK, but most
31:30
people are not that fluent in Rust,
31:32
so if people are fighting the Rust
31:35
compiler and learning a new concept at
31:37
the same time, that's just not going
31:39
to work. We get so much of
31:41
this with ZK Hack does the CTF
31:43
around bugs in ZK protocols and we've
31:45
heard especially in the last edition that
31:47
more people were annoyed by having to
31:49
use rust than anything else. Like the
31:51
winners even, they did well, but they
31:54
were like, rust is my problem. Yeah,
31:56
rust is definitely, it needs to be
31:58
studied on it. own, not in parallel
32:00
with something else. This is something I've
32:02
gotten feedback on a lot, because when
32:04
people try to learn CK oftentimes, they,
32:06
oh, I'm going to try to learn
32:08
how to program in SRCOM, which is
32:11
a reasonable thing to do if you
32:13
were just coming in from the outside,
32:15
but you don't really understand that you're
32:17
writing constraints, you're not writing imperative code,
32:19
and people try to force their... imperative
32:21
code mindset onto circumn, it just ends
32:23
up being weird. And they don't understand.
32:25
Okay, why can I not have two
32:28
multiplications in one constraint? That seems like
32:30
the most random requirement ever. And, but
32:32
if you understand that, okay, well, behind
32:34
the scenes, there's a rank one constraint
32:36
system which only has one multiplication per
32:38
constraint, but why is that? Well, because
32:41
with a pairing, you can only do
32:43
one quote-unquote multiplication. So that just helps
32:45
things make a lot more sense. And
32:48
it initially seems random. Why is everything
32:50
happening in a finite field? Or modular
32:52
arithmetic. That just seems like we can
32:55
overflow and have a security bug. Why
32:57
are we doing that? Because elliptic curves
32:59
use finite fields. That's why. Or they
33:02
form an additive group, rather, I should
33:04
say. And I think we're kind of
33:06
in the time right now where if
33:08
you wanted to use solidity in like
33:10
2016, you... kind of had to know
33:12
how the EVM works. The abstraction was
33:14
extremely leaky. Right, and it's better than
33:17
programming in assembly, but not a whole
33:19
lot is hidden from you and the
33:21
abstractions are not very good. I would
33:23
say right now with, it's definitely made
33:25
a huge amount of improvements recently, but
33:27
if you really want to understand ZK
33:29
and write with ZK and write with
33:31
ZK DS cells, then you need to
33:33
know what's going on behind the scenes.
33:35
Interesting. So you would kind of compare
33:37
the ZK DSels today to Solidity 2016,
33:39
I mean, there's lots of people who
33:41
don't actually pay that much attention to
33:44
how the EVM to how the EVM like
33:46
solidity plus all of the
33:48
tooling that's been built up
33:50
over, what is it, nine years? Nine
33:52
years? Wow, yeah. But then, yeah, the
33:54
ZK, I mean, ZK, DSLs generally as
33:57
a topic really only became a thing
33:59
in 20. 2021, 2022. I do have
34:01
a question about that, though, because you're
34:03
saying sort of like you're rebuilding arc
34:05
works in Python to interface potentially with
34:07
CERCOM. There are these other DSLs that
34:09
also kind of live at different parts
34:11
in the stack. Like have you explored
34:13
for any of your boot camps, any
34:15
other languages? And I realize like you're
34:17
still going to stick to Python and
34:19
like recreating this thing, but yeah, like,
34:21
or do you interface with any other
34:24
languages? No, I mean, well, some people
34:26
use solidity just to work with the
34:28
pre-com piles, right? Because if you want
34:30
to, most people who are taking the
34:32
ZK boot camp come from a smart
34:34
contract background. So, and it's helpful to
34:36
reference real things. And my favorite thing
34:38
to reference is the tornado cash verifier,
34:40
with at least not recognizing how to
34:42
interface with the pre-com piles. So, we
34:44
will launch a CERCOM boot camp in
34:46
March, so coming up soon. So that's
34:48
where we teach the back end as
34:50
an abstraction. And how do you actually
34:52
implement the circuits as part of an
34:54
application? So how do you go from
34:56
only having addition and multiplication to verifying
34:58
a ZKVM or a traditional cryptographic hash?
35:00
That's the end goal. So that's how
35:02
I like to design the courses. What's
35:04
the outcome? The very tangible outcome and
35:07
what's the straightest path to get there.
35:09
So for the ZK boot camp that
35:11
we have, the tangible outcome is I
35:13
want to implement Groth 16 from scratch.
35:15
Now what's the straightest the straightest line
35:17
to get there. without skipping things and
35:19
making sure people have the prerequisites that
35:21
we talked about earlier. So for CERCom,
35:23
it's how can I create a ZKVM
35:25
from scratch and also a cryptographic hash
35:27
function? Not the CK-friendly ones. I mean,
35:29
like the ones that seem very mysterious
35:31
for CK proofs. And what background knowledge
35:33
needs to go into that in order
35:35
to actually code that up and understand
35:37
what you're doing. And then take the
35:39
most direct path there. So in that
35:41
case, I don't, being comprehensive is not
35:43
a goal of ours. It's very much
35:45
like, for someone who's new, how do
35:48
you keep them motivated and get them
35:50
the most direct pack there? And then
35:52
they can, there's a lot of ZK
35:54
education at the relatively high level. you're
35:56
good enough to read the papers, then
35:58
like, you don't need us anymore, right?
36:00
So we don't need to cover everything.
36:02
So, but we need to get you
36:04
to that point first. So, I mean,
36:06
I feel comfortable and a lot of
36:08
other people who graduate from our course
36:10
feel comfortable just picking up a paper
36:12
and reading it. So, that's really why
36:14
we want to get to people. We don't
36:16
want to at the end of the day be
36:18
a substitute for the papers. Right, because it's too
36:21
much work to just translate everything. But people get
36:23
to that point by, I know extremely well how
36:25
this particular algorithm works. Now it's easy for me
36:27
to learn adjacent things. Like if you already know
36:29
Python, it's easy to learn Ruby. But learning Python
36:31
for the first time is quite hard. So we
36:33
did that for CERCOM. People ask me like, man,
36:35
that's an outdated language. Why are you doing that?
36:37
Well, I was about to, sure. I was about
36:39
to ask you, why not nor? Right.
36:42
Because I think it provides the,
36:44
are you familiar with Huff by
36:46
any chance? I only know it
36:48
because Zach from Aztec talks about
36:51
it. Okay. But I don't, I
36:53
don't actually know what it
36:55
is. Sure. Basically, it's the
36:57
ZK EVM. So the op
36:59
codes in, in the EVM.
37:01
It's almost one, it's an
37:03
assembly language that's almost one
37:05
to one. So if you
37:07
wanted to write raw op codes
37:09
in solidity, you'd write 0X52,
37:11
you know, 0X60, blah, blah,
37:13
blah, blah. So they turn
37:15
those into the mnemonics,
37:18
so push M store, blah, blah,
37:20
blah. But then there's some nice
37:22
sugar coating on top of it,
37:25
like if you want to do
37:27
a jump, right, undisputably the most
37:29
effective way to teach the EVM
37:31
because people get their hands dirty with
37:34
it and the very roughest edges are
37:36
sharp are smoothed off like having to
37:38
memorize a jump destination or something like
37:40
that but you still deal with what's
37:42
going on with the stack and what's
37:44
going on in memory you still have
37:46
to tangle directly with that. So I
37:49
would say CERCOM has that advantage
37:51
where you're dealing really closely with
37:53
what the constraints are but The very
37:55
roughest edges are taken off where you're
37:57
not literally writing a rank-win-constraint system by
37:59
hand. So it takes off just
38:01
the right amount of roughness, but you're
38:04
still tangling with the core thing. Plus,
38:06
there's a huge ecosystem behind it. That's
38:08
true. And lots of library, like it's
38:10
been around the longest. Yeah. So you
38:13
can look at other established code bases
38:15
and figure out what's going on, which
38:17
is not the case for pretty much
38:19
every other DSL. Like I almost, I
38:22
was considering, I don't know how to
38:24
say it, Gunark from consensus? Gunark? Gunark?
38:26
Gunark? Yeah. I think that's a really
38:28
nicely designed. It's like Sircom, but better.
38:31
But better. I mean, sure, but better.
38:33
I'm better. Lanier, I don't know what
38:35
to reference for that. If
39:14
you pick a random CERCOM library from
39:16
get hub, I'm pretty sure it's going
39:18
to work with the same CERCOM compiler
39:20
you install from the CERCOM website. Okay.
39:22
So, I mean, there is an older
39:24
version of CERCOM, but I really actually
39:26
have a hard time finding those code
39:28
bases anymore. So most of it is
39:30
up to date, right, in terms of
39:32
it works. And there's a lot more
39:34
institutional knowledge around how to audit it.
39:36
Which is not saying much, there's not
39:38
many easy chaoticters, but still way better
39:40
than the other ones. Circum has some
39:42
things that I don't like and I
39:44
think you talked to anyone who's developed
39:47
with it They'll tell you they don't
39:49
like it But once you can get
39:51
over those things then it's you're really
39:53
dealing directly with constraints and so with
39:55
a Like how do you even design
39:57
a stateful computation with constraints? That's something
39:59
that really trips people up. Like I
40:01
can understand, I'm trying to prove I
40:03
did a multiplication correctly, right, you know,
40:05
that just maps directly the multiplication. But
40:07
how do I prove that I hashed
40:09
something correctly? Because that's using a
40:11
bunch of very nonlinear operations. Now we need
40:13
to again break it down. Well, how do
40:15
you even represent a staple computation in the
40:17
first place? Let's say a factorial with an
40:20
unknown number of steps in it. So, you
40:22
know, one times two times three times four,
40:24
blah, blah, blah, blah, blah, blah, blah, blah,
40:26
blah. But it's going to stop. Well, the
40:28
breakdown is you need to have an upper
40:30
bound on the number of times you would
40:32
compute the factorial. Let's say you're not
40:34
going to do anything more than 100 factorial.
40:37
So your constraints are I'm going to
40:39
keep multiplying and then you have one
40:41
factorial, two factorial, three factorial, blah,
40:43
blah. At each step. But now, I want to
40:45
know 89 factorial. Well, because it's an arithmetic, you
40:48
still have to go all the way up to
40:50
100, but then you need to pick something at
40:52
the index at the index 89. Well, how
40:54
do you quote unquote pick things when you
40:56
only have addition and multiplication? Well, you can
40:58
do an inner product with a binary mask.
41:00
So you just multiply everything by zero, one
41:02
where you want it, and zero in the
41:04
other places. So that's gonna zero out the
41:06
other things and you're only left with 89
41:09
factorial. And all of that I described as
41:11
done with only addition and multiplication. Okay, cool.
41:13
We have now we have a stateful computation,
41:15
but what if we're doing more than just
41:17
a single multiplication? Well, well, we can add
41:19
another dimension to it. Now we have like
41:21
registers, like registers, right. That's now the
41:24
state transition between each of those is
41:26
not a straightforward as a multiplication But
41:28
if we keep breaking it down then
41:30
you know we can represent it with
41:32
our very limited language And this
41:35
is something that circum gives you
41:37
yes Well, so the challenge is
41:39
circum only gives you addition multiplication
41:41
and the constraint right? But the
41:43
idea is there's design patterns which
41:45
are That exists like how do you select
41:47
from an array? How do you do a
41:49
stateful computation? How do you represent a
41:52
bit, let's say you're trying to
41:54
actually represent a bit shift. Well, you
41:56
have to do that outside the circuit and
41:58
then prove that the bit shift. was done
42:00
correctly because at the end of the
42:02
day, a bit shift unless you overflow
42:04
is multiplication by power of two, right?
42:06
So you can prove that the bit
42:08
shift was done correctly. You can't directly
42:10
compute it, but outside of circuit, you
42:12
compute the bit shift, put the answer
42:14
back and then constrain that it was
42:16
done correctly. So we're going to publish
42:18
a new part of the ZK book,
42:20
which talks about how to design these
42:22
things with a chapter for that is
42:24
called compute then constrain. Now the challenge
42:26
is I know this pattern exists, but
42:29
I, there's no word for it that's
42:31
existing out there. Interesting. So while, um,
42:33
designing this circum education thing, I had
42:35
to kind of invent a lot of,
42:37
um, terminology for things that other people
42:39
are, I didn't invent the idea. I've
42:41
definitely seen other people doing them and
42:43
doing it repeatedly enough to the point
42:45
where I think it's a design pattern.
42:47
Um, but the design pattern doesn't really
42:49
quite have a name. Yeah. I'm excited
42:51
about that because we're, I'm not aware
42:53
of any, um, resource like that out
42:55
there. You talked a little earlier about
42:57
like content and creating content. This is
42:59
a bootcamp. What, how do you actually
43:01
host a boot? Like what is it?
43:03
Is it like a group that meets
43:05
regularly? Do you do like six weeks?
43:07
Do you do eight weeks? Sure. What
43:09
is it? Um, so the bootcamps are
43:11
just video calls with five or 10
43:13
other people and myself, there's two instructors
43:16
at the company, myself and another person
43:18
named Chowau. He lives in Brazil. I
43:20
live in Asia. So that's great. We
43:22
have both time zones covered. We teach
43:24
the class, but I try to avoid
43:26
just giving people a video lecture because
43:28
that's, um, and I could just record
43:30
myself and then send that, right? I
43:32
really try to make it interactive for
43:34
the instructors asking people questions. I've found
43:36
that to be the level of effectiveness
43:38
learning by someone asking you questions that
43:40
push your knowledge boundary versus someone telling
43:42
you something is not even in the
43:44
same galaxy. It's way more effective to
43:46
where someone is discovering things on their
43:48
own, but they're not really discovering things
43:50
on their own because they're going on
43:52
a guided quest, right? So that's the
43:54
information sticks more. And you don't walk
43:56
out with a lecture like, oh, everything
43:58
made sense there, uh, but I can't
44:00
do anything in here, right? Everyone who's
44:02
gone to college has had that experience
44:05
where I made so much sense in
44:07
the lecture and I can't do the
44:09
whole work. I can't remember anything. Yes.
44:11
So you, yeah, when, when people are
44:13
paying for it, they don't want it.
44:15
Right? They want, I want to actually learn the stuff, which the actual learning
44:17
experience is more painful, but so that is what we do in the boot
44:19
camp, and then we give a homework which really enforces the stuff. But if
44:21
you're looking to LearnZK, you're listening to this, you don't have to take our
44:23
boot camp. The book covers the same stuff, and it's free, and you can
44:25
go through it on your own, and a lot of people have. thing for
44:27
the ZK boot camp is if you really want to accelerate your learning for
44:29
some people time is more valuable than money so it's that
44:31
may be a good deal for people like
44:33
that who are really like I need to
44:36
learn the ZK thing and it needs to
44:38
be done by a certain date or something
44:40
like that. Interesting. So but we teach the
44:42
same the same subject everything that
44:45
we charge we also provide for
44:47
free in terms of content. So
44:49
how many have you actually done? We've
44:51
done at least 15. Nice. That's
44:53
more than I thought, I thought
44:55
you'd have done three, but okay.
44:57
Cool. It's been somewhat popular, so.
45:00
That's nice. The people who've
45:02
gone through these boot camps, do you
45:04
know if they've gone on to work
45:07
in CK? And if so, kind of
45:09
at what level? Oh, for sure.
45:11
Oh, this is what I'm most
45:13
proud of. Yeah. So you know,
45:15
the guy, David Wang, who authored
45:17
real-world real-world cryptography. So he's been
45:20
on the show. Okay, great. We've
45:22
had at least two people become
45:24
interns at his company. One guy
45:26
is working full-time now. So that's actually,
45:28
yeah, that was going recent. We've had
45:30
another, and he's still working at Matter
45:33
Labs, the company behind ZK Cink. So
45:35
he was, he is a security engineer
45:37
and is now actually doing stuff like
45:39
writing constraint solvers to make sure that
45:42
the constraints don't have other cases in
45:44
them that are insecure, right? Amazing. Those
45:46
are probably some of the more cool
45:48
examples of people who've gone on to
45:50
work in work in industry. If you
45:53
want to do actual ZK research, you'd
45:55
kind of need a PhD. And people
45:57
are not really open to that. But
45:59
with. Security, if you can, hey, I can
46:02
find bugs and things, then people are
46:04
more lenient about that in terms of
46:06
hiring you. And then for people who
46:08
want to work in ZTA, that's something
46:10
I tell them, you should consider that
46:12
because we've had quite a bit of
46:14
success with getting on boarding people to
46:16
ZK Security. I don't mean the company,
46:18
I mean, in general. Well, also the
46:20
company. But seemingly, there's a funnel directly
46:22
there. So there's definitely quite a bit
46:24
of need for people who understand how
46:26
to find bugs in this sort of
46:28
stuff. And yeah, so those are the
46:30
professional things. But most people who take
46:32
the course are not looking to get
46:34
a dizzy K. Actually, it's mostly taken
46:36
by like tech leads and protocol engineers
46:38
who just want to kind of hedge
46:40
their career in case things go in
46:42
a different direction. Oh, interesting. Yeah, no,
46:44
no. We've had some high profile people
46:46
take the course, like the head of
46:48
research at Ripple and the core engineer
46:50
at Phantom, which is Sonic now. And,
46:52
um. Yeah, I mean, I won't put
46:54
the individual names on Bless, but you
46:56
can see some famous people, if you
46:58
look at our testimonials page, we've taken
47:00
it. So it's really cool for me,
47:02
because some of the people who, like
47:04
one guy, so consensus came out with
47:06
this tool a long time ago, Mythril,
47:08
for doing static analysis on source code.
47:10
And I partly taught myself solidity back
47:12
in the day by writing some solidity
47:14
code and then running it through static
47:16
analyzers and seeing. What mistakes is it
47:18
pointing out? Now, obviously there can be
47:20
a false positive, but they patterned match
47:22
this kind of a mistake for a
47:24
reason, so let me try to understand
47:26
it. So the guy who built that
47:28
tool back in the day and then
47:30
he was acquired by consensus and they
47:32
maintained it for a while, I indirectly
47:35
learned quite a bit of solidity from
47:37
him. Nice. I wonder if you've been
47:39
following the emergence of the ZK VMs
47:41
and some of those teams, because in
47:43
a way the proposal they're making is
47:45
like, you don't need to know ZK
47:47
at all anymore. My advice for people
47:49
is run a non-trivial computation, like something
47:51
slightly more complex than a fibonacci sequence,
47:53
maybe involves a few hash functions. For
47:55
that kind of stuff, if you have
47:57
like a prover network and you're trying
47:59
to build a blockchain and hardware is
48:01
not really a problem, then I think
48:03
that's great. But the marketing definitely incentive...
48:05
is presenting it as something where everything
48:07
is fast and you don't need to
48:09
worry about it, which probably will be
48:11
true in the future. But just run
48:13
some code on your laptop now. Just
48:15
clone their thing and run the unit
48:17
test. It's going to take half a
48:19
day to get through that stuff. And
48:21
none of these programs are particularly complicated.
48:23
You feel like it's not there yet?
48:25
Definitely not. But I think someday it
48:27
will be, right? But then when that
48:29
day comes, somebody has to be developing
48:31
those tools and somebody has to be
48:33
auditinging them. I think the very successful
48:35
engineers know that you don't need to
48:37
know mindset is kind of a loser's
48:39
one. So that's just to be blunt,
48:41
right? So from an economic standpoint, yes,
48:43
you don't want your engineers burdened down
48:45
by additional work. You want the DevX
48:47
to be as smooth as possible, blah,
48:49
blah, blah, blah, if you want to
48:51
scale. But you don't want to make
48:53
it too easy. Well, I guess there's
48:55
drawbacks to that. But I mean, like,
48:57
let's say you just react for react
48:59
for example. barely even knows what they're
49:01
doing can create a react app, right?
49:03
Because you can copy, paste things. It's
49:05
fairly smooth, aside from node modules, taking
49:07
forever to download, everything works pretty well,
49:10
right? But if you want to be
49:12
a senior engineer, right, then you have
49:14
to know, and you want to be
49:16
designing, like, architecting things and managing a
49:18
team, you need to know. Right, but
49:20
you're causing the page to refresh every
49:22
second, like that's not good. So abstractions
49:24
are never perfect. So if you want
49:26
to be good at your job, you
49:28
have to know what's going on behind
49:30
the scenes so that you can avoid
49:32
the pitfalls. I mean, even solidity still
49:34
has leaky abstractions, right? You can't have
49:36
unbounded a razor, the gas cost can
49:38
go nuts. And re-enterency is still not
49:40
abstracted away, for example. So I think
49:42
more power to people for developing this
49:44
stuff, but I'm not concerned about it
49:46
making what we're teaching obsolete, because there's
49:48
going to always need to be at
49:50
least a few people who even... theoretically
49:52
don't need to know it will benefit
49:54
a lot from knowing it. Nice. Have
49:56
you been, and this is going to
49:58
be a little bit of a plug
50:00
for some of the... study groups we've
50:02
done, but have you been paying attention
50:04
to the other ZK resources out there?
50:06
For example, the Moon Math Manual. Justin
50:08
Thaler's book, there's also like the Snarg
50:11
book, which is much more in the
50:13
research side of things, but it came
50:15
out I think last year. So yeah,
50:17
I'm just curious if like you produced
50:20
the ZK book, are you ever like
50:22
drawing on references from other books or
50:24
are you really sticking into your material?
50:26
Are you aware of it? Yeah, I am aware
50:29
of the Moon Math Manual, and I've
50:31
read some parts of it, and Justin
50:33
Thaler, I've heard a lot of good
50:35
things about him. I haven't, I skimmed
50:37
his book at one point, but I
50:40
haven't really read it. The Snarg book
50:42
actually did not know about until this
50:44
call. So, like, is there other
50:46
material that you're recommending your
50:48
students see, basically? That's a
50:50
good question. I'm hoping you're
50:53
going to tell them the
50:55
CK whiteboard sessions, but I understand
50:57
if not. Usually, okay, so
50:59
when people are asking for
51:01
a recommendation and material, they
51:03
want to say, hey, you
51:05
taught how Groth 16 works.
51:07
I want to know how
51:09
Stark or Plunk works. Yeah.
51:11
And I usually tell
51:13
those people, you know, Vitalica is written
51:15
on it. There's other good blog posts
51:17
out there. I can show you those
51:19
blog posts and you can. you know,
51:21
just read a few and you'll get
51:24
that. You already know how Groth 16
51:26
works, so this is not going to
51:28
be that hard for you. So the
51:30
Moon Math Manual, I have, it's quite
51:32
a mathematical thing, definitely, especially compared to
51:34
R. So I think if people read
51:36
the Moon Math Manual after they read
51:38
the ZK book, it's probably easier to
51:40
do it that way. And I've heard
51:42
a lot of good things about
51:45
Justin Thaylor's thing, from my understanding
51:47
and from my brief skim as
51:49
more of a, like theoretically focused,
51:51
which I think is. good to
51:53
do after you've built a working
51:56
example of it like what we
51:58
teach. In terms of inspiration. There
52:00
was this Pinocchio series on
52:02
medium or some archive thing
52:05
that appeared a long time.
52:07
So this was called Why
52:09
and How ZK Snark works?
52:11
Yeah, by Maxim Petkus. Okay.
52:13
So that was a very helpful
52:15
resource for me when I was
52:18
getting into ZK. So he
52:20
taught Pinocchio and I really felt
52:22
like that was not... I felt like
52:25
Roth 16 was a better thing
52:27
to teach because it's actually used
52:29
and it's actually simpler. Now, understanding
52:31
the intuition behind Groth 16 is
52:33
harder probably than Pinocchio, but there's
52:35
fewer moving parts, so there's less
52:37
to, there's less to teach. But
52:39
if you're wanting to learn some
52:41
of the later stuff, I mean, what I
52:43
generally tell people is, there's a danger in
52:45
just knowing things for the fun of it.
52:48
Right, which is fine. As long as you're
52:50
conscious that this is a hot, that I'm
52:52
learning things for the fun of it. But
52:54
as an engineer or an auditor, you need
52:56
to actually produce something, right? That's why we
52:58
try to set our North Star for the
53:01
courses. Like you need to produce the Groth
53:03
16 algorithm. You need to create the ZKVM.
53:05
And then use any resource that's going to
53:07
help you get to that destination. So whether
53:09
that's reading the source code, reading the
53:11
paper, reading other people's blog posts about
53:14
it. And now I do think. Understanding
53:16
other things at a high level can be
53:19
helpful. Like I watch some of the whiteboard,
53:21
the ZK whiteboard stuff. And it's good to
53:23
know, okay, at least structurally this is how
53:25
things are because if I understand the high
53:27
level, it's easy to start with a high
53:29
level idea and then work your way down.
53:32
Or understand the high level idea and then
53:34
learn something that's adjacent to it. Yeah,
53:36
my advice for people, just in general for
53:38
people who are just going out there and
53:40
learning, try to filter it through. Am I
53:43
learning a skill that somebody else will pay
53:45
for? Not knowledge. Like even in academia, you're
53:47
not paid on the basis of being smart
53:49
or whatever. You're paid on the basis of
53:51
publishing papers at the end of the day.
53:54
So you want to make sure that when
53:56
you're learning something, what additional skill
53:58
are tangible outcomes? am I getting
54:00
from this? Not just, oh, I feel good
54:03
about myself because I understand how something works.
54:05
That can be a dangerous feedback mechanism. Now
54:07
if you're doing it for fun, that's okay,
54:09
right? But just be aware that you're
54:11
doing it for fun. What I hear from you is
54:13
this idea of just like adding value.
54:16
Like make sure, like you're doing that
54:18
in a way with the course. You're
54:20
making sure that there's like a value
54:22
add. It's not just. here's a video,
54:24
enjoy, but it is like hands-on, kind
54:26
of keeping people accountable, bringing them together,
54:28
and making sure that people leave with
54:31
the understanding they're supposed to have. I
54:33
like that. And actually, so it's interesting,
54:35
like... I'm going to bring back CK Hack,
54:37
but on our side we've done the content
54:40
production, but it is the study groups where
54:42
we've gone through the content, which in my
54:44
opinion is like the closest thing we've got
54:46
to it, which are these study groups, but
54:49
like I said, quite informal. What I hear
54:51
from you is there's sort of this You're
54:53
trying to create value, you want to make
54:55
sure that people walk away with value. I'm
54:58
also learning from you, by the way. I
55:00
am slightly like trying to learn how you're
55:02
doing this because I think, yeah, we're always
55:04
looking to make our side a bit better
55:07
too, but creating these environments where
55:09
there's enough of a back and forth
55:11
that it keeps people involved. Like another
55:13
thing you mentioned was shaving off those
55:16
hard edges or those like... They could
55:18
be really interesting rabbit holes, but they're going
55:20
to slow you down situations. Making sure that
55:22
there's like a streamline from where you're starting
55:24
with very little info into like building something
55:26
real. You've kind of talked about choosing a
55:29
proving system that also like is quite accepted.
55:31
There is a lot of information about it
55:33
and not getting like what I hear from
55:35
that too is you're not getting caught up.
55:37
or like confused by all that's out there.
55:39
Because I think that's one of the challenges
55:42
as well is like if you just look
55:44
around there's so much you could dive into.
55:46
But each one of those things will have
55:48
nuances and if you don't know the
55:50
basics it's going to be really hard
55:52
for you to navigate between them and
55:54
it could confuse you. Like I'm sure
55:56
it confuses like as a non-developer talking
55:58
about all this stuff. like confused myself on
56:01
that. So this is interesting. This is like
56:03
some some cool feedback. I think for anyone
56:05
who's listening who's like wants to learn, if
56:07
they have sort of a journey they'd like
56:10
to take, these might be good tips. And
56:12
then I guess they could also join you
56:14
guys. Are you doing another boot camps at
56:16
some point soon? Yeah, we. We tend to
56:19
run the ZK boot camp every month. So
56:21
it should. Okay, that's why you do so
56:23
many. Got it. I don't know the exact
56:25
start date of the next one, but
56:27
it's on our Rare Skills.io/ZK dash boot
56:30
camp. The start date will be there.
56:32
We should be one in March. I
56:34
think this is fantastic for our audience
56:36
to know. Yeah, thank you so much
56:38
for sharing this with us. Now, I. I do want
56:41
to ask you one more thing, which
56:43
is kind of off topic before we
56:45
sign off. One of the reasons we
56:47
actually reached out to you initially was
56:49
a viral tweet you shared about quantum
56:51
computing, totally different topic. But then when
56:54
I realized it was you from Rare
56:56
Skills and I knew about this book,
56:58
I actually invited you on to just
57:00
talk about that. But I do want
57:02
to just mention that tweet. This is
57:04
right around the time that the quantum
57:06
computing blog post came out from Google
57:08
and like sort of an announcement and
57:11
you broke it down in a nice
57:13
way. It does still speak to like
57:15
technical education and all of that. But
57:17
let's talk a little bit about that
57:19
because also looking at it before
57:21
this interview, that thing is like
57:23
megaviral. It's like five million views
57:25
or something. And that's not your
57:28
field. So tell me a little bit about
57:30
putting that together. For sure. Every two years
57:32
these big companies try to come out and
57:34
scare people with like look at our big
57:36
breakthrough in quantum computing when reality is just
57:38
like pump their stock or something like that.
57:40
So the timing was of like people were
57:43
like oh my gosh there's quantum supremacy what's
57:45
going on? And so since there's already a
57:47
lot of heightened emotion around the topic and
57:49
then the response being in response to something
57:51
that was already very emotional it's kind of
57:53
the right situation to for the stars to
57:56
align. So there is that I actually don't
57:58
think I wrote that threat that threat. that
58:00
well. If I were to go back
58:02
and do it again, there's actually some
58:04
jumps. The progression in a few cases
58:06
is not like, oh, I should change
58:08
the order of how I discuss this
58:10
thing in a few places. So I
58:12
think just as a meta comment, you
58:15
can be not that good of an
58:17
educator, but if you're talking about something
58:19
where there's nothing on the topic, people
58:21
will think you're good. But if you're
58:23
writing on something where there's
58:25
a lot of information already.
58:27
Your explanation needs to be
58:29
bang on and it needs to
58:31
have beautiful animations and blah blah
58:33
blah blah blah are people just
58:36
not going to care. So I
58:38
do think that it's so those
58:40
are the two ways you can
58:42
be considered a good educator either
58:44
explain well-known things exceptionally well and
58:46
be very entertaining in the process
58:48
or talk about stuff that nobody
58:50
has a clue about. Okay. So it's not
58:52
your best work is what you're saying. It's
58:54
not my best work by a long shot.
58:56
Again, this goes back to like why is
58:58
ZK kind of difficult to learn? Because the
59:01
model of computation is weird to people, right?
59:03
You're not actually writing an algorithm in
59:05
ZK, you're writing constraints that model an
59:07
algorithm. And quantum computing is kind of
59:09
like that, where you're taking advantage of
59:12
the fact that, you know, entanglement can
59:14
carry a lot of information between places
59:16
simultaneously. So, and then you can probabilistically
59:18
arrive at the answer. So quantum computing
59:20
does not work where you get the
59:23
correct answer each time. You have to
59:25
run it. a few times and then
59:27
probabilistically you can figure out that your
59:29
answer is right. Weird. And the other challenge
59:31
with quantum computing is, like with a Sudoku
59:34
puzzle, for example, you know that you got
59:36
the answer, you have to do a search
59:38
to find the answer, but then you can
59:40
verify that the search was correct because
59:42
you just check all the rose columns
59:45
and sub-squares, right? The thing they were
59:47
doing with Google was not a problem that
59:49
you could check. And when they say, oh,
59:51
this was, you know, 10 to the 25
59:53
times faster, well, that's based on extrapolations, not
59:56
based on, no one actually ran the computer
59:58
for 10 to the 25 times. So quantum
1:00:00
gates are kind of like logic gates.
1:00:02
That's why I open the thread that
1:00:05
way. Right. So hopefully, if you do.
1:00:07
I'll add the link to this tweet.
1:00:09
And even though it's not your best
1:00:11
work, we all know it's, I could,
1:00:14
I could preface that too. Yeah. Tweet
1:00:16
from Jeffrey, not his best work. But
1:00:18
yeah, I'll definitely, I'll add it in
1:00:20
the show notes for anyone who wants
1:00:23
to see it. Like for me, reading
1:00:25
it was, it was actually, like, like,
1:00:27
this is a topic that I'd like
1:00:29
to cover a little bit on the
1:00:32
show going forward. You can actually use
1:00:34
quantum computing in the cloud with IBM.
1:00:36
You'll get like five cubits or something
1:00:38
like that and it's like $95 a
1:00:41
minute to use that thing. So if
1:00:43
you have money to blow, you can,
1:00:45
the player under the quantum computer. And
1:00:47
there are quantum languages for it, which
1:00:50
it's not as scary of a field
1:00:52
as people think it might be. I
1:00:54
mean, obviously if you're going to be
1:00:56
a researcher in it, then yeah, that's
1:00:59
tough stuff. But what they did in
1:01:01
their experiment is they wired up a
1:01:03
bunch of random gates together, but the
1:01:05
distribution of the output is expected to
1:01:08
follow a certain pattern. And then the
1:01:10
distribution did, in fact, match the pattern.
1:01:12
They were like, oh look, we managed
1:01:14
to, we got it right. Yeah, we
1:01:17
got it right, but like, but this
1:01:19
is not very useful, right? So, now
1:01:21
they do have some breakthroughs in there,
1:01:23
I'm not knocking them, but obviously, they
1:01:26
carefully chose the context and the phrasing
1:01:28
so that it would maximize the hype,
1:01:30
which we do that in Web 32,
1:01:32
so I can't blame them. But you
1:01:35
can't throw stones in a glass house,
1:01:37
but it was, but I get very
1:01:39
annoyed when people to your. advantage right
1:01:41
so I think Taroon also had he
1:01:44
had in our end of year episode
1:01:46
he'd also cast doubts on on how
1:01:48
how honest the marketing had been there
1:01:50
yeah when you when you read their
1:01:53
actual thing they're very honest or they're
1:01:55
at least they're not as like being
1:01:57
as blunt as I am but like
1:01:59
But to understand the honesty, you need
1:02:02
to have the technical, you need to
1:02:04
know like what are random gates and what
1:02:06
was actually being done. So when people
1:02:08
talk about quantum computing, a lot of
1:02:11
it just sounds like chat deputy wrote
1:02:13
it. Oh, you know, there's entanglement, therefore
1:02:15
it's faster. We have zero one bits,
1:02:17
but now we can have more than
1:02:19
zero or one. Okay, that's cool. But
1:02:21
how does that translate into faster computation?
1:02:24
And how does that tell me what
1:02:26
Google was doing? Okay, at least has
1:02:28
some idea of what's actually happening. And
1:02:30
then speak about it in terms of
1:02:32
that at least someone who has an
1:02:35
introduction to computer science would
1:02:37
understand. Something that you just sort
1:02:39
of highlighted though that the similarity in
1:02:41
ZK where it's like you're trying to
1:02:44
use existing paradigms of computer programming and
1:02:46
you're adding it into ZK circuits in
1:02:48
one case, but also into a quantum
1:02:50
context. Like that's actually I hadn't ever
1:02:52
sort of made that connection point that
1:02:55
like there may actually be just like
1:02:57
brand new with paradigms like in ZK
1:02:59
as well potentially like why are we
1:03:01
just trying to rewrite existing things? I
1:03:03
think well this is actually because I
1:03:06
studied remember I studied computational theory so
1:03:08
fundamentally everything boils down to either carrying
1:03:10
out the computation or proving the computation
1:03:13
was was correct. Or another thing is
1:03:15
why can quantum computers theoretically give us
1:03:17
a speed up when it's just quantum
1:03:20
state collapsing? Well, because we can translate
1:03:22
a real problem theoretically into something that
1:03:24
collapses and then that answer comes out
1:03:26
of there and tells us something that
1:03:29
tells us something that tells us something
1:03:31
that's useful. So once you just kind
1:03:33
of get that there's really only a
1:03:36
couple modalities of computation and then what
1:03:38
we see in ZK or quantum computing
1:03:40
is just a different manifestation of it.
1:03:42
This is one thing why I really
1:03:44
encourage people to learn the fundamentals. We've
1:03:46
known everything about computation since Alan Turing
1:03:48
and Lambda Calculus, but everything boils down
1:03:51
to the basics. A lot of it
1:03:53
is just engineering to get the basics
1:03:55
running faster. Like we might, like, think
1:03:57
about the advantages from, you know, for
1:03:59
these. EK algorithms that come out. A
1:04:01
lot of them are not fundamental breakthroughs.
1:04:04
They're just very, and they're frankly more
1:04:06
of an engineering thing, which matters a
1:04:08
lot, right? Because invidia is not doing
1:04:10
anything innovative. It's all engineering, in terms
1:04:13
of fundamental, what we think of as
1:04:15
fundamental science, or TSMC. We just figured
1:04:17
out how to like get the UV
1:04:19
lights to, making things smaller and
1:04:22
smaller, sharper and sharper. more efficient
1:04:24
using less energy, making less heat.
1:04:26
Exactly. Yeah. Or even with AI. I
1:04:28
think a lot of the models that
1:04:30
we use as like for chats could
1:04:33
theoretically be coded in about 900 lines
1:04:35
of code or something like that. They're
1:04:37
not that complex. What's complex is how
1:04:39
to get all this data to be
1:04:41
run through a data center and you're
1:04:44
not running into bandwidth issues. Although there
1:04:46
are like I think there there is some edge
1:04:48
like some edge where there's new techniques at least
1:04:50
which I think is more in the research front
1:04:52
which are changing kind of the ways this thing
1:04:54
works. Yeah I definitely don't want to say
1:04:56
that there's no scientific advancement happening but
1:04:58
a lot of what we perceive a
1:05:01
scientific advancement is really engineering advancement and
1:05:03
engineering is oftentimes based on science that's
1:05:05
very very old so what I recommend
1:05:07
this is one thing that I think
1:05:09
that's helped me a lot just because
1:05:12
I studied the foundations of computing very
1:05:14
very closely web three is easy
1:05:16
mode for me so well solidities
1:05:18
like it's never been described as like
1:05:21
hard more that like hard to get
1:05:23
it right right like it's like it's
1:05:25
easy it's maybe too easy but it's
1:05:27
therefore easy to also incorporate bugs
1:05:29
and people who maybe aren't
1:05:32
as who aren't as familiar
1:05:34
with the EVM have historically
1:05:36
just made mistakes because of the
1:05:38
way of how easy it is. I
1:05:40
always found the solidity story kind of
1:05:42
an interesting one. It's like too close
1:05:44
to JavaScript or something. It's too familiar,
1:05:46
but it's not exactly the same thing.
1:05:49
But I guess ZK is very different
1:05:51
though. ZK is like not familiar for
1:05:53
people. So they are kind of learning
1:05:55
these paradigms, especially if you're working at
1:05:57
the level you guys are. They're learning
1:05:59
these. in a way for the first time.
1:06:01
Yeah, so I would just say
1:06:03
in general, it's very important to
1:06:05
have the fundamentals in place because
1:06:07
a lot of what we call
1:06:09
new knowledge is really just a
1:06:11
rearrangement of the fundamentals. So if
1:06:13
you really solidly know your elliptic
1:06:16
curves, you really solidly know your
1:06:18
polynomials and your linear algebra, or
1:06:20
at least some parts of it,
1:06:22
and then. People who are creating
1:06:24
content about this, and we have
1:06:26
study groups, we have courses, we
1:06:28
have books, and blog posts, you
1:06:30
have ZK Whiteboard, these will help you
1:06:32
stay caught up with things. But if you...
1:06:34
really want to have mastery on the subject
1:06:36
and not be dependent on other people to
1:06:38
break it down for you, then what people
1:06:41
think of as a skill of reading papers
1:06:43
is like, oh, I know all the latest
1:06:45
information. It's not, you're really fluent in the
1:06:47
vocabulary that they use. What they think is
1:06:50
obvious to everybody that they don't even explain.
1:06:52
Those are the things that you really want
1:06:54
to be fluent and if you want to
1:06:56
stay caught up with people on your own
1:06:59
and not doing it through other platforms. That's,
1:07:01
I really think is what the... core skill
1:07:03
that people miss. It's not chasing
1:07:05
whatever the latest hot thing is.
1:07:07
Yeah, cool. Jeffrey, thank you so much
1:07:10
for coming on the show and sharing
1:07:12
with us basically the rare skills story,
1:07:14
what you guys are offering, how you're
1:07:16
thinking about it. Also, thanks for the
1:07:18
little... kind of insight into your thoughts
1:07:20
on quantum computing and that tweet. Yeah,
1:07:23
thank you so much. Yeah, I love
1:07:25
talking about this stuff. Thanks for having me.
1:07:27
Yeah, it was also great to meet you.
1:07:29
I feel like we work in parallel streams,
1:07:31
but had never actually come into contact before.
1:07:33
So I'm glad that.
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More