mirror of
https://github.com/arnaucube/testudo.git
synced 2026-01-12 08:41:29 +01:00
implement alternative transcript with poseidon backend
This commit is contained in:
@@ -6,9 +6,11 @@ extern crate libspartan;
|
||||
extern crate merlin;
|
||||
extern crate rand;
|
||||
|
||||
use ark_serialize::*;
|
||||
use libspartan::parameters::poseidon_params;
|
||||
use libspartan::poseidon_transcript::PoseidonTranscript;
|
||||
use libspartan::{Instance, NIZKGens, NIZK};
|
||||
use merlin::Transcript;
|
||||
use ark_serialize::*;
|
||||
|
||||
fn print(msg: &str) {
|
||||
let star = "* ";
|
||||
@@ -31,8 +33,9 @@ pub fn main() {
|
||||
// produce public generators
|
||||
let gens = NIZKGens::new(num_cons, num_vars, num_inputs);
|
||||
|
||||
let params = poseidon_params();
|
||||
// produce a proof of satisfiability
|
||||
let mut prover_transcript = Transcript::new(b"nizk_example");
|
||||
let mut prover_transcript = PoseidonTranscript::new(¶ms);
|
||||
let proof = NIZK::prove(&inst, vars, &inputs, &gens, &mut prover_transcript);
|
||||
|
||||
let mut proof_encoded = Vec::new();
|
||||
@@ -41,7 +44,7 @@ pub fn main() {
|
||||
print(&msg_proof_len);
|
||||
|
||||
// verify the proof of satisfiability
|
||||
let mut verifier_transcript = Transcript::new(b"nizk_example");
|
||||
let mut verifier_transcript = PoseidonTranscript::new(¶ms);
|
||||
assert!(proof
|
||||
.verify(&inst, &inputs, &mut verifier_transcript, &gens)
|
||||
.is_ok());
|
||||
|
||||
@@ -5,9 +5,10 @@ extern crate flate2;
|
||||
extern crate libspartan;
|
||||
extern crate merlin;
|
||||
|
||||
use libspartan::{Instance, SNARKGens, SNARK};
|
||||
use merlin::Transcript;
|
||||
use ark_serialize::*;
|
||||
use libspartan::parameters::poseidon_params;
|
||||
use libspartan::poseidon_transcript::PoseidonTranscript;
|
||||
use libspartan::{Instance, SNARKGens, SNARK};
|
||||
|
||||
fn print(msg: &str) {
|
||||
let star = "* ";
|
||||
@@ -33,8 +34,10 @@ pub fn main() {
|
||||
// create a commitment to R1CSInstance
|
||||
let (comm, decomm) = SNARK::encode(&inst, &gens);
|
||||
|
||||
let params = poseidon_params();
|
||||
|
||||
// produce a proof of satisfiability
|
||||
let mut prover_transcript = Transcript::new(b"snark_example");
|
||||
let mut prover_transcript = PoseidonTranscript::new(¶ms);
|
||||
let proof = SNARK::prove(
|
||||
&inst,
|
||||
&comm,
|
||||
@@ -51,7 +54,7 @@ pub fn main() {
|
||||
print(&msg_proof_len);
|
||||
|
||||
// verify the proof of satisfiability
|
||||
let mut verifier_transcript = Transcript::new(b"snark_example");
|
||||
let mut verifier_transcript = PoseidonTranscript::new(¶ms);
|
||||
assert!(proof
|
||||
.verify(&comm, &inputs, &mut verifier_transcript, &gens)
|
||||
.is_ok());
|
||||
|
||||
Reference in New Issue
Block a user