#verifier #proof #cairo-vm #stark #keccak #json #starknet

bin+lib swiftness

Swiftness - Rust CairoVM Verifier implementation

5 releases

0.0.8 Aug 19, 2024
0.0.7 Aug 1, 2024
0.0.6 Jul 30, 2024
0.0.5 Jul 25, 2024
0.0.3 Jul 20, 2024

#3 in #cairo-vm

Download history 89/week @ 2024-07-18 239/week @ 2024-07-25 131/week @ 2024-08-01 163/week @ 2024-08-15 15/week @ 2024-08-22

336 downloads per month

Custom license

2MB
38K SLoC

Swiftness CairoVM Verifier

Version Continuous Integration

Crates.io Version docs.rs hub.docker

Swiftness is a Rust implementation of the Cairo-VM STARK verifier with layouts, inspired by StarkWare's Cairo-verifier in Cairo0.

Getting Started

Verify an Example Proof

  1. Install swiftness:

    cargo install -f --path cli/ --features starknet_with_keccak,keccak --no-default-features
    
  2. Verify the proof:

    Ensure you use a proof corresponding to the layout and hash used to build the binary.

    swiftness --proof examples/proofs/starknet_with_keccak/cairo0_example_proof.json
    
  3. Local Run:

    cd cli && cargo run --release --bin swiftness --features starknet_with_keccak,keccak --no-default-features -- --proof ../examples/proofs/starknet_with_keccak/cairo0_example_proof.json
    

Running Tests

cargo test

WebAssembly (WASM) Setup

  1. Install wasm-pack:

    cargo install wasm-pack
    
  2. Build WASM:

    cd wasm_bindings && wasm-pack build --target web --features starknet_with_keccak,blake2s --no-default-features
    

Features

Usage

  • CLI

Implemented Layouts

  • dex
  • recursive
  • recursive_with_poseidon
  • small
  • starknet
  • starknet_with_keccak

Commitment Hashes

  • keccak
  • blake2s

Web Support

Other Platforms Support

  • Bare Armv7-R, Big Endian - armebv7r-none-eabi
  • Bare RISC-V (RV64IMAC ISA) - riscv64imac-unknown-none-elf
  • Bare ARM64, softfloat - aarch64-unknown-none-softfloat
  • Bare ARM64, hardfloat - aarch64-unknown-none

Contributing

Contributions are welcome! Feel free to open issues or submit pull requests to help improve this project.

Dependencies

~15MB
~265K SLoC