Learning ZK with Jeffrey from RareSkills

Learning ZK with Jeffrey from RareSkills

Released Wednesday, 12th March 2025
Good episode? Give it some love!
Learning ZK with Jeffrey from RareSkills

Learning ZK with Jeffrey from RareSkills

Learning ZK with Jeffrey from RareSkills

Learning ZK with Jeffrey from RareSkills

Wednesday, 12th March 2025
Good episode? Give it some love!
Rate Episode

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.

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features