Inspiration

What it does

Project verifies STARK proof generated with Cairo code and Platinum Prover on the Golem Network

How we built it

I've used python toolchain for Cairo to compile Cairo code and generated the trace (it's a recording of the program execution). Then I've used Platinum Prover Rust crate to develop our RPC server.

Challenges we ran into

Cairo uses layouts (there are flavors of the Cairo VM), I've needed to run the prover in the correct way to understand the layout from the Python toolchain. Also there were big problems with transferring the proof file on demand to the Golem Network - at first I've planned to pass that in a request in shell but the proof data is too big to be passed as a command argument.

Accomplishments that we're proud of

Working pair of prover <-> verifier. Deployment through Yagna was quite well described but I think some tutorials about passing big inputs to the command we want to run on the Golem Network would be very helpful (shell works well but when we have big input like STARK proof it's very hard to pass it to the program)

What we learned

I gained deeper knowledge about the verifier - I succesfully created a pipeline from Cairo program and it's inputs to the successful proving and verification completely in Rust and Docker. I've also learned how to deploy images on the Golem Network because it was the first time I was using it, I got to know more about Golem execution environment, the most important for me was that the program in docker image runs only when I perform a rpc call to the network.

What's next for Aletheia

The ultimate goal would be to create a service where developers that builds websites for their clients could use new authentication methods without diving deeply into zkSTARK and Cairo technology. With Golem we could together create a proposal for new web2 authentication methods based on zk proofs and execute proving and verification on the Golem Network. The advantages of remote execution for: proving - it's heavy computation, so it's always a good idea to do it remotely, especially when we want to do client side proving on mobile devices. verification - it's light but developer would need to setup it by themselves and we could make it more pleasant to use if such verifier was deployed on the Golem Network. The big disadvantage of remote execution is it's not always trusted by users, but we could prepare Cairo programs to run on Golem Network that validate output and create proofs of their executions to increase users confidence about correct execution.

Built With

Share this project:

Updates