ZK13: Vibe coding ZK Apps with Ligetron ZK Platform - Muthu Venkitasubramaniam

22 Jul 2025 · 27:15

Ligero co-founder and CEO Muthu Venkitasubramaniam introduces the Ligetron zkVM at Zero Knowledge Summit 13 in Toronto, a memory-efficient proving system that runs entirely client-side, even in a mobile browser. He demonstrates building peer-to-peer games and anonymous digital-identity credentials on the WASM-based platform, and argues its lightweight zkValidium approach makes private identity proofs and decentralized KYC/AML compliance practical without relying on external provers.

Speakers

Topics

Transcript

[Music] So let me start. I'm the CEO and co-founder of uh uh Lihero. I also am an associate professor at Georgetown University currently on leave. This is some of the work that we are doing at our company uh Lihiro. Liatron is the new version of Lihero which was published last year in uh it e security and privacy. It's essentially the same blueprint as the Lihiro system that was published back in 2017 um except that it is memory efficient.

It can run directly from from the browser. But first I want to walk back through sort of a biased view of history. So that's actually my dad. He's sitting on a punch card system while he was working at Tata Institute of Fundamental Research uh in Bombay. He was computing something on weather data uh at TFR. He used to tell me that these punch card system you need a lot of discipline. You you write your program, you punch it in the card, you give it in the morning, you get the results in the evening, you don't know if it was right, wrong, you can't change it until the next day. And to me this u not to um you know not to u it's similar to like groth 16 and circom

with trusted setups. It's somewhat the most used technology we have but once you set up the circuit in your trusted setup changing it is uh uh is heavy. My dad uh he taught me everything of like you know he taught me programming and he passed away in CO uh with COVID in 2021. But the first machine I used was uh the IBM PC XD machine. It really looked like that. You got to take a 5 and a quarter floppy disc with uh the operating system DOSs, plug it in, wait for it to boot. Uh actually the first programming language I learned was uh cobalt and I also learned basic uh um

which is a programming language uh on this uh on this system and you know we all still you know there are many parts like the financial system as well as the government as I hear still use uh uh cobalt again just tracing through history you know we started off with punch cards then came cobalt and forotron which I want to say has actually survived through time quite a it then we got you know the more popular which is I mean still popular the C C++ we got the Unix operating system PCs etc and then object-oriented programming I should also tell you like my dad taught me small talk which was one of the first object-oriented programming language

which I think was invented in the uh in the 80s but then now you know Golang rust this is very popular and today I want to talk about the next evolution of this wipe coding. So what is wipe coding and I actually didn't know this uh until a few a few months back. Uh this is Aravan Narayan. He was my high school classmate. He's a professor at Princeton University. Um he started out as a theoretician. Now he you know does a lot about AI uh demystifying what can cannot be done uh with with AI. And I saw this post he did on LinkedIn where he said he could code web apps in minutes. He could build an

app for his uh uh for his kid to teach fractions etc. In fact, he even had the app linked on uh in the LinkedIn. And I went and I looked at it. It was it was a simple app. It was really really good. Then I heard of this term VIP coding which was apparently coined by Andre Karpathi. I have huge respect for him. come and ask me later like you know in the industry. He said he could start coding like applications without touching the keyboard just talking to things talking to your LLM generating code then just deploying this you just forget that code even exists.

So let me show you a video of me trying of the first apps that I did using uh this kind of wipe codec. Let me talk to you about the first app I created after seeing my friend's blog post for building use and throw apps for his kid. I was like I'm going to do the same for my 5-year-old daughter who is learning addition and subtraction. Here is a simple app. You can practice addition. Uh you can give your answer. It counts score. uh to keep my 5-year-old daughter engaged who is obsessed with Frozen, I added a voice where, you know, when you give the right answer, it it uses Elsa or Anna's voice to say yes or no. And if you give the wrong answer, it's going to say uh

>> no, >> no. Once I did addition, doing subtraction was easy. I wanted to say, you know, setting up the first one took about 1 to two hours. you know I had to set up the base uh post it on GitHub pages but once that was done the subtraction for example took literally 10 to 15 minutes after I did this I was like okay what's next so getting into zero knowledge here is a simple extension of the app I did this does u you know addition modulo you know primes here is the simple sha generator uh it just generates the sha 256 of any text that's typed uh in hex.

Once you have a hash, you can build Merkel trees. Here is a nice visualization of uh generating a Merkel tree on the fly. As you can see here, um as I type, the root gets updated. Furthermore, you also see the path from the leaf to the root uh that gets uh updated. I did all of this uh in cloud. So, I thought okay, why not try doing uh something in chat GPD. So here I'm doing another Merkel tree visualization. Again I give u the data elements and the leaves of a Merkel tree. Um and generate here is the Merkel tree with this being the root. Uh I added an

extra feature here where when I click a leaf uh it gives me the decommitment. If you recall, this is what is needed when I want to prove to you that a certain element sits at the leaf of a merkel tree. I have to give you the siblings along the path from the leaf to the root and that gets displayed over here. This can become really a very easy teaching tool for anyone uh you know to generate these apps for every day for your lectures. Once I did Merkel trace the next what is used in uh Lihiro is pack secret sharing. Uh most of you would call this read Solomon encoding. You give the secrets. It pads with randomness because it needs to be secret sharing generates the coefficients the

evaluation and then I pick from the evaluation points outside of the domain used for the secrets and that becomes the encoded. That's it. And you know once I got going I was um uh it was just easy to build uh the next app. You haven't tried VIP coding. I will tell you like this isn't uh hard. I used to code a lot when I was in like you know high school a little bit like in uh in my undergrad of course. uh but then for a long time I was a theoretician but then I got back to this it's like really empowering like they give you really a base for launching these apps and then you can just ask it to generate an app and like you can deploy it on a GitHub

page um like really in a matter of minutes once the first time the setup will take time but then after that it's uh um it's pretty uh it's pretty fast. So let me switch gear a little bit from VIP coding why we are here. We are here to do um to talk about zero knowledge proof systems. So I'm going to talk a little bit about what is knowledge. Now knowledge is a question as old as uh humanity and you know it's been pursued in philosophy under the branch of epistemology also neuroscience, psychology, economics all of this care about knowledge. More recently, I want to say the last couple of decades, um,

you want to capture knowledge for artificial intelligence or lack thereof for cryptography. I want to talk about the people who invented zero knowledge systems. Um, Sylvio Mikalli and Shafi Goldwaser. They did win the Turing Award for laying the foundations of modern cryptography, but also for zero knowledge proofs. And it's important that I mean to capture even the security definition of zero knowledge takes a lot of work. And I have one slide. This is probably the most technical slide. Um I have the the foundations of knowledge itself was first done in something called

probabilistic encryption. To define encryption to define what knowledge an adversary gains from looking at a cipher text was there in these works. And then of course it was refined in their work of zero knowledge proof systems. And this is really the essence of what they did. They did not defi they defined zero knowledge without actually defining it. This is the best I can actually really tell you about this. The way they capture knowledge is not that the data you have. It is about what you can feasibly compute from the data you have. And really feasibly compute has two things. You're bounded by a

computer or a supercomputer or like you know uh tons of 4090 but you know you can execute this for bounded time and you have randomness really these are the things that you have and what you can gain from computation on data using these resources is knowledge. things that you can't do in this is considered hidden from the adversary. So coming back to zero knowledge, it's about generating a proof to the verifier that it learns no additional knowledge beyond the input statement or the public inputs that you're giving to the verifier. And really what this means is that the verifier can learn nothing more than

what it can compute from this input statement that you give it. And I think this is important. I mean I am the biggest fan of zero knowledge proof systems but you also have to understand what is really the privacy it gives and especially when we want to deploy this in like privacy focused applications this definition in mind is important for example if I prove to you today that you know my you know I have a commitment of my salary etc I prove to you that this is my salary is at most $100,000 and then a few days later I come and prove to you hey my salary is uh more than I don't know $99,000.

Now really combining these two proofs there was nothing to do. Even if you use the perfect zero knowledge system, you all have a pretty accurate version of what my uh salary is. So you you need to know what privacy is guaranteed by zero knowledge proof system when you deploy it in the open. Okay, that's it with me preaching about zero knowledge. This is a little bit outdated version of the ZK landscape. Maybe you should look at ZK mesh. It has more the latest version the latest list of all of these.

Uh don't squint your eyes looking for your project. Even Lihiro is not listed over here. Um we have a lot we have a lot of ef a lot of investment a lot of protocols being developed in this landscape. But I kind of want to say that this promise of ZK for privacy is you know still a promise. It's still a niche. And here I have a list of reasons you may or may not accept this. Maybe we don't care about privacy. And I'm sure a lot of you have faced this running zero knowledge companies. You go talk to people, they're like, "Yes, I care about privacy, but that's not the first thing I'm going to do for my stable coin. That's not the first thing I'm going to do for my decks."

The PMF, the real PMF is probably not yet uh identified. and Starks and Starkware have done a tremendous work in this industry like bringing really zero knowledge to the masses and you know pretty honest like most of the implementations are Starks and you know um they are not zero knowledge more than I would say 90% of these things uh don't come to the formal definition of zero knowledge not that they are insecure they aren't but I want to say Starks themselves are not and there was a beautiful uh work and presentation by Olrich in ZK proof 7.

They are really working hard. It's a lot of pain but they're working to make Starks uh ZK and maybe DSL is a barrier for adoption. We have all these languages CIRCOM, Noah, KO etc. Is it that we are not able to get developers in this space like they have to there is this threshold of learning a new language and the last point is also true most of the performant zero knowledge systems we have today requires heavy hardware a lot of GPUs a lot of memory so is this what is stopping us from making you know zk for privacy so just going back to this and um take

whatever I'm saying with a grain of salt. It's just like my view of these things. I look at R1CS and you know as like sort of punch card systems and CIRCOM like improving this to languages and you know KO doing the next generation and now we have ZKVMs you know we can um take a rust program and uh be able to pro generate a zero knowledge proof of this uh uh of what this program is uh computing. And once you think right like I mean if I can do ZKVMs I should be able to do WIPE coding. I mean what is WIP coding an LLM generating a code I should be able to plug it into one of these

systems and and do it. And this is what I saw after I did all these wipe coding examples. I was like this is my obvious next step. But before I go into showing how like I have a video of me wipe coding for u zero knowledge I want to talk a little bit about liatron system. So the liatron system as I mentioned to you at the beginning is it follows the liarero blueprint that was done in 2017 but it is the only memory efficient hashbased zero knowledge system today. I want to u like clarify or qualify what I mean by memory efficient. It means that like for example our we are a zk VM with

the underlying VM being web assembly. We want our prover system to use roughly the same memory. If I had run the underlying web assembly program which would which would be like if you know the web assembly semantics it would be the maximum stack height that it would need and the memory RAM that it uh uses and this is achieved by uh the liatron zero knowledge system. Liatron is zero knowledge by default. I know I stressed this point but u there isn't a knob. It's not a snark. It's like it is a zk snark.

And finally, you know, once we got this memory efficient version, we wanted the capability of people to build applications and deploy it anywhere. Anyone should be able to run it from their cell phone, from their laptop. And we also wanted it to be scalable. Had we implemented our current version with CUDA, I'm sure we would have gotten more performance. But this is not going to be useful on a cell phone. So we kind of restricted ourselves and said we are going to do this on web GPUs so that anyone should be able to run it from their phone or from their laptop. And for that matter even Raspberry Pies actually have uh GPUs today.

And this uh was a really surprising announcement. Well, okay, I shouldn't say surprising, but you know, this was a announcement uh recently that Google adopted zero knowledge systems in their wallet. And really what they're doing is you have these things called mobile drivers license that are issued in like 11 states in the in the United States and Europe is moving to the EU ID u similarly to uh offer credentials to uh their citizens. You can put these digital credentials, you can, you know, tie it to your cell phone and then you can prove to anyone thinks about your credentials in zero knowledge and really like you know the application we talk about going into a bar and saying that you were 18 you can

literally do it with this project. What was nice is that the team behind building this Google wallet ZK you know tried different system and they chose a combination of the Lihiro system and the GKR system to get something that would run from a phone. So uh this actually I mean they have tested this it runs in a couple of seconds. Uh it runs from an Android phone. I want to say that on our platform we'd be able to implement this and you'd be able to run it from a browser not just from Android but from uh from anywhere and they used the work that was published in 2017. Most of their work was based on it. They are not

quite memory efficient but the circuit are small enough that they would run from uh a small device. But our system we would be able to prove much more complex statements about your identity. maybe multiple identities through our platform. All right, so enough of all of this. Let's wipe code with Liatron. I have maybe a 5 minute video. I apologize. I next time maybe I'll try to insist on doing a live demo, but uh bear with me with this uh video.

Let's wipe code with Lihero. I want to walk you through our platform just to see how you can uh run applications from our platform. Recall that on our platform you can uh build and deploy completely from within the browser. No tedious GitHub cloning etc. You can write your C program compile uh deploy. Go to platform.ligatron.com. Sign in with your Google credentials. And now you will enter a marketplace where people have developed some applications. I'm going to pick one of them. Edit distance. You can look at the source code to do uh edit distance computation. Uh this program is showing that the edit distance between the first two strings are small where the first

one is private. It generate it's generated the proof. Now you can send this proof uh verify this proof on this browser on another device. That's it. I'm going to show you later how to create projects etc. But let's start coding. Here's CH GPD. I'm going to give it some basic instructions on some function headers, how to do SHA, how to do assertions, etc. And then I'll be ready to give its uh um uh instructions to generate the first program we want to uh prove in zero knowledge.

All right, here's my instruction. Write a C program that takes in three input strings from command line. The second and third inputs are public. The program computes the edit distance between the first two strings and asserts the distance is less than 10. It checks if the SH 256 of the first input is the third input. All right. Now let's wait for it to uh create a program. All right, here it's generating the code

for edit distance. Checking the hash and done. Now I'm going to copy this. Let's go to projects. I'm going to create a new project. I'm going to call it edit distance wing. I've copied the program. Copy it down here. Compile. It's generate a web assembly file which is our intermediate representation. We are a ZKVM. And now I need to give it uh three inputs. um you know I'm going to give it um three uh uh I'm going to mark the first

one is private just like before uh I need the sha of this so I'm just going to use online sha generator to get the sha I need to mark that the third one is in hexadimal and prove this circuit has about 20 million kits. It has generated it in 6 seconds. Done. So let's do another program.

Just one more. Write a C program that takes two integers n and m as input from command line where the second input is public. It asserts that the nth Fibonacci number is m where Fibonacci is computed using an iterative algorithm. Right? Let's see. I'm going to copy this program. Let's go

here. Uh we can use the same uh uh codebase. I'm just going to do that. I'm going to uh copy the new one. I'm going to hit compile. And now this new program has only two inputs. So it's going to be 20. I think the 20th Fibonacci number is 6765. Uh I need to mention that these two are integers. And let's hit prove. That's it. And let me try a wrong number and see what happens. I get the answer is false. you know you need to make sure that the zero knowledge is

>> you can go to a marketplace many of them actually I did you know try to generate it using um using chat GPD battleship being one of them you know it it checks if the placement of your ships uh is correct as well as whether it's a hit or a miss uh I've also tried a little bit with um some um uh reg x thanks >> all right thanks everyone for your patience to to you know for having watched this um I want to say that this is really within the realm of what we can do. We can make this a co-pilot where you could just directly give instructions uh uh to our platform to generate this code. Uh I think it's not hard to see uh we could even do the

Google wallet identity thing by saying hey you need to parse an MDL which is an ISO format and verify an ECDSA signature and check that my age is greater than 18. This should be really I mean possible to do it on our platform. The battleship is another example. I couldn't uh get that on the video but this is I want to tell you this is what I did with battleship. I went first I bcoded I generated an app to play battleship. I'm probably dating myself. Many of you probably didn't play battleship but you know I could create an app to play battleship you know by just opening two browser pages and doing this like in a matter of 20 25 minutes.

And I also wipe coded to generate the predicate to verify the instructions. Now you could play battleship peer-to-peer over the internet where you know each person commits to their um commits to their inputs their input plates and then they cannot lie whether they it's a hit or a miss and I didn't integrate them together but I have both of these codes separately. All right. So, a little bit our mission, we want to make ZK useful, usable, all running on your device.

Just a word, we are trying to solve, you know privacy compliance decentralization. We're trying to build tools where people can prove compliance themselves. We talk about self-s sovereign privacy. What we want to do is self- sovereign compliance. We're going to do this by you know ZK validiums offer a lightweight form of privacy when you have service provider launch their own networks and you can get compliance by having these predicates on our marketplace where people could prove for different jurisdictions what they want to establish for their own uh you know respective state jurisdictions countries what kind of compliance they want to do.

So we imagine that, you know, eventually we'd be able to just have like a marketplace for all these compliance conditions that could be integrated directly into your network. You want to test, you can go to our platform. There is a speed test you can try out. If you have an Apple machine, you have to WebGPU is still like in in the trial phase. You got to go and set the feature flag for web GPU. So this is what I want to say at ETH Denver. I have this. I'm going to modify the slide. It's not the same slide. It I talked about building, you know, in the browser, building in any language, but today I want to say vibe anywhere. Like you don't need to even think, forget that code even exists. Thank you.

Awesome. Thanks. Right on top.