Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
fix as_bytes in clinkv2
  • Loading branch information
sunhuachuang committed Sep 24, 2020
1 parent 686eb3d commit 9b1e8f5
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 23 deletions.
2 changes: 1 addition & 1 deletion contracts/mini_bulletproofs_verifier/src/entry.rs
Expand Up @@ -6,7 +6,7 @@ use crate::error::Error;

use ckb_zkp::{
bn_256, bulletproofs,
math::{test_rng, PrimeField},
math::PrimeField,
r1cs::{ConstraintSynthesizer, ConstraintSystem, SynthesisError},
};

Expand Down
8 changes: 0 additions & 8 deletions scheme/src/clinkv2/mod.rs
Expand Up @@ -136,14 +136,6 @@ fn push_constraints<F: Field>(
}
}

// TODO need del.
fn as_bytes<T>(x: &T) -> &[u8] {
use core::mem;
use core::slice;

unsafe { slice::from_raw_parts(x as *const T as *const u8, mem::size_of_val(x)) }
}

pub struct ProveAssignment<E: PairingEngine> {
// Constraints
pub at: Vec<Vec<(E::Fr, Index)>>,
Expand Down
12 changes: 7 additions & 5 deletions scheme/src/clinkv2/prover.rs
Expand Up @@ -8,10 +8,9 @@ use rand::Rng;
use rayon::prelude::*;

use math::fft::{DensePolynomial, EvaluationDomain};
use math::{Field, One, PairingEngine, UniformRand, Zero};
use math::{Field, One, PairingEngine, ToBytes, UniformRand, Zero};

use super::{
as_bytes,
kzg10::KZG10,
r1cs::{Index, SynthesisError},
Proof, ProveAssignment, ProveKey,
Expand Down Expand Up @@ -92,8 +91,9 @@ pub fn create_random_proof<E: PairingEngine, R: Rng>(
}
//println!("rj_ifft_time: {:?}", rj_ifft_time);
//println!("rj_commit_time: {:?}", rj_commit_time);

transcript.append_message(b"witness polynomial commitments", as_bytes(&r_mid_comms));
let mut r_mid_comms_bytes = vec![];
r_mid_comms.write(&mut r_mid_comms_bytes)?;
transcript.append_message(b"witness polynomial commitments", &r_mid_comms_bytes);

let mut c = [0u8; 31];
transcript.challenge_bytes(b"batching challenge", &mut c);
Expand Down Expand Up @@ -200,7 +200,9 @@ pub fn create_random_proof<E: PairingEngine, R: Rng>(
//q_commit_time += start2.elapsed();
//println!("q_commit_time: {:?}", q_commit_time);

transcript.append_message(b"quotient polynomial commitments", as_bytes(&q_comm));
let mut q_comm_bytes = vec![];
q_comm.write(&mut q_comm_bytes)?;
transcript.append_message(b"quotient polynomial commitments", &q_comm_bytes);

// Prove
// Generate a challenge
Expand Down
16 changes: 9 additions & 7 deletions scheme/src/clinkv2/verifier.rs
@@ -1,12 +1,11 @@
use merlin::Transcript;

use math::fft::EvaluationDomain;
use math::{Field, One, PairingEngine, Zero};
use math::{Field, One, PairingEngine, ToBytes, Zero};

use crate::Vec;

use super::{
as_bytes,
kzg10::KZG10,
r1cs::{Index, SynthesisError},
Proof, VerifyAssignment, VerifyKey,
Expand All @@ -26,15 +25,18 @@ pub fn verify_proof<E: PairingEngine>(
let m_mid = proof.r_mid_comms.len();
let n = io[0].len();

transcript.append_message(
b"witness polynomial commitments",
as_bytes(&proof.r_mid_comms),
);
let mut r_mid_comms_bytes = vec![];
proof.r_mid_comms.write(&mut r_mid_comms_bytes)?;
transcript.append_message(b"witness polynomial commitments", &r_mid_comms_bytes);

let mut c = [0u8; 31];
transcript.challenge_bytes(b"batching challenge", &mut c);
let eta = E::Fr::from_random_bytes(&c).unwrap();

transcript.append_message(b"quotient polynomial commitments", as_bytes(&proof.q_comm));
let mut q_comm_bytes = vec![];
proof.q_comm.write(&mut q_comm_bytes)?;
transcript.append_message(b"quotient polynomial commitments", &q_comm_bytes);

c = [0u8; 31];
transcript.challenge_bytes(b"random point", &mut c);
let zeta = E::Fr::from_random_bytes(&c).unwrap();
Expand Down
3 changes: 1 addition & 2 deletions scheme/src/lib.rs
Expand Up @@ -8,7 +8,7 @@
//#![deny(unused_attributes, unused_imports, unused_mut)]
#![deny(renamed_and_removed_lints, stable_features, unused_allocation)]
#![deny(unused_comparisons, bare_trait_objects, unused_must_use, const_err)]
//#![forbid(unsafe_code)]
#![forbid(unsafe_code)]
//#![deny(trivial_casts)]

#[macro_use]
Expand All @@ -35,7 +35,6 @@ use std::{
vec::Vec,
};

#[cfg(any(feature = "groth16", feature = "marlin", feature = "clinkv2"))]
#[macro_use]
extern crate math;

Expand Down

0 comments on commit 9b1e8f5

Please sign in to comment.