mirror of
https://github.com/vacp2p/status-rln-prover.git
synced 2026-01-08 21:18:05 -05:00
Update to zerokit v0.8.0 (#6)
* Update to zerokit v0.8.0 * Switch to OptimalMerkleTree implementation (was pmTree) * Update various crates
This commit is contained in:
@@ -4,15 +4,15 @@ version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
rln = { git = "https://github.com/vacp2p/zerokit", package = "rln", features = ["default"] }
|
||||
rln = { git = "https://github.com/vacp2p/zerokit", package = "rln", default-features = false }
|
||||
zerokit_utils = { git = "https://github.com/vacp2p/zerokit", package = "zerokit_utils", features = ["default"] }
|
||||
ark-bn254 = { version = "0.5", features = ["std"] }
|
||||
ark-groth16 = "*"
|
||||
ark-relations = "*"
|
||||
ark-serialize = "0.5.0"
|
||||
ark-bn254.workspace = true
|
||||
ark-groth16.workspace = true
|
||||
ark-serialize.workspace = true
|
||||
ark-relations = "0.5"
|
||||
|
||||
[dev-dependencies]
|
||||
criterion = "0.5"
|
||||
criterion.workspace = true
|
||||
|
||||
[[bench]]
|
||||
name = "generate_proof"
|
||||
|
||||
@@ -6,8 +6,8 @@ use criterion::{Criterion, criterion_group, criterion_main};
|
||||
use ark_bn254::Fr;
|
||||
use ark_serialize::CanonicalSerialize;
|
||||
use rln::hashers::{hash_to_field, poseidon_hash};
|
||||
use rln::pm_tree_adapter::PmTree;
|
||||
use rln::protocol::{keygen, serialize_proof_values};
|
||||
use zerokit_utils::OptimalMerkleTree;
|
||||
// internal
|
||||
use rln_proof::{
|
||||
RlnData, RlnIdentifier, RlnUserIdentity, ZerokitMerkleTree, compute_rln_proof_and_values,
|
||||
@@ -29,7 +29,7 @@ pub fn criterion_benchmark(c: &mut Criterion) {
|
||||
|
||||
// Merkle tree
|
||||
let tree_height = 20;
|
||||
let mut tree = PmTree::new(tree_height, Fr::from(0), Default::default()).unwrap();
|
||||
let mut tree = OptimalMerkleTree::new(tree_height, Fr::from(0), Default::default()).unwrap();
|
||||
let rate_commit = poseidon_hash(&[rln_identity.commitment, rln_identity.user_limit]);
|
||||
tree.set(0, rate_commit).unwrap();
|
||||
let merkle_proof = tree.proof(0).unwrap();
|
||||
|
||||
@@ -4,12 +4,15 @@ use std::io::Cursor;
|
||||
use ark_bn254::{Bn254, Fr};
|
||||
use ark_groth16::{Proof, ProvingKey};
|
||||
use ark_relations::r1cs::ConstraintMatrices;
|
||||
use rln::circuit::ZKEY_BYTES;
|
||||
use rln::circuit::zkey::read_zkey;
|
||||
use rln::hashers::{hash_to_field, poseidon_hash};
|
||||
use rln::protocol::{
|
||||
ProofError, RLNProofValues, generate_proof, proof_values_from_witness, rln_witness_from_values,
|
||||
use rln::{
|
||||
circuit::{ZKEY_BYTES, zkey::read_zkey},
|
||||
error::ProofError,
|
||||
hashers::{hash_to_field, poseidon_hash},
|
||||
protocol::{
|
||||
RLNProofValues, generate_proof, proof_values_from_witness, rln_witness_from_values,
|
||||
},
|
||||
};
|
||||
use rln::poseidon_tree::MerkleProof;
|
||||
|
||||
/// A RLN user identity & limit
|
||||
#[derive(Debug, Clone)]
|
||||
@@ -68,7 +71,7 @@ pub fn compute_rln_proof_and_values(
|
||||
rln_identifier: &RlnIdentifier,
|
||||
rln_data: RlnData,
|
||||
epoch: Fr,
|
||||
merkle_proof: &rln::poseidon_tree::MerkleProof,
|
||||
merkle_proof: &MerkleProof,
|
||||
) -> Result<(Proof<Bn254>, RLNProofValues), ProofError> {
|
||||
let external_nullifier = poseidon_hash(&[rln_identifier.identifier, epoch]);
|
||||
|
||||
@@ -94,10 +97,9 @@ pub fn compute_rln_proof_and_values(
|
||||
mod tests {
|
||||
use super::*;
|
||||
use rln::{
|
||||
pm_tree_adapter::PmTree,
|
||||
protocol::{compute_id_secret, keygen},
|
||||
};
|
||||
use zerokit_utils::ZerokitMerkleTree;
|
||||
use zerokit_utils::{OptimalMerkleTree, ZerokitMerkleTree};
|
||||
|
||||
#[test]
|
||||
fn test_recover_secret_hash() {
|
||||
@@ -105,7 +107,7 @@ mod tests {
|
||||
let epoch = hash_to_field(b"foo");
|
||||
let spam_limit = Fr::from(10);
|
||||
|
||||
let mut tree = PmTree::new(20, Default::default(), Default::default()).unwrap();
|
||||
let mut tree = OptimalMerkleTree::new(20, Default::default(), Default::default()).unwrap();
|
||||
tree.set(0, spam_limit).unwrap();
|
||||
let m_proof = tree.proof(0).unwrap();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user