Episode 298 - Mina's zkApps and o1js with Brandon and Steve
8 Nov 2023 · 52:27
Anna Rose talks with Brandon Kase, CTO of O(1) Labs, and Steve Pack, the company's head of product, about the Mina Protocol and its zkApps developer environment. They cover updates to Mina since their last appearance, the design philosophy behind the o1js library for writing zero-knowledge proofs, and how the zero-knowledge industry is shifting from research-driven work toward a builder-centric approach.
Speakers
Topics
Transcript
[Music] welcome to zero knowledge I'm your host Anna Rose in this podcast we will be exploring the latest in zero knowledge research and the decentralized web as well as new paradigms that promise to change the way we interact and transact online this week I dive into the Mina project with with CTO Brandon case and head of product Steve pack from o1 Labs the team building Mina we chat about how their Journey LED them to work on Mina how Mina has developed since we last did an episode with members of the team the
ZK app's building environment 0js and the philosophy behind it and what use cases we may see on the horizon especially as we see ZK move from being more research Centric to Builder Centric as an ecosystem now before we kick off I just want to remind you to check out the ZK jobs board there you can find jobs posted from Top teams working in ZK as well as deeply technical teams like Nosa Zama Alo and more if you're looking for a new job opportunity in ZK or in adjacent Technologies be sure to check out the ZK jobs board I've added the link in the show notes now Tanya will share a little bit about this week's sponsor near the OS for an open web and polygon the leading ethereum layer 2
scaling solution are teaming up near foundation and polygon Labs just announced from ncon 23 that they will build ZK wum a zero knowledge ZK prover for wasm blockchains with n's deep wasm runtime expertise and polygon lab's Authority in ZK scaling technology the ZK wasm impr will help create a more secure interoperable web 3 ecosystem set for a 2024 launch the ZK was improver also positions near protocol closer to ethereum and enables wasm chains to tap ethereum liquidity in the near future an interrupt layer will allow blockchains including layer 1es evm layer 2s and wasm chains to share liquidity within a unified ecosystem leveraging zkw prover wasm chains will settle transactions
efficiently and securely unlocking the full potential of zero knowledge for a multi-chain open web future stay up to date with the zkm announcement at n.org so thanks again near and now here's our episode today I'm here with Brandon case CTO and Steve pack head of product at ov1 Labs welcome to the show hello hi Anna now before we kick this off I just want to mention that I'm an adviser to oven Labs it's actually been a couple of years I get a chance to speak to both of you every two weeks so it's really fun to have you on the show and also ZK validator is a validator on Mina as well I feel like on the show we've actually covered this project a number of times
even like way back when the project was called Kota we had Isaac and Evan on at the time we did an episode all about the Mina s architecture with Isaac and two years ago we did an episode about snaps with emay and Isaac I'm going to add links to these in the show notes today's episode I think is very much taking from that last episode on snaps which has been rebranded since then to ZK apps and kind of going forward with that but before we do that let's get to know both of you Brandon let's kick it off with you you've been at 01 labs for a really long time tell us a little bit about what got you started how you got into it yeah so what got me started two things
well maybe three one uh I was really good friends with Evan Shapiro one of the co-founders of all one Labs Mina Foundation Mina protocol and we had built things together in University so I I knew that we worked well together at the time I was really excited about functional programming software engineering and General Building engineering teams in a certain way so when I talked to Evan and and Izzy I got really excited about the project so yeah so I I came in working nights and weekends uh originally in the fall of 2017 and then as soon as the yeah long time so early was that had the company even been founded then no no no the company was founded officially in
January um so around my birthday um I remember it and at the time we were building a JavaScript prototype of mina which which we threw out and switched to switched to oakl but yeah in those early days it was really exciting really challenging I personally had severe impostor syndrome you know I I had to review Isaac's code and you know Izzy the way that his brain works it's very mathematical he was working on a PhD in cryptography which he which he stopped to work on this project but even in his software that didn't touch the snarks there was all this like algebraic geometry and all these weird like very foreign concepts for me and I I had to
work really hard to do you know what I thought was like a good enough job um and yeah for many months so if anyone else is you know just getting into ZK getting into crypto like starting to work on really challenging projects I would recommend just try and try and work through it work really hard and then um bite the bullet accept the impostor syndrome just keep going just keep going yeah um and yeah eventually I got I got more sort of confident so anyway I started as one of the founding engineers and uh I did so many different roles throughout the lifetime of the company and yeah and now I'm now I'm CTO that's amazing and actually when we met or when I first started coming on calls
with you guys I always got the impression that you had a bit more of like a devil or like a community focused role because you had done those educational videos you were at the event evangelizing helping developers and so yeah I kind of wonder how did you end up doing that for a period of time yeah so as I said I started an engineering position very focused on protocol engineering all of us were focused on protocol Engineering in the beginning and it was really fun really challenging we quickly hired a bunch of extremely brilliant protocol engineers and my role switched initially to like ramping those Folks up I felt that was the best way that I could add to the project and then once they were ramped up I I realized we
need to be doing product engineering or we need to think about product yeah anyway so we started looking for product management and and I started doing more as what you would call product engineering we sort of grew that team we we grew a product engineering team I became an engineering manager then we hired an engineering manager who's much better than me at managing engineers and I I realized you keep creating jobs and then hire but that's that's the dream right you hire you create the job and then you hire someone to do it instead of you so you can do another thing okay exactly yeah and so devil or this kind of you can think of it I guess you would call it Devo but I always really enjoyed and felt passionate about teaching I still feel passionate about teaching um
and teaching both to like super Advanced technical audience I love that and I love trying to come up with ways to translate that technical information into a more consumable form for for beginners for technical and non- Technical beginners and you may have seen me on YouTube videos about Mina people always like cat you know they Point me out on the stre about that yeah and of course like guy yeah yeah the marketing team really helped helped me like cut that script I was like going on crazy rants when we were filming those yeah so anyway went through that and I wore many different hats and yeah and finally to the hat that I am now currently wearing very cool steve let's move on to you you joined more recently
and you were head of product tell us a little bit about what you were doing before this start of my career I was a software engineer so 12 years writing code mostly in finance high frequency trading loved it but always wanted to sort of scratch the entrepreneurial itch and so after that I um started a company it was funny hearing Brandon talk about University and school friends so I I started a company with a mate from high school I'm Australian by the way hence if anyone was wondering about the accent and uh yeah we made Wi-Fi routers that let parents limit screen time for kids and uh super successful super fun shipped 10,000 units got onto the shelves of Target but uh also learned Hardware is
hard and grinding out Hardware margins is hard and at this time I was living in Silicon Valley and that entrepreneurial experience sort of taught me that as much as I loved coating like to be able to sort of bring a team together and you know build a product was was even more exciting uh to me and so you know when uh the company wound down you know I was set on on product as my my future career and was fortunate enough to join Cloud Flair in the very start of 2018 and yeah really got to you know cut my teeth on like you know web to product management and you know building building software at fast growing company and learned everything imaginable about the
infrastructure of the internet and you know all that all that cool stuff and like many I've since learned that this is a common story in web 3 it's like during the day you're you're doing your day job and during the night you're like yeah on crypto Twitter or you're deploying solidity apps or you're you know testing out defi things and and that was my experience too I just was drawn to this technology and I dipped my toe in a few times actually over the years but always came away sort of feeling like this stuff's really interesting but it hasn't really got adoption yet and it hasn't really like proven the use cases yet and each time I came back it was like okay you know it's it's getting there it was like you know firstly Bitcoin is the store of value
and then okay like you know ethereum is this Global consensus layer where people can deploy smart contracts and then then defi then nfts and you know it just it just kept going and so at some point I was like okay I want my passion to be my my full-time job and you know started looking around and uh one you know the position was available at o1 labs and I and I really loved sort of the mission and the differentiating aspects of mina which I'm sure we'll dive into and so yeah 6 months ago joined head of product and I I guess my hope is to you know bring some of those Lessons Learned From from web 2 and and and being in a sort of hyperscaling company uh and bring them to web3 and you know help us get crypto into the hands of the next
billion users Yeah question about working at Cloud flare like didn't they use ZK actually on some product like there was some ZK thing I remember reading about this years ago yeah it's kind of esoteric so the the the actual Cloud FL has a research team that has a lot of crypto research yeah that one you're talking about I think that was Zero knowledge proof that you had a hardware key from a certain set of Manufacturers and I can't remember exactly what that was whether it was improving the score for bot mitigation but it was sort of yeah Cloud Flair's first use of ZK they also run an ethereum Gateway and an ipfs Gateway so there is there is you know some some some crypto folks yeah yeah interesting
actually I remember I went to the office in 2019 and I saw that wall of lava lamps to create perfect Randomness and I had been doing like I think an episode on vdfs right around then so I remember like that connection I always thought I was always actually hoping that a company like Cloud flare would jump into ZK or something more substantially do you think there's still a chance I realize you're not there anymore but I thought I'd asked yeah yeah I don't I don't have any inside inside info but you know I think cloud Flair for all of the like interesting technology they are rightly like Relentless and ruthless at building what customers want and you know like they'll you know take some
risks but you know there needs to be especially as a public company you know a pretty high level of conviction to really invest heavily in something so I don't doubt each each new paper that comes out each new technology comes out like it's being looked at especially by this research team and you know prototypes were being built but you know to get that into the hands of you know the entire customer base yeah there's a few gates to clear there makes sense so you joined OV one Labs but I think now would be a really good moment to introduce Mina to the audience I feel like a lot of folks who are listening given that you know we've done these previous episode may be familiar with it but why don't you just for those who aren't just share with us in short form what is Mina yeah I'll give it a crack
and I'm sure Brandon will uh follow up but uh yeah Mina is a ZK native blockchain so what does that mean it means that like any interaction that happens on the blockchain be it a transfer of mina be it um staking delegation and then you know in the the upcoming um smart contract platform any state change instead of those things being like executed in a VM they are represented as a zero knowledge proof and that's what the mea validators are doing they're verifying these proofs incredibly efficiently and also representing that in this famously succinct 22 kiloby proof with which you're able to prove the entire mean of blockchain so it's very you know certainly novel in being mainnet when ZK
was you know really just just getting started and you know we'll talk more about like why why it's going to be such a solid foundation for ZK apps but that's how I would describe Mina today Co Brandon yeah I think you hit the nail on the head the one thing that I would expand on I suppose is this succinctness it's powered by recursive proofs and this kind of recursive proof power is what makes Mina special this recursion power is a very important component in the tools that we build both in Mina and surrounding it yeah because we l into this with why sort of you know why Mina like that was part of when I was looking out there in the crypto world like why
why Mina there's actually a very compelling reason from my perspective who was wanting to take their passion and make it their full-time role and you know one of those things often when we talk about meor it's like okay the succinctness is cool and it's super cool technology but what does you know what does it enable and this is one thing that I I get so excited about I don't I don't know if it's always obvious but you you know you've heard of falic talking about the you know the Sci-Fi future of ethereum where it's downloaded a couple of snarks and and you know you're on the canonical chain like that's Mina today right and and so that's why when I was like getting excited about okay what's what's my little piece of the crypto world like where am I going to join in this idea
that you could have a blockchain that you can verify in the browser that you can send proofs to without an API owned by some company without everything being in the clear like meor is a lot about what web 3 can really be and so uh yeah it's not just it's not just the coolness of the technology so you were just saying that it was like it is that sort of future that's cool sort of moving on from Mina as the underlying infrastructure I want to start talking a little bit more about ZK apps or what used to be called snaps and one of the reasons for this is I want to just kind of check to see if I understand them as the same thing and what are they today what kind of do you imagine it being so Brandon can you tell us a little bit the
history of ZK apps and what they are so ZK apps are what we call DS on Mina and yes they used to be called snaps what they are are they're in some ways a superet of what you can do with typical D apps um so you can do the sorts of things you can do with the apps but you can also leverage privacy and the way this works or or sort of what is at the core of the smart contract platform and this idea that execution of the application happens client side so execution happens client side typically on the user's machine in their web browser
and so private data never leaves their custody and then a proof that certifies that such execution happened properly that's what gets sent to Mina and that gets recursively composed recursively folded in recursively proven into that one tiny Mina succinct proof so the word sort of snaps or ZK apps both sound like a plural of something but what it actually is is like a platform right it's like environment where one can deploy these things or do you have a different name for that yeah yeah I I suppose nomenclature and Steve can jump in if you disagree with anything but like I think some sometimes we say like
the ZK app platform okay um and then the ZK app is one such instance of an application kind of similar to how you would say in the evm I don't know do you say the d a d platform or the smart contract environment yeah I I think think you got it Brandon with it's a ZK enabled smart contract platform right we we build ZK apps using OJs which is you know we'll talk about that is the SDK and you you you build smart contracts and then instead of them executing in a like a VM like in the evm you know they execute in your browser you generate a proof and it's that proof that gets settled to the blockchain so it's it's a smart contract platform with the you know secret source of of ZK meaning
privacy you can choose is what inputs a private like Brandon said data stays on the machine it's really I think realizing the the vision of web 3 smart contracts and there is this confusion I think with nomenclature here that I want to contribute to um I think there's a distinction between smart contract and D that in some ways I guess we inherit it so there's the smart contract which is the actual thing that is running either on the chain in a typical platform or in user's browser in this case in a zero knowledge proof but the actual application that surrounds it has a user interface and is like the full package so in that sense like I think what we've built is not just a smart contract
platform but the surrounding package um I think serves this greater purpose of building these applications in a web context I want to sort of understand if like Steve what you had said is you can have sort of like an application running and then just does that last proof proof but what this makes me think is that there's sort of a separate execution environment that's then tied into the Mina blockchain this is what I want to kind of understand if my thinking is correct there so like and what is that environment then yeah let let's compare maybe we'll compare with sort of what what people know today like so say you build a a d apppp on ethereum and you have some react front end uh you click a
button that button builds a like an https EST that goes to some centralized Gateway that turns it into an ethereum transaction uh it goes into the mle on the blockchain some validator sees it executes it in the evm so there's the execution context in that case right it's a validator uh and then you know there's some State change that represents that that's the flow most of us are sort of familiar with okay so what's the the ZK app version so again you might have a react front end nothing changes you got a button right but now when you click the button what executes is the proof proving function so literally some JavaScript code in the browser so the browser is the execution environment all of the inputs to that
wow the users you know private data whatever else stayed on their machine ran this well I said JavaScript but you know wasm all right code generates the proof and it's that proof that then goes to the blockchain to be verified so it's not executed by the validators it's just verified by the validators and that's that's where so many of the so much the goodness comes from right that it's you know it uh like it's it's cheaper like it's very cheap to verify a proof compared to like executing the data didn't have to leave the machine yeah it's fundamentally different and it's kind of exciting cuz if you think about it now you know in every single browser in the world becomes uh a potential
execution client for ZK apps is the zkp or the proof in this case then a proof of validity that what's happened in the browser is what they've said happened in the browser in some way that's a good question it like when you say proof of validity I think what I'm hearing is validity proof and that has a kind of specific meaning in the like optimistic and ZK rollup sort of world yeah so but I would say in a general sense the answer is yes like you are able to prove that this state transition is valid that you know you had knowledge of a private key and you know you executed a function Faithfully correctly nothing was changed You couldn't possibly have produced this proof of the state transition without
you know without this knowledge and so in that sense yes you're proving that this state change is valid another question though if your execution environment is your browser then is there no Global execution environment like is there no shared execution well one one way to think about it is it's the only Global execution environment because the execution actually happens on or is capable of happening on sort of the vast array of consumer machines that exist in the world but the the second part yeah there's there's a very interesting relationship with sharing sharing computation sharing state in applications in in this platform and there's a lot of different ways you can do it that solve different problems it's an interesting challenge in this
environment for sure is it something that like you would decide as an app developer how shared it is and where it's shared somehow is that sort of what you mean yeah so for for example if you want to share computation then you can use recursion you can use recursive proofs so you can have one user do one sort of Step of a game another user doing the next step of the game and then a third user that takes the recursive combination of that and sends it to the chain for example if you want to share State you can use Mina um so you can write something to mina uh and then another you know later contract can read that information you know
there's this issue that comes up when you do client side computation uh of the data races or this problem where if two users are trying to access the same state at the same time then uh or and change it in different ways then there might be some sort of conflict and you know one one mechanism we have for managing that is uh something called the action and reducer system which is very similar to um a similar State management system in react I guess to answer your question yes the developer decides and the developer decides amongst a lot of really interesting mechanisms that are unique and different from what developers are used to so we definitely spend a lot of effort on education around those pieces yeah can can I add
to that because I think the reason you're you know you're asking for the right reason Anna because it's a different mental model right it's like ah well if the execution is happening over here so so what then and you know this is one of the things when developers first come to ZK like there's this sort of Mind shift that has to happen in terms terms of like how you do things and so we try to reduce that as much as possible and you know I'm sure we'll we'll talk a bunch about OJs but that's why you know being able to write ZK apps in typescript right it means okay at least I'm not having to learn a new language but in this specific example as well like uh Brandon said you know there's actions and reducers framework so that's something that a lot of web developers are are familiar with
if they viewed react and that's what we try to do with OJs is like actually provide useful ractions right not just say okay you can build a circuit when the obvious next question sometimes is like what's a circuit like you know when people are just starting out right so having these sort of abstractions is super critical I think to ZK as an industry I think the industry has a has a ways to go um but it's something that you know we definitely uh spend a lot of time on and we've even uh changed most of the references to Circuit to to provable in our tools because the term circuit is we believe uh is is like an unnecessary an unnecessary implementation detail of the thing that you're trying to do which is to prove
something and it also has a certain mental model when you say it when you say circuit like something right at least for the Layman but I also think for people who aren't deep in it right like there's an electric circuit there's like a circuit tree there's like something some connotation that it has in in how you'd interface with it yeah it goes further than that that's what I have I have this mental model of a like PCB board right like with lines and when you use you use some of the lower lower level Z languages like it's kind of not that different like it's pretty pretty low level yeah um whereas when you're writing ZK apps like it's more like you know mer Merkel tree dot like you know ad or like you know I'll
embarrass myself if I go too far in but it's like you know abstractions and data structures that most developers are a little more familiar with yeah and and circuits are the implementation detail that is true today but you know maybe someday there's like we're going to change our proof systems to have some other strange way of executing under the hood how we think about computation at the level of uh like designing applications shouldn't change and so coupling ourselves to like the terminology of circuit there is perhaps a mistake so I mean just to paraphrase what we just talked about but it's the idea that like to interface with this you will have to think a little bit different on how you design the
architecture of an app almost and the things that are possible how you maybe deploy it or some of the decision- making that goes as you do it you kind of coupled that with OJs which we want to talk about I think we should talk about right after this which is meant to simplify that language part which I know a lot of teams have designed their own languages that create kind of that extra learning curve that extra step first you have to learn the language then you have to potentially learn the new architectures let's talk about 0js that used to also have another name which we might have mentioned on a previous episode so everything used to have snark or SN at the beginning of it so snaps
snarkitecture I think there was like a snark asaurus or something at some point there was a Franken snark there's a lot of things that Isaac and I back in the day on previous episodes chatted about so we just mentioned snaps has been rebranded to ZK apps and snar JS has been rebranded to 0js but let's talk about what that is yeah uh so OJs it's a typescript library and embedded DSL for writing zero knowledge enabled smart contracts based on snarks there's a fair bit packed in there but I I think it covers the main things and I'll maybe just break it down a little so it's a typescript library and so literally to get started with OJs
and writing ZK apps is mpm install o1 Labs sljs the embedded DSL part I think is is kind of important because you know like we talked about some you know projects require you to learn a new language and so you sort of one have the mental load of a new language and you're taking a bet I guess on a Project's longevity we've really gone to great efforts to stick with typescript as the the language but I think it's important to acknowledge like you still need to call out when you write zero knowledge enabled smart contract which parts of the the code are the provable parts right like which is the part that you know is is going to represent the state chain on the blockchain and so there is
a DSL for that but instead of it being some weird and wonderful thing like Brandon said it's provable do you know ad like or like you know provable do check or it's it's a very natural sort of typescript language and then yeah at the end what do you you get you get you get a SN and that's what settles to the blockchain and I think it's important to call out there's a lot of Dimensions upon which you can categorize different ZK dsls and programming languages and I could talk about it for hours so I'll have to you know force myself to to be concise um but I think one important Dimension here that makes ajs sort of different from a lot of other ZK
languages and tools these days is when you're describing a proof with OJs you're not describing a program that runs then later in a ZK VM of you know either like uh like like miden or um or risk zeros VM or or any of that you're actually describing the circuit that's the implementation detail but you're you're you're describing the the proof and so you need some DSL features as as Steve was talking about but yeah we've we've gone to Great Lengths to ensure that it's well it's as smooth as possible to to interact with and importantly the DSL being embedded is a big big thing I actually don't know what
you mean by embedded DSL what is that let's let's talk about it so a DSL is embedded embedded inside a host language if it is basically represented as a library in that host so I'll give an example uh reactjs well that's a that's a complicated example jQuery for those for those that are familiar jQuery is this old web framework from like the early 2000s jQuery is an embedded SL in JavaScript so it's a JavaScript library that it feels like a different language but it's JavaScript like it's defined in JavaScript you're writing JavaScript when you write jQuery and then in contrast an external DSL or a DSL that is not embedded inside of a host language for example is HTML so when
when you write HTML like you're in the HTML language um but it's a DSL it's a domain specific language for describing the content of a web page for example but the issue with external dsls in general and in my opinion always is that when you're focused on one specific domain you end up missing important general purpose language features that developers actually need to to do things to do anything productively so you end up having Loops conditionals functions abstraction modules all these things end up being shitty can I say that they end up up being uh annoying
very very annoying very frustrating as a developer I can't stand when I'm when I'm forced to use an external DSL I I literally struggle to think of a time in any context not just ZK literally in any context where I sa myself oh thank God I have this external DSL instead of instead of a DSL embedded in a host language that is general purpose that that can do useful things so in in this case like OJs is embedded in typescript because because these days developers like to build applications in in the web platform injs we have function abstraction we have types if structures you're able to go down to the specific lowest level pieces when you need to optimize
something but you're able to hide that you know building up like different kinds of abstractions but the most important thing about that about the way that we do it in omj and the most important thing that every DSL author should be thinking about when they're deciding to to build these kinds of systems is you want to leverage the knowledge of the developer and the hundreds of millions of maybe that's an an exaggeration but the hundreds of millions of hours that developers have put into these general purpose tools like God knows how much effort has been put into typescript uh and JavaScript and the ecosystem and and why would you throw that out it's it's it's crazy it's crazy to me everyone who's building a new language from scratch they not only
have to solve their problem of like building this ZK DSL in a in a way that's usable for developers like just making them understand ZK that's already hard but then they also need to build package managers attraction systems build systems build systems package managers did I say that it's it's it's just inevitable that you'll end up with a system that's more cumbersome to use so that's that's my rant I just say from a product point of view it comes like I agree with everything bran said it's that you want to have a great developer experience which means like yeah for us not learning a new language right that you you can use typescript that you've got all of your tools set up like you you work in Visual Studio code right so you just want to mpm install like choose
your UI framework you know react UJS right like write your ZK app start calling you know um functions on it like that's the experience you want you don't want the like yeah what's this new language and and how do I design a circuit and like these things that should be implementation details that's one thing I love about OJs as is the privacy part you know I'm sure we'll dive into sort of the magic of ZK R is being able to like have you know these private inputs and like being able to just declare that when you're writing typescript like I think that's the sort of magical developer experience that's going to actually unlock ZK to the masses cuz I you know I don't think we're there yet yeah I mean I think that's been like a big topic actually in our community recently I mean for a
while but really like recently I've seen more and more talks focus on this more and more kind of thinkers in the space highlighting it which is where are the use cases where are these builds where are these you know uses for the cool properties that zero knowledge offers but my rebuttal to that so far has been a little bit it's so hard to build these things that that level of experimentation could only be theoretic like you could imagine use cases but you couldn't actually like create usable versions of those use cases for a long while before before we go into the use cases I just want to sort of address one thing that you just said Anna about how um it's been difficult like perhaps perhaps it's been difficult to leverage this the features and I just want to
sort of say my take on this what we see a lot of is like two different really far away iterations on ZK so there's deep on the proof system side like there's all this interesting stuff with proof systems that can do all these wild and crazy things but they're so hard it's so hard to actually leverage that because you have to have you know a PhD to to Tinker with that stuff and then on other side there are some nice tools that work with ZK VMS but then the the VM sucks up all the interesting parts of the proof system and you're left with this interface where you can build that normal application that you can do on any platform yeah so what we're building is this thing in between where we take the the the Deep awesome intense proof
system stuff we we package it up in this context that let's you use it with recursion and and we take this important very important focus on building usable developer environment and we put those things together and so we hope that with these tools perhaps we'll we'll see some really interesting use cases which Steve is about to go deep into I think cool yeah so yeah you were saying Anna like you know it's this topic of like where are the use cases and especially ones that leverage privacy um you know given that's part of the magic of ZK and like I I think about this a lot and I think it's a good question because I would argue that at the moment definitely the the majority of like time and capital and coverage that's being deployed in ZK
isn't leveraging privacy it's in the verifiable compute part and so here I'm thinking you know ZK rollups basically scaling execution especially on ethereum but increasingly other types of execution as well and even we see this at o one Labs like we're working you know with optimism to provide zero knowledge proofs of their fault proof program right so even even us the sort of like ZK ogs who you know are all into the Privacy aspects as well like it's irrefutable I think that just the verifiable compute aspect of ZK is is powerful on its own even without privacy um but with privacy it it sort of then it feels like it should go from compelling and important to to magical so so where is it and I think I this is
where I agree with Brandon some of it is just that the developer experience has been so difficult to like architect an application that you know really maintains privacy and again one good thing OJs uh and you know the the private execution environment we're talking about but I I am you know I spend all day on use cases right and I I I see them coming now and like I'll share a couple if you if you want to hear um so one team I've worked with a lot is Snicker dooodle and there are web three web3 advertising platform and it's funny because You' think what like advertising no that's so web two but it's advertising in the web 3 Way which is that you can consent to being advertised to and you can consent to sharing some details about yourself and
so that could be something like my wallet regularly trades defi or I um have owned ethereum since 2015 right and those are attributes that a web three Advertiser would really want to know but instead of you know giving up your email address your phone number or being tracked all over the web you just provide a zero knowledge proof of those things and The Advertiser can verify like okay I have cryptographic proof that you know this wallet has these attributes and that's valuable enough to me to advertise to and maybe even share rewards with but it's put into a sort of pull that means that I'm not individually trackable right so it's this sort of beautiful symbiotic relationship of like I will share some
amount of data that is um useful to an Advertiser to get like something in return but I don't get tracked all over the Internet and so this is actually the Privacy part right and I I love that one that's cool although I don't really understand how you advertise to an address yeah you can air drop the address I guess but like so so the team yeah that that team they're still working out what the uh what the best like rewards sort of models are like you know is it that if you share a certain amount of data like you get sort of digital Rewards or I think that that part there's still some work to do but it's it's cool and it's yeah actually privacy with the sort of verification aspects I'll give you another one um I just like learned about this one the other day I can be a bit
skeptical of of grand claims with use cases sometimes and I'm while I'm watching ZK ml space with a lot of interest like the sort of you know that we we'll prove every influence or we'll prove every training data of like the largest models yeah like not not so that but there is a a team that's in the ZK ignite program which is mean as like Builder program called bios snar and they do drug development right and this is one of those ones where it's specific enough to be useful but like really good fit for the technology which is when you build them like a drug you want to prove that with some sort of input this molecular structure that you've developed has some attribute at the end and that's you know like whatever
whether it's defending against something attacking something like whatever it else but you could have spent hundreds of millions of dollars to develop that model and so if you're trying to sell it to a big drug company what do you do do you just hand it over and hope they don't take it do you give it to a broker and and these things exist but there are data Brokers there are platforms but it's ad hoc it's expensive it's risky and so this team have built us a like they call it a scoring function to be able to represent this molecular structure in zero knowledge to prove that when a given input comes in you get some output that gives you confidence it can have this desired effect cool yeah so they're coming I just want to say that like the Privacy use cases are coming I mean that one's very very very
like domain specific but I think the concept that it's outlining just the proving something under the hood I mean we've heard that about like code we've heard you know that's like one of the use cases we've heard a lot about being able to prove that something's happening in a private environment correctly yeah yeah that's really cool I love don't main specific ones I think those are the ones where like the technology gets its foothold right and then people start to like latch on to that and be oh how can I apply that to my industry right rather than the other way around where it's this everything can be private everything can be verifiable it's like oh what do I do with that Solutions without a problem that's felt a little bit like or tools without a place to use them like look at this cool thing it
does this I think this is where we're at right now as an industry right we're just getting into that moment where we can start to like apply these things to real world things to real world cases yeah I think in the past it was like you said Brendan and actually Steve just the fact that it was so hard to build anything like the product people tended to be the applied cryptographers who are not necessarily thinking about products as much as they're thinking about implementing efficiently and yet they were the ones coming up with products because they were the only ones who could really use the tools yeah like right now as we speak I think the door is kind of opening to a lot more product folks like yourself Steve actually like to get in and start thinking about this
stuff yeah and like an example with that Snicker doodle one part of that system is like besides what I described there's also like making sure you don't get double counting which is a common thing in ZK you want to prove that you haven't already cuz you don't know who like the individual is providing the data you need to make sure that you're not getting double submissions like a bot for example clicking on a web page right so one of the things they had to do was like a they call it a nullifier but it was basically like checking something exists in them in a Merkel tree let's just say that and they tried a couple of different Frameworks to implement that and it was sort of 30 to 100 lines in the other Frameworks three lines injs cuz it's literally there's the right data structure and you just you're just
checking and so yeah when when that's the developer experience of like you know working with abstract data types just writing code verse designing circuits by hand that you know hundreds of lines that's why I think these use cases are starting to emerge now so I want to bring it back to OJs and ZK apps and like the ZK apps platform where are we at with that can people already use it I know that there's been a lot of test Nets I sort of want to understand the state of both of those things and is there anything left to build yeah great question I'll start so OJs is in production today you can mpm install start building applications that you know generate zero knowledge proofs in
the browser uh you can even build production like offchain applications where you know apps interact peer-to-peer verifying proofs um so usable today that's the first one for ZK apps yeah that relies on the next hard Fork of the meter protocol should the community uh vote for it which we're very confident they will they're certainly excited about it yeah you asked about test Nets so there's been multiple test Nets running uh for over two years now right Brandon is that over two years test net for ZK ABS yeah but what's just changed and what's exciting is yeah the incentivized test net has just kicked off so we have a bunch of you know ecosystem Partners running validators like running tools sort of load testing
performance testing trying to break it right like this is the sort of candidate release for the ZK apps release of the Mina protocol so yeah it's a it's a it's a good time to be to be talking about it yeah the reason I actually asked this is I think last time when I talked to Izzy about this it was two years ago and on that show he was like it's coming it's coming really soon and then when I was listening to that I was like wait what came but it sounds like the test Nets did come it's just you stayed in sort of test net phase for a pretty long time time can you say why yeah I think it's safe to say we underestimated the the effort it would take to stabilize such such a large change um I I think it has been very hard for us to estimate how
long uh large pieces of work like this in the ZK space take but yes we did we did get our test net out we we had a lot of bugs we fixed a lot of bugs we we we believe we have something very stable much more stable than when we did the incentivized test net for mina main net we're in a much better place like comparatively nice but yeah you know as things go in this space it took a little longer than we expected yeah I I think too like it's it's clearly an industry thing right like most ZK platforms have sort of Taken longer they inspect and you know the the reality is too even in those two years and like the amount of economic value that blockchains secure all blockchains has increased a lot and so the the sort of level of internal
scrutiny external scrutiny like the level of confidence like I think required just goes goes up and up so I'm definitely glad the team took the time that they did I don't think anyone's annoyed that you're not yoloing into ZK apps I think it's really good if they're good if the platform is stable I do feel like you've had a bit of a head start because you were sort of deploying this stuff quite early you had people already building on it earlier than anyone else at the same time there are some other teams coming out with stuff so do you see a main net I don't even I know if I should ask but do you see a main net in the next few months or do you think it's going to remain in sort of this test net land for a little longer it's almost like how
should people approach it should they think about it like this is a great playground or should they be like this is where I could build my company this is where I should could build my company it's coming in hot like the the incentivized test netw you know is the last test net before the community will vote on hard foring in ZK apps like yeah as we discussed you talked two years ago about when the date is so like yeah is it you know this month or that month it's hard to get down to the month but if if you would ask me the question in the next few months yes like it's coming cool okay well this is very exciting um I feel like in the ZK space there's a lot of very interesting new architecture
ideas or like almost ways that ZK will enable like new environments to lock into other environments I know in the past you've done work on bridging brandan I know you and I have had a chat about like da and you know how Mina has it or not like how it's kind of understood in the Mina context there's like an increasing group of teams that are like looking at this co-processor role and I do wonder how does mina fit into that world so I I first heard about ZK processes on this show Anna uh I think it was axum describing like their ability to provide proofs of historical ethereum data you know for applications which I thought was cool um but I
thought what even was cooler was the yeah the introduction of this term the ZK co-processor and um they got me thinking and um while it's cool it's extremely limiting if you think about what co-processor like meant historically right it's offloading execution from a CPU to some other chip like so a million years ago like an ALU something optimized for for arithmetic circuits and you know that was a huge step change in CPU design to be able to like offload these things and now we see it in gpus ETC and so I think calling a co-processor like something that proves historical data is is kind of limiting whereas in the Mina context right we've just made in the OJs context we've just made every browser in the world a ZK Cod processor because that now the computing
power of every device is available to generate these proofs and it's those proofs that they're going to settle to mina so if you think about Mina as the global computer then every single browser in the world out there is a ZK processor and that's cool oh wow so when I think about sort of interesting ZK architecture Concepts that maybe haven't been explored enough especially when applied to Mina I really just keep going back to recursion recursion is at the heart of everything so I guess like we did talk about a few specific interesting use cases I think like more generally all these use case categories that people talk about with ZK like identity voting games zkl even like identity you know when you add recursion
you can compose attestations together with voting when you add recursion you get interesting forms of scaling with gaming when you add recursion you get multiplayer peer-to-peer trustless communication with sort of anti-che filters built in with zkl when you add recursion you get incremental updating of data sets if you lay out your data in recursive roof trees I'm just so excited to see you know what what people do with recursion so I think we've read reached basically the end of the episode but I do think we're in this and we've already said it a little bit before but I think we're in this really interesting moment where these new platforms are going to come online there's going to be more developers actually able to experiment if people are interested today what do they do how do they get involved yeah
and is there anything maybe you want to tell folks who might be like just on the cff of jumping in but like are still kind of nervous yeah I I start with the code Google 0js mpm install get started uh there's lots of docs lots of examples uh Super Active and super supportive Discord Community there's Q&A there's you know folks just hanging out you know you can run ideas by um there's folks from both ow and Labs there there's folks from the Mina Foundation there and yeah like if you've been intimidated maybe by the technology right and this idea of like what on Earth is ZK and like how do I write a circuit but the concept of of like decentralized apps with privacy that you can build using
typescript and all the libraries you know all the tooling you know in Visual Studio code like yeah install and and get building nice and you know there there are also programs run by by Mina Foundation to sort of help developers get started and and to give some some structured Grant programs and things like this there's there ZK ignite which is a builder program that runs in in cohorts where members of the community vote on projects to get funding so you can work through that there's a new Mina Navigators program where you can work on sort of larger projects and get Perpetual funding through that as well and and I'm sure there's others and actually there's more and more hackathons focused on CK yes I might be doing some of those as
well so hopefully we'll be seeing OV one labs and the Mina team over there uh for those future events absolutely so thank you to both of you for coming on the show and sharing with us all of this info and the updates about ZK apps and 0js and kind of where the Project's at yeah thanks so much yeah thanks for having us Anna big fan of the show so really enjoyed uh jumping on cool yeah thank you so much I want to say a big thank you to the podcast team Henrick Rachel and Tanya and to our listeners thanks for [Music] listening