From 3f5407a8a3a21deab24f7539c09d2e5bc3dc110a Mon Sep 17 00:00:00 2001 From: "Abdel @ StarkWare" Date: Tue, 16 Jul 2024 14:04:25 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20start=20`askeladd`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yaml | 45 +++++++++++++++++++++++ .gitignore | 5 +++ Cargo.toml | 10 ++++++ README.md | 54 ++++++++++++++++++++++++++-- crates/cli/Cargo.toml | 9 +++++ crates/cli/src/main.rs | 19 ++++++++++ crates/core/Cargo.toml | 7 ++++ crates/core/src/lib.rs | 3 ++ crates/core/src/prover_service.rs | 25 +++++++++++++ crates/core/src/types.rs | 18 ++++++++++ crates/core/src/verifier_service.rs | 18 ++++++++++ docs/img/askeladd-architecture.png | Bin 0 -> 79277 bytes rust-toolchain.toml | 2 ++ rustfmt.toml | 12 +++++++ 14 files changed, 225 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/ci.yaml create mode 100644 Cargo.toml create mode 100644 crates/cli/Cargo.toml create mode 100644 crates/cli/src/main.rs create mode 100644 crates/core/Cargo.toml create mode 100644 crates/core/src/lib.rs create mode 100644 crates/core/src/prover_service.rs create mode 100644 crates/core/src/types.rs create mode 100644 crates/core/src/verifier_service.rs create mode 100644 docs/img/askeladd-architecture.png create mode 100644 rust-toolchain.toml create mode 100644 rustfmt.toml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..e939ac6 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,45 @@ +name: CI + +on: + push: + branches: + - main + + pull_request: + types: + - opened + - reopened + - synchronize + - auto_merge_enabled +jobs: + format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@master + with: + components: rustfmt + toolchain: nightly-2024-01-04 + - uses: Swatinem/rust-cache@v2 + - run: scripts/rust_fmt.sh --check + + clippy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@master + with: + components: clippy + toolchain: nightly-2024-01-04 + - uses: Swatinem/rust-cache@v2 + - run: scripts/clippy.sh + + run-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: nightly-2024-01-04 + - uses: Swatinem/rust-cache@v2 + - run: cargo +nightly-2024-01-04 test diff --git a/.gitignore b/.gitignore index 6985cf1..196e176 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,8 @@ Cargo.lock # MSVC Windows builds of rustc generate these, which store debugging information *.pdb + + +# Added by cargo + +/target diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..c548205 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,10 @@ +[workspace] +members = ["crates/cli", "crates/core"] +resolver = "2" + +[workspace.package] +version = "0.1.1" +edition = "2021" + +[workspace.dependencies] +stwo-prover = { git = "https://github.com/starkware-libs/stwo.git" } diff --git a/README.md b/README.md index 5ff4c1f..6e0ae30 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,52 @@ -# askeladd -Censorship-resistant global proving network. +
+

Askeladd

+

Censorship-resistant global proving network.

+ +GitHub Workflow Status (with event) +StarkWare + +
+ +## About + +Askeladd is a censorship-resistant global proving network, for anyone to be able to generate validity proofs, using [STWO](https://github.com/starkware-libs/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](https://github.com/nostr-protocol/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. + +## Architecture + +![Askeladd Architecture](./docs/img/askeladd-architecture.png) + +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 + +## Getting Started + +### Running the CLI + +```bash +cargo run --bin askeladd-cli +``` + +### Use as library + +```bash +cargo add askeladd-core +``` + +## 🤝 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](LICENSE) file for details. + +## 🙏 Acknowledgements + +This demo is powered by the amazing [STWO Prover](https://github.com/starkware-libs/stwo) from StarkWare. A big thank you to the StarkWare team and all contributors! diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml new file mode 100644 index 0000000..5fd7f4e --- /dev/null +++ b/crates/cli/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "askeladd-cli" +version.workspace = true +edition.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +askeladd-core = { path = "../core" } diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs new file mode 100644 index 0000000..e710519 --- /dev/null +++ b/crates/cli/src/main.rs @@ -0,0 +1,19 @@ +use askeladd_core::prover_service::ProverService; +use askeladd_core::types::FibonnacciProvingRequest; +use askeladd_core::verifier_service::VerifierService; + +fn main() { + let proving_service: ProverService = Default::default(); + let log_size = 5; + let claim = 443693538; + let request = FibonnacciProvingRequest { log_size, claim }; + println!("Generating proof..."); + let response = proving_service.generate_proof(request).unwrap(); + println!("Proof successfully generated."); + let verifier_service: VerifierService = Default::default(); + println!("Verifying proof..."); + match verifier_service.verify_proof(response) { + Ok(_) => println!("Proof successfully verified"), + Err(e) => println!("Proof verification failed: {}", e), + } +} diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml new file mode 100644 index 0000000..20ae18c --- /dev/null +++ b/crates/core/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "askeladd-core" +version.workspace = true +edition.workspace = true + +[dependencies] +stwo-prover.workspace = true diff --git a/crates/core/src/lib.rs b/crates/core/src/lib.rs new file mode 100644 index 0000000..4185887 --- /dev/null +++ b/crates/core/src/lib.rs @@ -0,0 +1,3 @@ +pub mod prover_service; +pub mod types; +pub mod verifier_service; diff --git a/crates/core/src/prover_service.rs b/crates/core/src/prover_service.rs new file mode 100644 index 0000000..d7d5baa --- /dev/null +++ b/crates/core/src/prover_service.rs @@ -0,0 +1,25 @@ +use stwo_prover::core::fields::m31::BaseField; +use stwo_prover::core::prover::ProvingError; +use stwo_prover::examples::fibonacci::Fibonacci; + +use crate::types::{FibonnacciProvingRequest, FibonnacciProvingResponse}; + +#[derive(Debug, Default)] +pub struct ProverService {} + +impl ProverService { + pub fn generate_proof( + &self, + request: FibonnacciProvingRequest, + ) -> Result { + let fib = Fibonacci::new(request.log_size, BaseField::from(request.claim)); + match fib.prove() { + Ok(proof) => Ok(FibonnacciProvingResponse { + proof, + log_size: request.log_size, + claim: request.claim, + }), + Err(e) => Err(e), + } + } +} diff --git a/crates/core/src/types.rs b/crates/core/src/types.rs new file mode 100644 index 0000000..a8345da --- /dev/null +++ b/crates/core/src/types.rs @@ -0,0 +1,18 @@ +use stwo_prover::core::prover::StarkProof; + +/// A request to generate a proof for a Fibonnacci sequence. +pub struct FibonnacciProvingRequest { + /// The size of the log to generate. + pub log_size: u32, + /// The claim to be proved. + pub claim: u32, +} + +pub struct FibonnacciProvingResponse { + /// The size of the log to generate. + pub log_size: u32, + /// The claim to be proved. + pub claim: u32, + /// The proof generated for the request. + pub proof: StarkProof, +} diff --git a/crates/core/src/verifier_service.rs b/crates/core/src/verifier_service.rs new file mode 100644 index 0000000..7b4e007 --- /dev/null +++ b/crates/core/src/verifier_service.rs @@ -0,0 +1,18 @@ +use stwo_prover::core::fields::m31::BaseField; +use stwo_prover::core::prover::VerificationError; +use stwo_prover::examples::fibonacci::Fibonacci; + +use crate::types::FibonnacciProvingResponse; + +#[derive(Debug, Default)] +pub struct VerifierService {} + +impl VerifierService { + pub fn verify_proof( + &self, + response: FibonnacciProvingResponse, + ) -> Result<(), VerificationError> { + let fib = Fibonacci::new(response.log_size, BaseField::from(response.claim)); + fib.verify(response.proof) + } +} diff --git a/docs/img/askeladd-architecture.png b/docs/img/askeladd-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..b8b43850772fcc247c52ebba98017a81f666489a GIT binary patch literal 79277 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 W?CB4c=WXzCA1$>fs^!X75&r|vr$Ju; literal 0 HcmV?d00001 diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..a0f1a93 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "nightly-2024-01-04" diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 0000000..1214011 --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1,12 @@ +# See: https://rust-lang.github.io/rustfmt +normalize_comments = true +use_field_init_shorthand = true + +# Unstable +comment_width = 100 +condense_wildcard_suffixes = true +format_code_in_doc_comments = true +group_imports = "StdExternalCrate" +imports_granularity = "Module" +unstable_features = true +wrap_comments = true