An open API service indexing awesome lists of open source software.

https://github.com/pluto/custom-constraints

Implementation of CCS in Rust
https://github.com/pluto/custom-constraints

Last synced: about 1 year ago
JSON representation

Implementation of CCS in Rust

Awesome Lists containing this project

README

          


Pluto Logo


Pluto



Telegram
Docs
License

# Custom Constraints

An implementation of the Customizable Constraint System (CCS) to be used in SNARKs.

## Overview

This library provides an ergonomic and performant implementation of CCS to be adapted to any frontend or backend proving system.

## Features

- **Minimal Dependencies**: Most, if not all, is built by Pluto.
- **Frontend Compatibility**:
- Noir (coming soon)

## Usage

Add to your `Cargo.toml`:
```toml
[dependencies]
custom-constraints = "*"
```

## Implementation Details

See the [Customizable constraint systems for succinct arguments](https://eprint.iacr.org/2023/552) paper.

## Roadmap

- [x] CSR Sparse matrices
- [x] CCS structure
- [x] CCS checking
- [x] CCS builder/allocator (i.e., from constraints)
- [x] Plonkish CCS
- [ ] Noir to Plonkish CCS

## Contributing

We welcome contributions to our open-source projects. If you want to contribute or follow along with contributor discussions, join our main [Telegram channel](https://t.me/pluto_xyz/1) to chat about Pluto's development.

Our contributor guidelines can be found in our [CONTRIBUTING.md](https://github.com/pluto/.github/blob/main/profile/CONTRIBUTING.md).

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.

## License

This project is licensed under the Apache V2 License - see the [LICENSE](LICENSE) file for details.

## References

- [Customizable constraint systems for succinct arguments](https://eprint.iacr.org/2023/552)