From e2701150c0018a2e99427f18462a9d63697acefa Mon Sep 17 00:00:00 2001 From: Manish Kumar Date: Mon, 11 Mar 2024 23:52:27 +0530 Subject: [PATCH] blake3 and poseidon2 bench, script for running merkle hash --- hash/sp1/bench/blake2/src/main.rs | 4 +- hash/sp1/bench/blake3/Cargo.toml | 9 ++++ .../blake3/elf/riscv32im-succinct-zkvm-elf | Bin 0 -> 135336 bytes hash/sp1/bench/blake3/src/main.rs | 22 ++++++++ hash/sp1/bench/build.sh | 4 ++ hash/sp1/bench/keccak/src/main.rs | 2 + hash/sp1/bench/poseidon2/Cargo.toml | 12 +++++ .../poseidon2/elf/riscv32im-succinct-zkvm-elf | Bin 0 -> 235916 bytes hash/sp1/bench/poseidon2/src/main.rs | 35 ++++++++++++ hash/sp1/bench/run_tree.sh | 16 ++++++ hash/sp1/bench/script/Cargo.toml | 4 +- hash/sp1/bench/script/src/benches/blake2.rs | 2 +- hash/sp1/bench/script/src/benches/blake3.rs | 43 +++++++++++++++ .../sp1/bench/script/src/benches/poseidon2.rs | 50 ++++++++++++++++++ hash/sp1/bench/script/src/benches/sha256.rs | 1 - hash/sp1/bench/script/src/main.rs | 26 +++++++-- 16 files changed, 222 insertions(+), 8 deletions(-) create mode 100644 hash/sp1/bench/blake3/Cargo.toml create mode 100755 hash/sp1/bench/blake3/elf/riscv32im-succinct-zkvm-elf create mode 100644 hash/sp1/bench/blake3/src/main.rs create mode 100644 hash/sp1/bench/poseidon2/Cargo.toml create mode 100755 hash/sp1/bench/poseidon2/elf/riscv32im-succinct-zkvm-elf create mode 100644 hash/sp1/bench/poseidon2/src/main.rs create mode 100755 hash/sp1/bench/run_tree.sh create mode 100644 hash/sp1/bench/script/src/benches/blake3.rs create mode 100644 hash/sp1/bench/script/src/benches/poseidon2.rs diff --git a/hash/sp1/bench/blake2/src/main.rs b/hash/sp1/bench/blake2/src/main.rs index fa8ca27..d1c3a43 100644 --- a/hash/sp1/bench/blake2/src/main.rs +++ b/hash/sp1/bench/blake2/src/main.rs @@ -2,14 +2,14 @@ #![no_main] sp1_zkvm::entrypoint!(main); -//The patched sha2 rust crate https://github.com/sp1-patches/RustCrypto-hashes +// blake2 of RustCrypto use blake2::Digest; use blake2::Blake2b; pub fn main() { let input = sp1_zkvm::io::read::>(); -// create a Blake2b512 object + // create a Blake2b object let mut hasher = Blake2b::new(); // write input message diff --git a/hash/sp1/bench/blake3/Cargo.toml b/hash/sp1/bench/blake3/Cargo.toml new file mode 100644 index 0000000..6e51f20 --- /dev/null +++ b/hash/sp1/bench/blake3/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] +[package] +version = "0.1.0" +name = "blake3-program" +edition = "2021" + +[dependencies] +sp1-zkvm = { git = "https://github.com/succinctlabs/sp1.git" } +blake3 = "1.5.0" \ No newline at end of file diff --git a/hash/sp1/bench/blake3/elf/riscv32im-succinct-zkvm-elf b/hash/sp1/bench/blake3/elf/riscv32im-succinct-zkvm-elf new file mode 100755 index 0000000000000000000000000000000000000000..c3755868313377386f9d0f5309fb57bd196031a6 GIT binary patch literal 135336 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 literal 0 HcmV?d00001 diff --git a/hash/sp1/bench/blake3/src/main.rs b/hash/sp1/bench/blake3/src/main.rs new file mode 100644 index 0000000..e44992d --- /dev/null +++ b/hash/sp1/bench/blake3/src/main.rs @@ -0,0 +1,22 @@ + +#![no_main] +sp1_zkvm::entrypoint!(main); + +// blake3 of https://github.com/BLAKE3-team/BLAKE3 (official implementation) +use blake3::Hasher; +pub fn main() { + + let input = sp1_zkvm::io::read::>(); + + // create a Blake3 object + let mut hasher = Hasher::new(); + + // write input message + hasher.update(&input); + + // read hash digest + let result: [u8;32] = hasher.finalize().into(); + + sp1_zkvm::io::write(&result); + +} diff --git a/hash/sp1/bench/build.sh b/hash/sp1/bench/build.sh index b5838cf..d05e9b0 100755 --- a/hash/sp1/bench/build.sh +++ b/hash/sp1/bench/build.sh @@ -5,5 +5,9 @@ cd ../keccak cargo prove build cd ../sha256 cargo prove build +cd ../blake3 +cargo prove build +cd ../poseidon2 +cargo prove build cd ../script cargo build --release diff --git a/hash/sp1/bench/keccak/src/main.rs b/hash/sp1/bench/keccak/src/main.rs index da0a147..ba94ff2 100644 --- a/hash/sp1/bench/keccak/src/main.rs +++ b/hash/sp1/bench/keccak/src/main.rs @@ -1,6 +1,8 @@ #![no_main] sp1_zkvm::entrypoint!(main); + +// patched keccak rust crate https://github.com/sp1-patches/tiny-keccak use tiny_keccak::{Hasher, Keccak}; pub fn main() { diff --git a/hash/sp1/bench/poseidon2/Cargo.toml b/hash/sp1/bench/poseidon2/Cargo.toml new file mode 100644 index 0000000..9a7b28e --- /dev/null +++ b/hash/sp1/bench/poseidon2/Cargo.toml @@ -0,0 +1,12 @@ +[workspace] +[package] +version = "0.1.0" +name = "poseidon2-program" +edition = "2021" + +[dependencies] +sp1-zkvm = { git = "https://github.com/succinctlabs/sp1.git" } +zkhash = {git = "https://github.com/HorizenLabs/poseidon2"} +ark-serialize = "0.4" + + diff --git a/hash/sp1/bench/poseidon2/elf/riscv32im-succinct-zkvm-elf b/hash/sp1/bench/poseidon2/elf/riscv32im-succinct-zkvm-elf new file mode 100755 index 0000000000000000000000000000000000000000..742a2c8eb9df5cfde75940a18a5fc05c0fa092ff GIT binary patch literal 235916 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 z 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�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 + + //build input + let mut hash_data: Vec = Vec::new(); + for i in 0..input.len() { + let a_uncompressed = FpBN256::deserialize_uncompressed(&**input.get(i).unwrap()).unwrap(); + hash_data.push(a_uncompressed); + } + + // create a poseidon2 merkle object + let perm = Poseidon2::new(&POSEIDON2_BN256_PARAMS); + let mut mt = MerkleTree::new(perm.clone()); + + let hash_final = mt.accumulate(&hash_data); + + + let mut hash_bytes: Vec = Vec::new(); + hash_final.serialize_uncompressed(&mut hash_bytes).unwrap(); + + sp1_zkvm::io::write(&hash_bytes); + +} diff --git a/hash/sp1/bench/run_tree.sh b/hash/sp1/bench/run_tree.sh new file mode 100755 index 0000000..094983c --- /dev/null +++ b/hash/sp1/bench/run_tree.sh @@ -0,0 +1,16 @@ +#!/bin/bash +if [ -z ${ZKBENCH_HASH_TYPE_TREE} ]; then +ZKBENCH_HASH_TYPE_TREE="poseidon2" +fi + +if [ -z ${ZKBENCH_TREE_DEPTH} ]; then +ZKBENCH_TREE_DEPTH=4 +fi + +cd script +echo "Running benchmarks with the following configurations:" +echo "HASH = $ZKBENCH_HASH_TYPE_TREE" +echo "Tree Depth = $ZKBENCH_TREE_DEPTH" + +# Run the benchmarks +./target/release/bench-script $ZKBENCH_HASH_TYPE_TREE $ZKBENCH_TREE_DEPTH \ No newline at end of file diff --git a/hash/sp1/bench/script/Cargo.toml b/hash/sp1/bench/script/Cargo.toml index 0b5f047..aa82847 100644 --- a/hash/sp1/bench/script/Cargo.toml +++ b/hash/sp1/bench/script/Cargo.toml @@ -7,4 +7,6 @@ edition = "2021" [dependencies] sp1-core = { git = "https://github.com/succinctlabs/sp1.git" } rand = "0.8" -hex = "0.4" \ No newline at end of file +hex = "0.4" +zkhash = {git = "https://github.com/HorizenLabs/poseidon2"} +ark-serialize = "0.4" diff --git a/hash/sp1/bench/script/src/benches/blake2.rs b/hash/sp1/bench/script/src/benches/blake2.rs index 622e24a..7b497f7 100644 --- a/hash/sp1/bench/script/src/benches/blake2.rs +++ b/hash/sp1/bench/script/src/benches/blake2.rs @@ -23,7 +23,7 @@ pub fn blake2_benchmark(size: usize) { let mut proof = SP1Prover::prove(BLAKE2_ELF, stdin).expect("proving failed"); let t1 = t0.elapsed(); // Read output. - let hash_bytes = proof.stdout.read::<[u8;64]>(); + let hash_bytes = proof.stdout.read::<[u8;32]>(); let hash = encode(hash_bytes); println!("hash: {}", hash); diff --git a/hash/sp1/bench/script/src/benches/blake3.rs b/hash/sp1/bench/script/src/benches/blake3.rs new file mode 100644 index 0000000..5c45776 --- /dev/null +++ b/hash/sp1/bench/script/src/benches/blake3.rs @@ -0,0 +1,43 @@ + +use sp1_core::{SP1Prover, SP1Stdin, SP1Verifier}; +use rand::Rng; +use hex::encode; + +const BLAKE3_ELF: &[u8] = include_bytes!("../../../blake3/elf/riscv32im-succinct-zkvm-elf"); + +pub fn generate_random_bytes(length: usize) -> Vec { + let mut rng = rand::thread_rng(); + (0..length).map(|_| rng.gen::()).collect() +} + + +pub fn blake3_benchmark(size: usize) { + + // Generate proof. + let mut stdin = SP1Stdin::new(); + let data = generate_random_bytes(size); + + stdin.write(&data); + + let t0 = std::time::Instant::now(); + let mut proof = SP1Prover::prove(BLAKE3_ELF, stdin).expect("proving failed"); + let t1 = t0.elapsed(); + // Read output. + let hash_bytes = proof.stdout.read::<[u8;32]>(); + let hash = encode(hash_bytes); + println!("hash: {}", hash); + + // Verify proof. + let t2 = std::time::Instant::now(); + SP1Verifier::verify(BLAKE3_ELF, &proof).expect("verification failed"); + let t3 = t2.elapsed(); + + // Save proof. + proof + .save("proof-with-io.json") + .expect("saving proof failed"); + + println!("succesfully generated and verified proof for the program!"); + println!("Proof Generation Time: {:?}", t1); + println!("Proof verification Time: {:?}", t3); +} diff --git a/hash/sp1/bench/script/src/benches/poseidon2.rs b/hash/sp1/bench/script/src/benches/poseidon2.rs new file mode 100644 index 0000000..7a831d1 --- /dev/null +++ b/hash/sp1/bench/script/src/benches/poseidon2.rs @@ -0,0 +1,50 @@ + +use sp1_core::{SP1Prover, SP1Stdin, SP1Verifier}; +use zkhash::fields::{bn256::FpBN256, utils::random_scalar}; +use ark_serialize::{CanonicalSerialize, CanonicalDeserialize}; + +const POSEIDON2_ELF: &[u8] = include_bytes!("../../../poseidon2/elf/riscv32im-succinct-zkvm-elf"); + +pub fn poseidon2_benchmark(mt_depth: usize) { + + // Generate proof. + let mut stdin = SP1Stdin::new(); + + type Scalar = FpBN256; + + // generating data and serialize + let mut input_scalar: Vec> = Vec::new(); + let number_of_leaves: u32 = 1 << mt_depth; + for _ in 0..number_of_leaves { + let mut uncompressed_bytes = Vec::new(); + let a: Scalar = random_scalar(); + a.serialize_uncompressed(&mut uncompressed_bytes).unwrap(); + input_scalar.push(uncompressed_bytes); + } + + stdin.write(&input_scalar); + + let t0 = std::time::Instant::now(); + let mut proof = SP1Prover::prove(POSEIDON2_ELF, stdin).expect("proving failed"); + let t1 = t0.elapsed(); + + // Read output. + let hash_bytes = proof.stdout.read::>(); + let hash_final = Scalar::deserialize_uncompressed(&*hash_bytes).unwrap(); + + println!("hash: {}", hash_final); + + // Verify proof. + let t2 = std::time::Instant::now(); + SP1Verifier::verify(POSEIDON2_ELF, &proof).expect("verification failed"); + let t3 = t2.elapsed(); + + // Save proof. + proof + .save("proof-with-io.json") + .expect("saving proof failed"); + + println!("succesfully generated and verified proof for the program!"); + println!("Proof Generation Time: {:?}", t1); + println!("Proof verification Time: {:?}", t3); +} diff --git a/hash/sp1/bench/script/src/benches/sha256.rs b/hash/sp1/bench/script/src/benches/sha256.rs index eff61f3..39e53f0 100644 --- a/hash/sp1/bench/script/src/benches/sha256.rs +++ b/hash/sp1/bench/script/src/benches/sha256.rs @@ -10,7 +10,6 @@ pub fn generate_random_bytes(length: usize) -> Vec { (0..length).map(|_| rng.gen::()).collect() } - pub fn sha256_benchmark(size: usize) { // Generate proof. diff --git a/hash/sp1/bench/script/src/main.rs b/hash/sp1/bench/script/src/main.rs index 146de3f..b75a413 100644 --- a/hash/sp1/bench/script/src/main.rs +++ b/hash/sp1/bench/script/src/main.rs @@ -1,9 +1,19 @@ pub mod benches{ pub mod keccak; pub mod sha256; + pub mod blake2; + pub mod blake3; + pub mod poseidon2; } -use crate::benches::keccak::keccak_benchmark; -use crate::benches::sha256::sha256_benchmark; + +use crate::benches::{ + keccak::keccak_benchmark, + sha256::sha256_benchmark, + blake2::blake2_benchmark, + blake3::blake3_benchmark, + poseidon2::poseidon2_benchmark +}; + use std::process; fn main() { @@ -32,7 +42,17 @@ fn main() { "blake2" => { println!("Running blake2 benchmark: "); - let _ = keccak_benchmark(size); + let _ = blake2_benchmark(size); + } + + "blake3" => { + println!("Running blake3 benchmark: "); + let _ = blake3_benchmark(size); + } + + "poseidon2" => { + println!("Running poseidon2 benchmark: "); + let _ = poseidon2_benchmark(size); } _ => {