Skip to content

AbdelStark/askeladd

 
 

Repository files navigation

Askeladd

Censorship-resistant global proving network.

GitHub Workflow Status (with event)

Bitcoin Nostr Bitcoin Lightning Rust

About

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:

asciicast

Architecture

Askeladd Architecture

Typical flow:

  1. User submits a proving request to the network
  2. An Askeladd prover agent generates a proof for the request
  3. The proof is published to the Nostr network
  4. The user can verify the proof using the Askeladd verifier agent

Open questions / TODOs

Running the demo

Using docker-compose

./run_demo.sh

Manually

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.

🤝 Contributing

We love contributions! If you have ideas for improvements or find any issues, please open an issue or submit a pull request.

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgements

This demo is powered by the amazing STWO Prover from StarkWare. A big thank you to the StarkWare team and all contributors!

📚 Resources