Askeladd is a censorship-resistant global proving network, for anyone to be able to generate validity proofs, using STWO prover, and verify them. It enables to submit proving request to the network and retrieve the generated proof for any given request. Askeladd leverages Nostr for the communication layer, to gossip the proving requests and generated proofs.
As Zero-Knowledge-Proof technology keeps evolving rapidly, it's clear that there will be a need for decentralised infrastructure to be able to generate and verify proofs in a censorship-resistant way. Not everythng has to live on blockchain, and Askeladd is here to help, leveraging the simplicity of Nostr.
Disclaimer: Askeladd is only a proof of concept and should not be used in a production environment. It's a work in progress as a showcase of the STWO prover and the Nostr protocol.
Check out this video demonstration of Askeladd in action:
Typical flow:
- User submits a proving request to the network
- An Askeladd prover agent generates a proof for the request
- The proof is published to the Nostr network
- The user can verify the proof using the Askeladd verifier agent
- Use NIP-90 - Data Vending Machine to define interaction between Service Providers (prover agents) and customers (users needing to generate proofs).
- Check https://vendata.io/dvms mechanism to see how it works.
- Check https://www.data-vending-machines.org/ for more information.
- Use NIP-89 -Recommended Application Handlers for prover agents to advertise their support for certain types of proving requests, their pricing model, etc.
- Use NIP-57 - Lightning Zaps to handle the payment for the proofs.
- Use NIP-13 - Proof of Work for spam protection.
- Use NIP-94 - File Metadata and/or NIP-96 - HTTP File Storage Integration to handle transport of the proofs and metadata over the network.
./run_demo.sh
Create a .env
file, you can use the .env.example
file as a reference.
cp .env.example .env
In terminal 1, run the nostr relay:
docker run -p 8080:8080 scsibug/nostr-rs-relay
In terminal 2, run the prover agent:
cargo run --bin prover_agent
In terminal 3, run the user CLI:
cargo run --bin user_cli
The user CLI binary will submit a proving request to the Nostr network. The prover agent will generate a proof for the request and publish it to the Nostr network. The user CLI binary will be able to verify the proof.
We love contributions! If you have ideas for improvements or find any issues, please open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
This demo is powered by the amazing STWO Prover from StarkWare. A big thank you to the StarkWare team and all contributors!