Skip to content

Commit

Permalink
feat: updates rng to chacha20
Browse files Browse the repository at this point in the history
  • Loading branch information
kobigurk committed Feb 12, 2019
1 parent 7c0a0c5 commit 7389437
Show file tree
Hide file tree
Showing 8 changed files with 29 additions and 19 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ Discussion: [https://community.zkproof.org/t/zksnarks-in-webassembly-running-dem

| Circuit | Num Constraints | CPU | Platform | Phase | Running time (milliseconds) |
| ------------------------ | --------------- |--------- | --------- | -------- | --------------------------- |
| Discrete Log | 1085 | i7-7500U | x86\_64 | Generate | 1188 |
| Discrete Log | 1085 | i7-7500U | x86\_64 | Generate | 881 |
| Discrete Log | 1085 | i7-7500U | x86\_64 | Prove | 169 |
| Discrete Log | 1085 | i7-7500U | x86\_64 | Verify | 5 |
| Merkle Tree (depth 32) | 44193 | i7-7500U | x86\_64 | Generate | 7966 |
| Merkle Tree (depth 32) | 44193 | i7-7500U | x86\_64 | Prove | 1133 |
| Merkle Tree (depth 32) | 44193 | i7-7500U | x86\_64 | Prove | 831 |
| Merkle Tree (depth 32) | 44193 | i7-7500U | x86\_64 | Verify | 5 |
| Discrete Log | 1085 | i7-7500U | WASM | Generate | 3785 |
| Discrete Log | 1085 | i7-7500U | WASM | Prove | 606 |
Expand Down
Binary file added docs/229aab4250cd6d33286c.module.wasm
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/worker.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions sapling-crypto/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ crate-type = ["lib", "staticlib"]

[dependencies]
rand = "0.4"
rand_chacha = "0.1.1"
digest = "0.7"
byteorder = "1"
ff = { path = '../ff', features = ["derive"] }
Expand Down
17 changes: 17 additions & 0 deletions web-proof/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 5 additions & 13 deletions web-proof/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ impl Stopwatch {
}


use rand::{XorShiftRng, SeedableRng};
use rand::{ChaChaRng, SeedableRng};
use ff::{BitIterator, PrimeField, PrimeFieldRepr, Field};
use pairing::{bn256::{Bn256, Fr}};
use sapling_crypto::{
Expand Down Expand Up @@ -237,9 +237,7 @@ pub fn generate_tree(seed_slice: &[u32], depth: u8) -> Result<JsValue, JsValue>
}

fn run_generate(seed_slice: &[u32]) -> Result<KGGenerate, Box<Error>> {
let mut seed : [u32; 4] = [0; 4];
seed.copy_from_slice(seed_slice);
let rng = &mut XorShiftRng::from_seed(seed);
let rng = &mut ChaChaRng::from_seed(seed_slice);

let stopwatch = Stopwatch::start();
let j_params = &JubjubBn256::new();
Expand All @@ -263,9 +261,7 @@ fn run_generate(seed_slice: &[u32]) -> Result<KGGenerate, Box<Error>> {
}

fn run_generate_tree(seed_slice: &[u32], depth: u8) -> Result<KGGenerate, Box<Error>> {
let mut seed : [u32; 4] = [0; 4];
seed.copy_from_slice(seed_slice);
let rng = &mut XorShiftRng::from_seed(seed);
let rng = &mut ChaChaRng::from_seed(seed_slice);

let stopwatch = Stopwatch::start();
let j_params = &JubjubBn256::new();
Expand Down Expand Up @@ -315,9 +311,7 @@ fn run_prove(seed_slice: &[u32], params: &str, x_hex: &str) -> Result<KGProof, B
}
let de_params = Parameters::<Bn256>::read(&hex::decode(params)?[..], true)?;

let mut seed : [u32; 4] = [0; 4];
seed.copy_from_slice(seed_slice);
let rng = &mut XorShiftRng::from_seed(seed);
let rng = &mut ChaChaRng::from_seed(seed_slice);
let params = &JubjubBn256::new();

let g = params.generator(FixedGenerators::ProofGenerationKey);
Expand Down Expand Up @@ -364,9 +358,7 @@ fn run_prove_tree(seed_slice: &[u32], params: &str, x_hex: &str, depth: u8) -> R
}
let de_params = Parameters::<Bn256>::read(&hex::decode(params)?[..], true)?;

let mut seed : [u32; 4] = [0; 4];
seed.copy_from_slice(seed_slice);
let rng = &mut XorShiftRng::from_seed(seed);
let rng = &mut ChaChaRng::from_seed(seed_slice);
let params = &JubjubBn256::new();

let x_big = BigInt::from_str_radix(x_hex, 16)?;
Expand Down
2 changes: 1 addition & 1 deletion web-proof/web/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ function tree_run_prove() {
$('#tree_spinner_prove').show();
let params = window.params;
let x = $('#tree_txt_prove_x').val();
let depth = $('#tree_txt_depth').val();
let depth = $('#tree_txt_prove_depth').val();
worker.postMessage({type: 'prove', params, x, circuit: 'tree', depth});
}
window.tree_run_prove = tree_run_prove;
Expand Down
4 changes: 2 additions & 2 deletions web-proof/web/worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ onmessage = event => {
}
switch (event.data.type) {
case 'generate':
var seed = new Uint32Array(4);
var seed = new Uint32Array(8);
self.crypto.getRandomValues(seed);

var gen;
Expand All @@ -28,7 +28,7 @@ onmessage = event => {
postMessage({type: event.data.type, circuit: event.data.circuit, result: gen});
break;
case 'prove':
var seed = new Uint32Array(4);
var seed = new Uint32Array(8);
self.crypto.getRandomValues(seed);
var p;
switch (event.data.circuit) {
Expand Down

0 comments on commit 7389437

Please sign in to comment.