Jolt, zkVMs, and speeding up blockchain | Justin Thaler, a16z crypto research
9 Apr 2024 · 5:50
Justin Thaler, a research partner at a16z crypto, explains Jolt, the firm's open source zkVM implementation that runs thirty to sixty percent faster than prior state of the art zero-knowledge virtual machines. He describes the new design paradigm behind Jolt, why it is easier for developers to extend and audit, and what faster zkVMs mean for verifying blockchain computation.
Speakers
Topics
Transcript
jolt is a is a is a new um ZK VM uh which is a way for a prover to prove that it correctly ran a computer program uh what does a computer program do uh when expressed in know virtual machine abstraction that's what VM stands for it repeatedly runs the fetch deced execute cycle of a CPU so effectively what jolt is is a snark for the prover to prove that it correctly ran fetch decode execute over and over and over and over and over again and the CPU that jolt uses is something called the risk 5 CPU which is a a CPU
developed from the computer architecture Community um which other projects like like Risk zero um have have also targeted uh using a a CPU from out you know a pre-existing CPU has many many important benefits jolt matters because ZK VMS uh are have have massive benefits for developer friendliness you know so like people don't have to know anything about snarks or circuits or constraint systems to invoke the the snark um you know benefits for formal verification um you know pushes you if you write a new computer program for a
cryptographic application um you know if the if the zkm has has been fully verified as you know no bugs in the implementation well now the only formal verification you have to do for your new computer program is just verify that the computer program itself is correct and if the developer writes that computer program in Rust well we should have very good tools to verify rest programs um so it sort of pushes any new formal verification work just into verifying rest programs rather than verifying circuits or constraints or something nasty like that which is the way you know what we would have to do with uh today's snarks typically so that's the important of zvm in general and jolt is essentially just a more performative um zkm implementation the prover is faster and on top of the
prover being faster it's much much easier if if developers want to alter the VM so add instruction to the instruction set or something of the of the CPU it's much easier to do that um you know it's it still requires expertise and it's it's dangerous um but it's not as complicated as writing a circuit or constraint system for the new instructions um you basically specify the way um the new instruction gets decomposed you know to apply it to a big input you break the you have to be able to break the big input up into chunks and um you know process each chunk separately and glue the results together so you just uh describe that decomposition and recomposition procedure um to add new instructions to
the the VM um that jol gets applied to so that's why jolt is important I think it's very clear that you know zkm for existing um instruction sets that were not designed by the snark Community is a very powerful thing um just in terms of developer experience and tooling and usability because the you know a a programmer can just write a a rust program that you know takes as input a purported witness and checks it's correct you know that uh a bunch of digital signatures authorizing blockchain transactions verifies the signatures or something like that um there's existing you know compilers that will turn that rust program into risk 5
code and that is exactly what gets ingested by something like Joel and um a project called risk zero deserves an extraordinary amount of credit for for recognizing a lot of these benefits um that you know they they were the first snark for for risk five um the benefits of jolt over something like Risk zero and now there's a there's another um zkm for risk 5 Cod sp1 uh largely lie in performance it's just it's just faster uh because it uses these uh like the Su protocol in a way that um just makes the appr faster and you know with further improvements still to come um and you know it's also you know easier to sort of add more instruction to the instruction set and things like that
with jolt because of the way we did everything with uh with lookups uh you know what what's called lookup arguments um so the the view is that the zvm um are the way to sort of democratize ZK you know so so people can use ZK uh use snarks um without knowing anything whatsoever about like what a SN how a snark Works they don't have to learn a new programming language much less you know constraint systems and circuits and awful things like that um the the the endless problem with zvm is is performance it's just you know for all of that usability you pay an extraordinary price in terms of pro performance and so I think that um jolt is better today you know sort of somewhat modestly better than the existing ZK VMS but I think there's a
there's a lot more to come and I think that that will cause zvm to cross a threshold where while you do pay an enormous performance price I think it'll be low enough that a lot of applications it's okay and then in uh you know you combine them with the right pre-compiled that have all been carefully formally verified for correctness and you know you'll bring in even more applications and so on so that's that's the view of of jolt again we're we're sort of building on the vision of uh of other you know we're not the first ckvm for risk 5 but I think that's an incredibly powerful thing um in general