Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/distributed-lab/noir-plume
Implementation of the PLUME protocol in Noir.
https://github.com/distributed-lab/noir-plume
noir plume signature zkp
Last synced: 3 days ago
JSON representation
Implementation of the PLUME protocol in Noir.
- Host: GitHub
- URL: https://github.com/distributed-lab/noir-plume
- Owner: distributed-lab
- License: mit
- Created: 2024-07-04T11:16:44.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-10-23T14:50:52.000Z (24 days ago)
- Last Synced: 2024-10-23T18:15:48.463Z (24 days ago)
- Topics: noir, plume, signature, zkp
- Language: Noir
- Homepage:
- Size: 129 KB
- Stars: 6
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-noir - PLUME - Noir implementation of the https://blog.aayushg.com/nullifier/ library for zk-signatures (Get Coding / Libraries)
README
# PLUME in Noir
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![Noir CI 🌌](https://github.com/distributed-lab/noir-plume/actions/workflows/noir.yml/badge.svg)](https://github.com/distributed-lab/noir-plume/actions/workflows/noir.yml)
Plume is needed to confirm your identity without disclosing your private data, i.e. [zero-knowledge proof](https://en.wikipedia.org/wiki/Zero-knowledge_proof). Plume has another feature: you can send a message from a private group using special group message. For more details visit .
## Eager to try? 😎
### Add dependency to your project's `Nargo.toml`
```toml
[dependencies]
plume = { git = "https://github.com/distributed-lab/noir-plume", tag = "v1.0.0", directory = "crates/plume"}
```### Use in your `Noir` code as following
```rust
use plume::plume_v1;...
plume_v1(msg, c, s, pk, nullifier);
```Or in case you prefer 2 version:
```rust
use plume::plume_v2;...
plume_v2(msg, c, s, pk, nullifier);
```### Examples
Check out how to generate proofs with PLUME in either `crates/use_v1` or `crates/use_v2`.
For proving data generation, see our `SageMath` [implementation](./etc).## Benchmark 📊
We have provided information regarding different computational statistics such as constraints amount and time for various activities, see [Benchmark.md](./BENCHMARK.md)
## There is more? 🤯
In order to bring in `PLUME` to `Noir`, we needed to implement `secp256k1_XMD:SHA-256_SSWU_RO_` hash-to-curve algorithm, ergo now it is available in `Noir` ecosystem!
Based on [this description](https://datatracker.ietf.org/doc/id/draft-irtf-cfrg-hash-to-curve-06.html).
Tested using [this data](https://www.ietf.org/archive/id/draft-irtf-cfrg-hash-to-curve-13.html#appendix-J.8.1).