Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 23 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,21 @@ jobs:

clippy:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- name: transparent
features: backends,parallel,cache,disk-persistence
- name: zk
features: backends,parallel,cache,disk-persistence,zk
name: Clippy (${{ matrix.name }})
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: clippy
- name: cargo clippy --all-features
run: cargo clippy --all --all-targets --all-features
- name: cargo clippy --features ${{ matrix.features }}
run: cargo clippy --all --all-targets --features ${{ matrix.features }}
- name: cargo clippy --no-default-features
run: cargo clippy --all --all-targets --no-default-features

Expand All @@ -50,14 +58,21 @@ jobs:

test:
runs-on: ubuntu-latest
name: Test
strategy:
matrix:
include:
- name: transparent
features: backends,parallel,cache,disk-persistence
- name: zk
features: backends,parallel,cache,disk-persistence,zk
name: Test (${{ matrix.name }})
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Run tests
run: cargo nextest run --all-features
run: cargo nextest run --features ${{ matrix.features }}

examples:
runs-on: ubuntu-latest
Expand All @@ -73,3 +88,7 @@ jobs:
run: cargo run --example non_square --features backends
- name: Run homomorphic_mixed_sizes example
run: cargo run --example homomorphic_mixed_sizes --features backends
- name: Run zk_e2e example
run: cargo run --example zk_e2e --features backends,zk
- name: Run zk_statistical example
run: cargo run --release --example zk_statistical --features backends,zk,parallel
Empty file added .rustfmt.toml
Empty file.
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,29 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.3.0] - 2026-02-27

### Added

- **Zero-knowledge mode** (`zk` feature): optional hiding proofs where both commitment and proof are blinded
- Single GT-level commitment blind (`r_d1 * HT`)
- VMV messages (C, D2, E1, E2, y_com) blinded with OS randomness
- Reduce-and-fold messages blinded with OS per-round randomness
- Final message (E1, E2) blinded to hide folded witness vectors
- Sigma1 proof: proves E2 and y_com commit to the same evaluation
- Sigma2 proof: proves consistency of E1 and D2 blinds
- Scalar product proof: proves (C, D1, D2) are consistent with blinded v1, v2
- 1 ML + 1 FE verification in ZK mode (vs 4 ML + 1 FE in transparent mode)
- New `zk_e2e` example demonstrating the full ZK workflow
- New `zk_statistical` example with chi-squared uniformity and witness-independence tests (1000 trials)
- ZK test suite: end-to-end proofs, tampering resistance, sigma proof verification, soundness

### Changed

- `Polynomial::commit()` return type changed from `(GT, Vec<G1>, Option<Vec<F>>)` to `(GT, Vec<G1>, F)` — the third element is now a single GT-level blind scalar (zero in Transparent mode)
- `prove()` and `create_evaluation_proof()` now take a `commit_blind: F` parameter
- `DoryProverState::set_initial_blinds()` now takes `r_d1` as its first parameter

## [0.2.0] - 2026-01-29

### Changed
Expand Down Expand Up @@ -33,5 +56,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Homomorphic commitment properties
- Comprehensive test suite including soundness tests

[0.3.0]: https://github.com/a16z/dory/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/a16z/dory/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/a16z/dory/releases/tag/v0.1.0
Loading