ZK9: Future ZK Emerging Use Cases and Key Enablers – Brian Retford (RISC Zero)

11 Apr 2023 · 30:32

Brian Retford of RISC Zero speaks at Zero Knowledge Summit 9 in Lisbon on emerging applications for zero-knowledge proofs beyond blockchain. He surveys promising ZK use cases in privacy and verifiable computation, and outlines the advancements in proof systems and adjacent cryptography needed to make them practical at scale.

Speakers

Topics

Transcript

Uh I want to invite to the stage Brian Redford from Risk Zero. Hey folks. Hey everybody. Hey. Hi. We're going to start. So, if you could just start to be quiet. Thank you. Okay, we're going to Brian's going to share with us future ZK emerging use cases and key enablers. Welcome to the stage Brian. Let's give him a hand. Thank you. Thank you. So, I was inspired to make this talk because well, I spend a ton of time thinking about it.

And I think it's it's important to think about as we're building all of these ZK systems. You know, what is the future that we're driving towards? And how should we go about getting there? Uh for those who don't know, I'm the CEO at Risk Zero, where we are on a mission to fix the internet by maximizing the utility of ZK technology. So, what I hope people take away from this talk is that you can use cryptography to effectively make the world better. And I really want people to be inspired that, you know, ZK is not um we're not

even I don't think we're really past the start of our sort of journey to where this technology can go. Um there's a lot more to be discovered, and there's a lot more to build. So, we're going to talk a little bit about the state of ZK, current sort of current opinions about how it uh how it exists. Uh talk a little bit about why I think it's going to make the world better. And then I'm going to talk about key enablers, which are uh technologies and uh sort of capabilities that if we collectively work on will unlock more ability for ZK to uh impact the world.

And then we'll I'm going to walk through is up to three um emerging use cases uh that I think are really interesting. Okay, so the state of ZK. I interviewed not as many people as I would like um and then sent out a survey too late, but I still got a lot of interesting data from people and I would like to definitely do this in the future, but I have a bunch of uh well, I want to do it in ZK. Uh but I'll get into that maybe later. So, the first thing I asked people is what they thought the biggest opportunities uh for ZK technology were right now um that had not yet been realized.

So, the first one I would say far and away the one I heard the most was identity and I think this is uh uh obvious to most people. You know, I'm personally quite sick of logging into things with my Google account. I don't really want a Google account. I want an account that I own that nobody else you know, that I basically I'm in control of and I want to be able to design you know, the recovery mechanisms that make sense to me for my life circumstances. Um and I think there's a lot of progress being made here uh and a lot of companies and teams working on it and so I think that's really promising.

Uh there's been a ton of progress in faster and more capable proving systems. And you know, you can see in uh ZK hack the result of this and and that's that you can accomplish a lot more than you used to be able to. And if you look at the research uh that people are coming up with and just the improvements in Z prize and just techniques, this is going to keep going. So, I don't think we're anywhere close to maximum ZK performance at all. And then, I think, you know, a lot of people when they first hear about ZK, they spend a lot of time trying to wrap your head around the axle of like, what does this actually do?

Um obviously, it can be used for privacy, but it doesn't really solve as many problems as you necessarily want it to without some friends. And those friends are like MPC, FHE, or just regular HE, you know, all the sort of interesting cryptographic techniques that you can hear about on the podcast. So, disappointments. Uh ask people what they thought the, you know, most disappointing aspects of the ZK ecosystem were. And then, people said that it was uh maybe too hyped and just not as useful as uh as they imagined it would be or wanted it to be. But, I think um yeah, I think maybe

it will be if people keep keep believing. Um the bad dev ex, uh that's definitely that people highlighted that a lot, but I do think that watching, you know, ZK hack, it was pretty impressive uh how far people were able to get. But, then if you read the write-ups and part of the judging, you could see how many obstacles that people ran into that weren't really core to what they were doing um in their project. So, there's clearly a lot of room uh to go on that front. Uh fact that it's not being applied where it could be, this kind of gets into um identity and opportunities to actually, you know, like we still don't really

have good privacy-preserving blockchains that allow us to interface with the regulatory apparatuses in our country and countries in a reasonable way. But, we could maybe. Um speaking of that, people complained that the timelines are much longer than they imagined for for lots of things. This is obviously true. This talk, I think, took me much, much longer than I thought it was going to take me, and I would like to spend much more much more time on it. So, and then, you know, there was a lot of concern around the sort of siloed and non-interoperable nature of most of the tooling out there. And I know there's a lot of work going on to

uh, you know, try to form standards and things like that. And all of that's very positive. Um, the next thing I asked people was like what their wackiest application ideas were, and I was going to highlight some of those, but instead Oh. Ha. Sorry, I got ahead of myself. Um, right. I asked people uh, what they thought the most visible impact of ZK was going to be in the next 3 to 5 years. And I got like a couple Some people said nothing, and I was kind of like disappointed by that answer. But people also said nothing for two reasons, and one of them was that the amount of work, you know, the it's just not We're not there yet. There's not enough maturity to really build

something that's really going to impact the world. And then other people said cryptography, you know, shouldn't have any impact. It should just kind of exist in the background, and you shouldn't notice it. I think that's very much not true anymore, and I think it's increasingly not true as we see, you know, systems as we start building ZK identity systems, and we see how readily, you know, advanced AI can replicate us in a some, you know, facsimile form, it's it's going to be important that people understand the contours of of cryptography, I think. And it's a challenge for us to figure out how to explain these kinds of things to users.

Um, people did, in fact, think that we will have this sovereign identity system in 3 to 5 years. I think what 1.5% of Portuguese people are have world IDs now or something, so yeah. So, people are making progress. Now, it might not be the progress people want, but you know, people can build identity systems. Now, I think Okay. People might argue that blockchains are public computing infrastructure, but I actually think that it's not like blockchains are great, but there's a lot more we could be doing to increase access to computing for people around the world and ourselves.

Okay. So, ZK hack. Rather than talk about the wacky applications people told me about, I thought I would highlight some of my favorite hacks. So, one of them was just building decision trees, which are old-school ML technique. It's not deep learning, but that's still useful. Um And there are actually a lot of non-deep learning ML techniques that are interesting in ZK context. So, you can use this to build classifiers for various things.

I'll talk about where that might be useful later. Uh this is zero gravity project, which was by far the best name because it's weightless ZK ML inference. So, it actually uses um Bloom filters and maybe Hopfield networks. I'm not sure. There's a paper that I've meant to link to you down there. Um that uh that actually goes through this. I haven't read it yet. I really want to, but it's really cool. Really cool idea. So, if you have fast ZK Bloom filters, you can actually do more complex deep like neural network style inference.

Uh somebody built a Brainfuck interpreter, which if you're familiar with this language, it's pretty mind-blowing. Um and I think it's just a kind of a fun project. There are potentially, you know, interesting use cases for this like competitive coding and and other things, but it's cool that somebody was able to actually write an interpreter for a language in ZK and then basically allow people to pass programs in as strings and then get a proof that, you know, the program was executed. You can actually prove that you know a Brainfuck program that has like less than 50 greater than signs that, you know, I don't know, computes Fibonacci up to 10 cycles or something. Very fun.

Uh, people that work on interesting sharding protocols. Uh, there's a lot of applications for ZK to actually make a dent in decentralized storage. It's a very, very hard problem. ZK P2P, this has blown most people's minds. Um, is it is that the one that one? Oh, yeah. Um, so they actually used uh, it's like made a marketplace for people could choose to on or off-ramp their fiat through Venmo. So it just kind of matches people with Venmo. And And there's actually I think this is a really cool idea um, for a lot of things. And then people started playing around with building reputation markets where you can actually, you know, associate some reputation with a seller

in a way that's that's a bit uh, more transparent um, or uh, sorry, more more private than um, than, you know, Amazon or any sort of public things. So, I think, as I mentioned a bit earlier maybe, that um, that ZK is is one of the most salient technologies of this sort of current moment that humanity's in and, you know, what does ZK do? There's a lot of ways to think about it. Um, but it really does minimize the trust that we have to place in third parties uh, that might be or often are counterparties and don't necessarily

have our best interests in mind. So, I think by by removing the numbers of parties we have to trust, ZK actually enables us to trust each other more. Um and by giving us control along with some of its, you know, cryptographic friends of our information, you know, we have trust that our sort of projection to the digital world is is more under our control, which lets us do more, lets us build stronger communities, and gives us more voice in those communities.

And this is basically my pitch for let's replace Twitter with something better. Cool. So, key enablers are ways I think about capabilities of ZK systems that are very relevant to building better applications more quickly and sort of moving the space to the next level of maturity. So, I just kind of kind of lumped these into three categories. Parity, which is making ZK systems more like regular computers, flexibility, which we'll talk about, and then combining ZK with other kinds of

technologies for yeah, more enhanced uh application potential. So, I think of the sort of parity category, these are sort of slightly older slides. That's okay. Um The the most important is compute parity. This is the idea that you should be able to run any program anywhere that and have it fully utilize whatever hardware is available to it. Um and this is a big task, you know. A lot of teams are working on this. We're obviously very focused on this at Risk Zero.

Um some people think it's impossible or very far away, but it's it's really I think necessary to do a lot of the things people want to do in a reasonable amount of time. Uh so, there's also sort of parity along the tooling access, and I think this is something people are building lots of amazing tools in the crypto space and in the ZK space, but um fundamentally there's so much work that's gone into other frameworks and so many programmers that are familiar with other frameworks. It's really important that we start to let people use the programming frameworks that they're most familiar with in a ZK context if we're really going to let people build, uh you know, new applications.

Um instrumentation and debugging, just look at what people ran into at ZK Hack, and you'll realize pretty quickly that it's very opaque like what's going on in most of these computing systems. Um and it's going to be really hard to let people build advanced applications if people can't get to a place where the instrument their ability to understand what's going on while they're coding is is on par with other systems. And then uh standards not really tooling, that meant to this was going to another category, but I do think that establishing standards, especially for like proof request formats and things like this, is is going to be critical for the ability of all these different potential proving

marketplaces and proof systems to work together and for developers to actually use them rather than us continuing to stay focused on a more siloed approach. So, there's other kinds of glue that I think would be really interesting, um you know, building support for OpenID and JWTs and other kinds of connecting technologies and web oracles, as people call them, um I think really useful. And then also the ability to potentially This is like a hot take in crypto, but let people bridge um their systems to uh the sort of existing old cloud uh through zero-knowledge cryptography.

Yeah, so flexibility, this is like the ability to make trade-offs when you're considering a proof system. Many proof systems were designed with blockchain in mind and you know if you're building something for blockchain, the requirements are you know, the proof should be small uh as small as possible. You should be able to verify it very quickly. Um and it should be very secure cuz you've basically created a log of everything that's happened and uh you know the consequences of getting that wrong are quite high most of the time.

So we'll talk about the ZK PID in a little bit. A PID is a kind of control circuit. So you might imagine that we'll see why you might want a ZK PID. But um for these kind of devices, you might not need very much security. Usually have very low power. Um but you need very fast proofs a lot of the time, you know, maybe even faster than 10 milliseconds. That's not something I hear people thinking about very often. Um and then for Ethereum proving uh you know, obviously you need very high security to build a ZK L2.

However, for bidding uh doing like ZK MEV and bidding on blocks for like flashbots, how much security do you really need? Like really you just want to be able to say I would like to bid on this block and here's proof that you know, there's enough value in it for me to pay for my bid and that's it. And as long as somebody can't make a fake one of those you know, inside 12 seconds, it's basically perfectly secure for that use case. So it's entirely possible that you could uh enable more decentralized sequencing by reducing the security. You know, maybe it's less than 64 bits. I just made these numbers up.

And then ZK auto logs, which are just blockchains, basically. You want lots of security. You don't necessarily care about how much power you consume getting there etc. etc. And like for the decentralized sequencing, you know, you maybe you do care about how much power you're using because you want to make sure that people with normal GPU rigs, normal GPU rigs can actually participate. Um so, all these else proof systems tend to have, you know, maybe they support one VM, one hash function, da da da da da da, on and on.

I think it's really important that people start, you know, letting these things be parametric. And this plays into some of the standards concerns. If we actually want people to use ZK broadly. Okay, so other things that you can combine with ZK to make it fun or ZKML, tons of people into this. I think there is a lot of I got immediately excited about it because there's so many application potentials. But people like, "Eh, that's never going to happen." But I think that was like 3 months ago that people were saying that. And now there's like tons of projects building on it.

So, it's very exciting. There's a lot of stuff coming, advancements coming out. And I think there's probably a lot more room to be made on the performance side there. Um ZK databases, interesting. ZK big data, very interesting. Being able to build big pipelines using ZK technology. And then obviously, you know, there's lots of research that's been done on ZK MPC and trying to make MPC more efficient by pairing it with ZK. And MPC is fundamentally a very useful primitive for a lot of applications. ZK FHE doesn't exist yet, sadly. One hackathon project almost got there.

Um but it will soon. Uh you know, it might not be useful for very complex computations in particular time frames, but it will actually, you know, be a thing that exists. And witness encryption is just really cool. Okay. So, talking about some emerging use cases. I had to pick three. I don't know if I'll get through all three. Um but this one uh Well, so the ones I'm going to talk about are decentralized control planes, uh community compute, and then some authentic identity-related use cases.

So, for decentralized control planes, we're going to start there. Like, what the heck am I talking about? Okay, there's this paper. Everyone should read it. It's only three pages long. It's very accessible. It's called zero-knowledge proof-based approach for verifying the computational integrity of power grids. Power grid controls, sorry. So, what the heck does this mean? Um Well, so this is what This is actually put out by the National Renewable Energy Laboratory, if you look. And the problem with renewables, or one of the problems, is that you you've gone from a system

where you had like four power plants for the West Coast of the United States, or whatever I mean. There's way more than that, but there's very centralized power generation points. And when you move to renewables, you distribute the power generation points all over the place. Now, this can cause problems because the power grid relies on getting accurate information from devices, especially production devices, at pretty much every level in order to not break and/or like catastrophically fail.

So, you have these individual device levels here at the bottom, and they basically have like ZK PID controllers on them and or PID controllers. They run some control algorithm that says, "Okay, here's, you know, my voltage variance." I don't know exactly all the data in them. Uh and then they report that up to this next level, which makes other decisions and then reports derived data up to the next level, which makes even more complicated decisions and then reports it up to the next level. So, this is a pretty common you know, you can imagine self-driving cars also work the same way.

Um you know, any kind of uh autonomous systems tend to have architectures similar to this. So, Okay, if you you know, say the world transitions to renewables, that would be great um for a lot of reasons, uh but then Oh, that slide's not in this version. It's okay. I'll try to explain it. Um Okay, so the threat model for this system, like why would we care about using ZK in this system? Well, if say you were a nation-state level actor and you were really interested in making somebody's power grid vulnerable to a cyber attack, you might think about uh

covertly replacing all of the software at at the sort of edge using malicious over-the-air updates. So, this is a software supply chain problem. Um and then get those power sensors to when you want them to start lying about what's happening and then melt down the power grid. Like difficult but possible. So, the people at NREL wrote this paper about trying to use ZK to stop solve this problem. Um Is it possible? Probably. We're hopefully going to be doing some work with them to figure that out. But, what do you really need from these enabling technologies to make a system like this work.

So, you probably need to run C and C++ because uh there's a bunch of like proprietary algorithms written by Honeywell and Siemens, and maybe they'll port them to Sercom and other frameworks, but may probably not. Probably need to run on any OS and any hardware, and you need provable compilation, which is pretty wacky. Um and that's the idea that if you take known source source code like these highly audited and approved algorithms, which are often also, as I said, proprietary and somewhat private, developed by Honeywell, you need to know that the result of those is actually running on your controllers at the bottom level.

So, first thing you have to do is actually take that source code, compile it in a ZK system, and produce proof that the binary that you have was produced from the source code that you expect it to to come from. Um and then you need to actually run that in a ZK context, um and produce proofs that uh the the readings coming from my power generation device are running the algorithm that I that you expect them to. That way the level So, each progressive level of the power grid in this example can basically trust the information that's coming from the devices in the network at scale. It's still possible for somebody to go mess with one solar controller or mess with

one battery, but that's not enough to melt down the entire power grid. The problem is if you can replace the software and um and massively kind of change the behavior. So uh so you need uh to be able to run these proofs on these little devices very fast, uh every couple milliseconds. However, you don't really care. So, if you have to report a new power signal every 10 milliseconds, um if it takes you 2 minutes to lie about it, then that's what, like 600 reporting intervals you'd or 6,000 reporting intervals you'd be missing to make one um fake one. So, you could lower the security of your ZK proof system a lot

in order to uh sort of achieve the desired outcome because uh the rest of the grid like if you can only fake one out of every 6,000 signals, you're probably not going to melt down like a complex uh control system. Um on the right-hand side, that's also from the wrong side. Um so, that you don't really need any of uh any of those things for this. Um How am I doing on time? Cool. I'll just kind of breeze through this one. Uh this is the idea community compute that uh everybody uh in a neighborhood, country, worldwide, whatever could install an agent on their phone or just decide to participate in

some program where they're part of a cloud platform. Like I'm going to just volunteer one computer to be part of a cloud platform and as a result, everybody gets access to free cloud computing, free or or low cost. Um so, the things you can do with this are like build games with your friends. I was talking to Jim Barry the other day and he's like, "I love building games, but it's impossible to deploy things on AWS." Not impossible, but it's hard, right? You have to hire a devops engineer and it really reduces access to the fun parts of computing. Um also, it's really hard to run like public goods. Say you wanted to build uh like Nextdoor and have it not be completely toxic. You would have to like it can shift to that sort of economic incentive point for

uh for a lot of these kinds of projects um because they don't need to sell you in order to make money and they don't need to continually engage you in order to make money because there's no like money necessarily to be made in the app and if you don't need money to run the infrastructure, then it can all sort of work. So, like the most important thing you need here is like a trivial proving market. Um so, you kind of need a blockchain. You basically need enough of a blockchain to be able to like keep track of who is uh providing compute, who's consuming compute. It doesn't need to be super precise. And um and then you need the ability to run

arbitrary code safely, which is what ZK is definitely good at if you have compute parity. Um and then you also need to be able to prevent abuse, which is people deciding to use all the computing resources for whatever reason. Uh I don't know, ad spamming Google, you know. Um and then you also want users to be able to kind of opt in to uh what kind of content they're willing to allow on their network and or um sort of preemptively prevent it from ending up in a, you know, on a message board. So, in order to really get to a place where we could build something like this, um yeah, you need to be able to run almost any code. Uh you probably need to support JavaScript in ZK. Uh you need to

be able to run on mobile and in a browser. You definitely need some kind of way to easily bridge your identity. And you probably do also want like variable security. And you want provers that maybe, you know, people can configure to not use every single thread on your machine because while you're it's it's hard to play a game with your friends while your entire computer is being used to produce ZK proofs for other people. So, um yeah. And then obviously, you need ZKML to do this kind of content filtering and um abuse mitigation. Like the decision tree models are used in uh like major public clouds to to do this kind of uh analysis and uh abuse prevention.

Uh and they wouldn't be needed in this scenario too. Um yeah. So, that's very interesting. So, I'll I'll just end with this kind of wacky idea I had, which is called a pop-up, which is a proof proof of personhood app. Um, and it's like I figure if people can make orbs that scan retinas and have all of this kind of verified like chain of technology, um, you could make like a very like obviously small room that has nothing in it except for a ZK computer and encased in polycarbonite and using strong identity, you could actually like prove that you're a person, go into this tiny facility and say record a podcast, and have this

facility produce proof that, you know, you were actually in this thing while you were recording the podcast, and then possibly sort of regain some control over, uh, you know, who people associate with digital content and have it be associated strongly and cryptographically with yourself rather than, um, you know, the AI-generated version of yourself. So, anyway, speaking of hype, the Gartner says we're, uh, it's, uh, we're we're near the peak of inflated expectations. I, uh, I'm hoping we're farther farther down there. Um, we'll see. We'll see.

Cool. I think that's, yeah, all I have and uh Bonzai is the computing project we're working on. It's, uh, a network that can run ZK on, uh, on any blockchain, uh, fully generically, and the team's all out there and happy to talk about it. Thank you.