Add bcdg range proof
This commit is contained in:
@ -288,13 +288,13 @@
|
||||
|
||||
console.log("Benching")
|
||||
|
||||
performance.mark("paillier-start")
|
||||
performance.mark("p4-start")
|
||||
for (let i = 0; i < ROUNDS; i++) {
|
||||
proveRegions(regions)
|
||||
}
|
||||
performance.mark("paillier-end")
|
||||
performance.mark("p4-end")
|
||||
|
||||
console.log(`Bench done. Time per proof: ${performance.measure("paillier-duration", "paillier-start", "paillier-end").duration / ROUNDS}`)
|
||||
console.log(`Bench done. Time per proof: ${performance.measure("p4-duration", "p4-start", "p4-end").duration / ROUNDS}`)
|
||||
}
|
||||
|
||||
function Protocol4VerifierBench() {
|
||||
@ -316,13 +316,56 @@
|
||||
|
||||
console.log("Benching")
|
||||
|
||||
performance.mark("paillier-start")
|
||||
performance.mark("pv-start")
|
||||
for (let i = 0; i < ROUNDS; i++) {
|
||||
verifyRegions(proof, paillier.pubKey)
|
||||
}
|
||||
performance.mark("paillier-end")
|
||||
performance.mark("pv-end")
|
||||
|
||||
console.log(`Bench done. Time per verification: ${performance.measure("paillier-duration", "paillier-start", "paillier-end").duration / ROUNDS}`)
|
||||
console.log(`Bench done. Time per verification: ${performance.measure("pv-duration", "pv-start", "pv-end").duration / ROUNDS}`)
|
||||
}
|
||||
|
||||
function RangeProofBench() {
|
||||
console.log("Warming up")
|
||||
|
||||
const ct = paillier.pubKey.encrypt(5n)
|
||||
const ROUNDS = 20;
|
||||
|
||||
for (let i = 0; i < 5; i++) {
|
||||
proveRange(ct, 10n)
|
||||
}
|
||||
|
||||
console.log("Benching")
|
||||
|
||||
performance.mark("rp-start")
|
||||
for (let i = 0; i < ROUNDS; i++) {
|
||||
proveRange(ct, 10n)
|
||||
}
|
||||
performance.mark("rp-end")
|
||||
|
||||
console.log(`Bench done. Time per proof: ${performance.measure("rp-duration", "rp-start", "rp-end").duration / ROUNDS}`)
|
||||
}
|
||||
|
||||
function RangeVerifierBench() {
|
||||
console.log("Warming up")
|
||||
|
||||
const ROUNDS = 20;
|
||||
const ct = paillier.pubKey.encrypt(5n)
|
||||
let proof = proveRange(ct, 10n)
|
||||
|
||||
for (let i = 0; i < 5; i++) {
|
||||
verifyRange(proof, paillier.pubKey)
|
||||
}
|
||||
|
||||
console.log("Benching")
|
||||
|
||||
performance.mark("rv-start")
|
||||
for (let i = 0; i < ROUNDS; i++) {
|
||||
verifyRange(proof, paillier.pubKey)
|
||||
}
|
||||
performance.mark("rv-end")
|
||||
|
||||
console.log(`Bench done. Time per verification: ${performance.measure("rv-duration", "rv-start", "rv-end").duration / ROUNDS}`)
|
||||
}
|
||||
|
||||
// https://gist.github.com/kawanet/352a2ed1d1656816b2bc
|
||||
@ -357,6 +400,25 @@
|
||||
};
|
||||
}
|
||||
|
||||
function RangeSize() {
|
||||
const ct = paillier.pubKey.encrypt(5n)
|
||||
let ROUNDS = 10;
|
||||
|
||||
let size = 0;
|
||||
let compressedSize = 0;
|
||||
|
||||
for (let x = 0; x < ROUNDS; x++) {
|
||||
let s = JSON.stringify(proveRange(ct, 10n));
|
||||
size += string_to_buffer(s).byteLength;
|
||||
compressedSize += LZString.compressToUint8Array(s).length;
|
||||
}
|
||||
|
||||
return {
|
||||
size: size / ROUNDS,
|
||||
compressedSize: compressedSize / ROUNDS
|
||||
};
|
||||
}
|
||||
|
||||
function ZeroProofSize() {
|
||||
const ROUNDS = 100;
|
||||
const cipherText = paillier.pubKey.encrypt(0n)
|
||||
|
Reference in New Issue
Block a user