thomaslavaur bd4fe8bad3
empower the poq (#51)
* empower the poq

* update test inputs

* Enhance GMP download process in CI workflow

Updated GMP download step to try multiple URLs with retries.

* revert ci

* fix test

* bump version

* add cargo lock
2026-08-04 13:44:26 +02:00
2026-08-04 12:05:49 +02:00
2026-08-04 13:44:26 +02:00
2025-10-06 11:10:46 +02:00
2026-06-05 21:07:54 +02:00
2026-05-14 15:03:27 +02:00
2026-05-14 15:03:27 +02:00
2026-08-04 13:44:26 +02:00
2025-10-06 11:10:46 +02:00
2026-08-04 13:44:26 +02:00
2026-06-09 12:54:14 +02:00
2026-04-10 17:23:58 +02:00
2026-05-14 15:03:27 +02:00
2025-10-06 11:10:46 +02:00
2026-05-29 12:13:44 +02:00
2026-06-05 21:07:54 +02:00
2026-05-14 15:03:27 +02:00
2026-06-09 12:54:14 +02:00
2026-03-25 11:40:47 +01:00
2026-03-25 11:40:47 +01:00
2026-05-29 12:13:44 +02:00

Logos Blockchain Circuits

ZK-SNARK circuits for the Logos Blockchain, built with Circom and distributed as linkable static libraries.

Circuits

Circuit What it proves
PoQ — Proof of Quota A node has quota to participate in a blend session
PoL — Proof of Leadership A note holder would win the leadership lottery for a given slot
PoC — Proof of Claim A voucher is validly owned and its nullifier is correctly derived
Signature Knowledge of secret keys and their corresponding public keys

Architecture

flowchart TD
    A["Source circuit\n({circuit}.circom)"]
    B("Circom compilation")
    C["{circuit}_cpp/"]
    R["{circuit}.r1cs"]
    PK("Proving key generation")
    Z["proving_key.zkey\nverification_key.json"]
    DAT["{circuit}.dat"]
    D["src/\n(circom_adapter, types, ...)"]
    D2["src/{circuit}/ffi.cpp"]
    E("Makefile")
    F["lib{circuit}.a\nlibgmp.a"]
    G["lbc-{circuit}-sys"]

    A --> B -->|Generates| C
    B -->|Generates| R --> PK --> Z
    B -->|Generates| DAT
    D -.-> C
    D2 -.-> C
    C --> E -->|Produces| F
    F -->|Linked by| G
    DAT -->|Embedded into| G

Each circuit is compiled from Circom source to C++, combined with shared common files (circom_adapter, types, ...) and a circuit-specific FFI layer (src/{circuit}/ffi.cpp), and built into a static library.

The Rust sys crates link directly against these libraries.

Docs

Document What's in it
CHANGELOG.md What changed and why, by version
CONTRIBUTING.md Dev setup, build details, and release process
rust/README.md How to use the Rust sys crates
docs/build-pipeline.md CI build steps, from .circom source to release artifacts
Description
No description provided
Readme
Languages
C++ 25.3%
Rust 24.7%
Python 23.4%
Circom 21.1%
Just 3.7%
Other 1.8%