New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

zkLLVM over a Proof Market with =nil; Foundation

Ethereum DenverMon, Oct 9, 2023, 12:00 AM

zkLLVM over a Proof Market with =nil; Foundation

Transcript

foreign guys hey I'll try not to annoy it that much but let's talk about let's just talk about a little bit more about like ZK stuff I mean I know everybody hates that already come on um so basically a lot of there's a lot of conversations about this stuff and why it is uh what can be done what can still be done knew about it well around East so what I'm talking about what I'm going to be talking about is about to prove something how to compress something into with like rust or like whatever it's like for example have you ever wondered how to write stuff for ease in Rust I mean nothing solidity not in something but example two approve some huge stuff implemented in Rust to eat to execute it underneath so that's what it is about so you know just a little bit of financial what is this about okay well basically trust the scales this year oh so we're actually talking about like fitting a lot of competitions into ease well dexes for example like you know ml applications whatever they're all requested so that requires like a lot of data in the computations and continuous competitions and data storage e-cellular especially expensive so pretty obvious so basically that's what we need a way to compress those competitions and those data with proofs into easy that's basically what for example uh well just an example of what's not possible Right even retrieving some particular data from these like historical data for example let's say you need a history I don't know validators balances like from the very beginning uh it's gonna cost you like a fortune just to retrieve that single thing so another example like ZK Bridges zika bridges are well they require a lot of like they're quite a lot of data to be compressed to ease for example like I don't know so long for example a lot of data and it's hard to fit it in ease so we need a proof-based compression again same thing with LOL Ops for example start and roll up what they do is they actually compress the data how they compress the computations they do on their site to eat with like stars or like so again one more example of why you need this that's pretty obvious you know uh it all goes down to the necessity of complex proofs and uh for example like again a fine in circuit defining circuits for those boosts are is hard I mean folks are spending like millions in dollars and a lot of time to build circuits they need for example like scroll folds they have spent one and a half year to build the roll up stuff stock worth spent three years to build their roll up and um well we spent eight months building for example like Solana too easy so that's quite a lot and um well also like generating proofs expensive because well nobody wants to do that on their own so there are either like hardware folks doing that special folks or they could be a different option for this is all these issues um there might be a way and we kind of experimented on the way of getting mainstream languages to be able to be proven to eat they don't like not like to be purring to eat via ZK VMS but you know actually proven to eat efficiently by generating circuits to it so uh that's actually what we did let me introduce the compiler and that's uh that's the whole point of it so instead of like writing custom circuits or like resting costs or like writing custom libraries you're experiencing with the way to write through the logic for example I don't know ml model OKAY from pie torch or I don't know like some gaming like do for example have you ever wondered like playing doom on ease that's the way so and uh to ease out the proof generation of this because that's obviously pretty a lot of heavy computations so to ease out we've introduced the way to Outsource the script generation to the market of approvers built around Eid something like you know this whole thing resulted into something like ZK coprocessor that's what it is if the heavy competitions so with heavy computations need to be proven or need or heavy computations needs to be done around so that's what we that's what we figured for ourselves and that's what I just came to show so uh what is that being I mean how is that being done in particular I mean the compiler has done over the plankish proof system like with the of the well let's say this way with with parameters adjustable to a particular use case for example like if you're for example Bridges which is they need like verification as cheap as possible because they need all they need to provide proofs particularly like other protocol as often as possible and to provide them as often as possible so that means verification as small as possible so that's adjustable and um well the choice of the arithmetization is always pretty obvious as well so uh how does that well I would suppose as like I don't think we're going to have time to do anything like actual coding so let's just skip it the point of this thing is just to show that uh instead of like introducing custom language or like custom compiler or anything like this we've just introduced the replacement for good old silang and rust C and everything people already use and it's just you know it was like we realized that might be you know Plug and Play replacement could be a way to do things uh well for example just a little example for example a little example of things pretty heavy a lot like pretty heavy it's not heavy okay it's just an example of a CPP code of how things can be implemented or proven to eat well mostly real cpv that's going to work and uh that can actually be approved like just some arithmetics example that's what it is let's try uh more let's try a more complicated proof for example if you're building a roll-up storage Groove I mean just like Star code does for example they need a storage proof as well they actually approved so they proved the Oracle root of their database to eat so let's just write this one and uh we'll just we're just defining the CPP function and we're just defining like a set of hashes which is why I didn't like functions to Hash that and uh we're returning the vocal root and voila well that's kind of the whole thing about Roll-Ups right now I mean like that is like we have just built uh storage proof which is like same thing for example by Roll-Ups so and it's in CPP or same thing can be done in rust or like any other language ldm supports so that's the idea of it and um yeah well I don't know if anyone's going to do that but anyway case experiment I out um there are also by the way I don't know whoever's interested there are several repos with funny examples in there for example there is an example with um with doom people to eat I'm gonna release this demon like in something about a month so you know proving the speed run to do this but proving the Doom speed run to ease gonna be the case you know finally 3D games on ethereum um well basically uh all of that logic is pretty heavy so to ease out the generation of it so you wouldn't need to like all by yourself on your laptop because it's gonna take forever all of that food generation is kind of deep and it's Troublesome so to mitigate that we've done some kind of Open Marketplace for generation facilities for proof generation powers for proof generation purple generator that's what it is and uh um well it's actually that's what it is you just like if you if you don't have enough Powers if you don't have enough like if enough if you don't have enough computational powers to generate the proof yourself you can just like bulks generate it they will put it to ease instead of yeah and that will result into you having either historical data of ease like with right inside your evm app or some heavy computational load like game or like roll up or like ZK Bridge or like this right inside your review app and uh well basically that's what it is uh how does that work well pretty easy as I said it's just basically a basically a proof application proof proof requesting application like yeah Bridge roll up whatever HML stuff requests they prove to be you know just order the proof proof producer picks the order just does it puts it on a proof Market proof Market verifies it that it's all good that it's valid so there would be no oh well sorry okay basically how to do how to do how to do any again I don't think we're gonna have time to do like coding but the way the way it works is that this producer it has like a separate tool chain for it for example like proof requester it uses like zkl VM compiler for example he has some cross-defined Logic for whatever like something huge in CPP for example I don't know the compiler like lean three for example lovers of a formal verification I love the fact that leads me to that um so basically a proof generator for this and all the interview application well they're supposed to just get so the tool chain to set up a tool chain to deploy the to deploy the circuit as you can see is uh like you know circuit is in uh pretty usual llvm bytecode format so it's that easy yeah and then circuit which is provided is supposed to be pushed not going to be computed then it's get then it gets computed and gets deployed to the address you put into the you put into the script so it's like again all the I don't know like if anybody wants if anybody wants to check it but that's that is the tool chain those who are willing to set up the proof generator tool chain you know just you know to get up the generator and to start generating proof for the applications who need it that's what it is and uh yeah I mean what's the what's the thing uh I mean just a little bit of a summary right is basically what that gives to game applications well first of all yes data retrieval if applications need for example um example again historical data or like some complicated data from from something that happened long ago or statistics like a completed statistics of everything that happened from some time no uh that's that gives about like 10 times gas reduction in comparison to what you to what you would have been required to pay if you were on that without the proof based approach that's basically the way that's basically the way to cheapen the apps execution that's the first thing the second thing is well you don't need to like write any custom language or anything like this to do this it's like I like fighting for that so that's what it is and this and the third thing is basically you don't need to compete that yourself you can just upload it to the proof market and let those who have computational powers for that like I don't know some mad fellas with gpus okay to compute that for you and to deploy it to ethoria without the needs of trust them so basically that's that was pretty short okay well okay what are the limitations of such an approach obviously there are limitations of such an approach and well not everything is possible is possible to be proven to you like directly some of the things has to be some of the things have they still have to be proven to something like different in terms of to some L2 or something like this and then additional compression has to be done so that means like directly what directly limits the amount of logic which can be proven to eat is well first of all block space well we're all just it's like what all ZK folks do is we're just fighting for Block Base we're just fighting for Block space that's what we're fighting for and the better compression is the the less the fight is I'm saying and uh so but again once you fill all the block space with the proof size and this is this should be something about I don't know like megabyte it's like a megabyte proof it would be something like 70 billion column multiplication so that's quite a lot so so well the threshold is quite is quite High possible to fit 70 billion column applications so these are the limitations the second limitation is the call data limitations which introduce um which are being introduced obviously by like the gas limit by the protocol gas limit so that means um that means the processing proof of something like five or like 700 kilobytes is the limit five or like 700 kilobytes means something about it means something like the ability to prove like 50 billion scalable applications to eat that's the upper limit of what can be proven that's the upper limit of what can be computed so it's quite large again as an example uh it's like within the repos I had like within the repos you can find uh examples of how Doom Speed Run can be proven to eat and uh well it's fine like that's enough you want to eat yeah so that's what it is um we'll have some time for questions I don't know if that makes sense all right questions and I think [Music]

Automatic transcript — names and jargon may be misspelled.