https://github.com/arkworks-rs/sumcheck

linear-time sumcheck protocol for multilinear polynomials and related addends

https://github.com/arkworks-rs/sumcheck

Science Score: 20.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
    3 of 10 committers (30.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.7%) to scientific vocabulary

Keywords

cryptography rust sumcheck

Keywords from Contributors

pairings marlin polynomial-commitments sonic phase-transition unit-test r1cs snark signatures hash-functions
Last synced: 5 months ago · JSON representation

Repository

linear-time sumcheck protocol for multilinear polynomials and related addends

Basic Info
  • Host: GitHub
  • Owner: arkworks-rs
  • License: apache-2.0
  • Language: Rust
  • Default Branch: master
  • Homepage:
  • Size: 1.65 MB
Statistics
  • Stars: 78
  • Watchers: 6
  • Forks: 36
  • Open Issues: 9
  • Releases: 1
Topics
cryptography rust sumcheck
Created over 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Codeowners

README.md

Linear-Time Sumcheck

linear-sumcheck is a Rust library that implements the sumcheck protocol.

This crate implements the following protocols: - MLSumcheck: The sumcheck protocol for products of multilinear polynomials in evaluation form over boolean hypercube. - GKRRoundSumcheck: The sumcheck protocol for GKR Round Function. This protocol takes MLSumcheck as a subroutine.

WARNING: This is an academic proof-of-concept prototype, and in particular has not received careful code review. This implementation is NOT ready for production use.

Build guide

The library compiles on the stable toolchain of the Rust compiler. To install the latest version of Rust, first install rustup by following the instructions here, or via your platform's package manager. Once rustup is installed, install the Rust toolchain by invoking: bash rustup install stable

After that, use cargo (the standard Rust build tool) to build the library: bash git clone https://github.com/arkworks-rs/sumcheck.git cd sumcheck cargo build --release

This library comes with some unit and integration tests. Run these tests with: bash cargo test

Lastly, this library is instrumented with profiling infrastructure that prints detailed traces of execution time. To enable this, compile with cargo build --features print-trace.

Benchmarks

To run the benchmarks, install the nightly Rust toolchain, via rustup install nightly, and then run the following command:

shell cargo +nightly bench --all-features

All benchmarks below are performed over BLS12-381 scalar field implemented in the ark-test-curves library. Benchmarks were run on a machine with an Intel Xeon 6136 CPU running at 3.0 GHz.

Benchmarks for MLSumcheck

ml_sumcheck_prove

ml_sumcheck_verify

Benchmarks for GKRRoundSumcheck

gkr_round_sumcheck_prove

gkr_round_sumcheck_verify

License

This library is licensed under either of the following licenses, at your discretion.

Unless you explicitly state otherwise, any contribution that you submit to this library shall be dual licensed as above (as defined in the Apache v2 License), without any additional terms or conditions.

Reference Paper

Libra: Succinct Zero-Knowledge Proofs with Optimal Prover Computation
Tiancheng Xie, Jiaheng Zhang, Yupeng Zhang, Charalampos Papamanthou, Dawn Song

Time-Optimal Interactive Proofs for Circuit Evaluation
Justin Thaler

Owner

  • Name: arkworks
  • Login: arkworks-rs
  • Kind: organization

An ecosystem for developing and programming with zkSNARKs

GitHub Events

Total
  • Watch event: 17
  • Issue comment event: 1
  • Pull request event: 3
  • Fork event: 7
  • Create event: 1
Last Year
  • Watch event: 17
  • Issue comment event: 1
  • Pull request event: 3
  • Fork event: 7
  • Create event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 18
  • Total Committers: 10
  • Avg Commits per committer: 1.8
  • Development Distribution Score (DDS): 0.778
Past Year
  • Commits: 10
  • Committers: 7
  • Avg Commits per committer: 1.429
  • Development Distribution Score (DDS): 0.8
Top Committers
Name Email Commits
Tom Shen t****n@b****u 4
Weikeng Chen w****k@b****u 3
Dev Ojha V****n@u****m 2
Jay White J****7@u****m 2
dependabot[bot] 4****]@u****m 2
Ethan-000 s****0@e****k 1
Fanghao Yang y****o@g****m 1
Thor 7****4@u****m 1
dependabot-preview[bot] 2****]@u****m 1
zhenfei z****g@h****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 20
  • Total pull requests: 63
  • Average time to close issues: 3 months
  • Average time to close pull requests: 28 days
  • Total issue authors: 9
  • Total pull request authors: 17
  • Average comments per issue: 0.8
  • Average comments per pull request: 0.68
  • Merged pull requests: 46
  • Bot issues: 2
  • Bot pull requests: 17
Past Year
  • Issues: 0
  • Pull requests: 4
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 days
  • Issue authors: 0
  • Pull request authors: 4
  • Average comments per issue: 0
  • Average comments per pull request: 0.5
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • tsunrise (9)
  • drobissout (2)
  • Pratyush (2)
  • dependabot-preview[bot] (2)
  • alireza-shirzad (1)
  • weikengchen (1)
  • maciejskorski (1)
  • mmagician (1)
  • thor314 (1)
Pull Request Authors
  • tsunrise (24)
  • dependabot[bot] (10)
  • dependabot-preview[bot] (9)
  • mmagician (7)
  • weikengchen (3)
  • ValarDragon (2)
  • Olexandr88 (2)
  • Guayaba221 (2)
  • SuccinctPaul (1)
  • PatStiles (1)
  • thor314 (1)
  • Pratyush (1)
  • JayWhite2357 (1)
  • yangfh2004 (1)
  • zhenfeizhang (1)
Top Labels
Issue Labels
enhancement (7)
Pull Request Labels
dependencies (19)

Packages

  • Total packages: 1
  • Total downloads:
    • cargo 4,910 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 3
  • Total maintainers: 1
crates.io: ark-linear-sumcheck

A library for efficient sumcheck protocols

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 4,910 Total
Rankings
Forks count: 15.4%
Stargazers count: 20.8%
Dependent repos count: 29.3%
Average: 31.0%
Dependent packages count: 33.8%
Downloads: 55.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/ci.yml actions
  • actions-rs/cargo v1 composite
  • actions-rs/toolchain v1 composite
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/checkout v1 composite
Cargo.toml cargo
  • ark-test-curves ^0.3.0 development
  • ark-ff ^0.3.0
  • ark-poly ^0.3.0
  • ark-serialize ^0.3.0
  • ark-std ^0.3.0
  • blake2 0.9
  • hashbrown 0.13.1
  • rayon 1
sumcheck-benches/Cargo.toml cargo