Skip to content

Repository files navigation

stark-rings - A Rust implementation of cyclotomic rings over the STARK-friendly rings.

A proof-of-concept implementation of rings of the form Fp[X]/Phi(X), where Phi(X) is a cyclotomic polynomial and p is a STARK-friendly prime (Goldilocks, BabyBear or the Starknet prime). The choice of parameters for these ring is based on the work Short, Invertible Elements in Partially Splitting Cyclotomic Rings and Applications to Lattice-Based Zero-Knowledge Proofs and targets large enough (~2^128) sets of short invertible elements.

In addition to that, the library contains crates for multilinear extensions over the rings and miscellaneous linear algebra tools.

DISCLAIMER: This is a proof-of-concept prototype, and in particular has not received careful code review. This implementation is provided "as is" and NOT ready for production use. Use at your own risk.

Usage

Import the library:

[dependencies]
stark-rings = { git = "https://github.com/NethermindEth/stark-rings.git", package = "stark-rings"}

Documentation

See the documentation with:

RUSTDOCFLAGS="--html-in-header $(pwd)/docs-header.html" cargo doc --open

License

The crates in this repository are licensed under either of the following licenses, at your discretion.

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

Acknowledgments

About

Cyclotomic rings over STARK-friendly fields

Topics

Resources

Contributing

Security policy

Stars

10 stars

Watchers

5 watching

Forks

Releases

Used by

Contributors

Languages