Improvement in multiexp

This commit is contained in:
Jordi Baylina
2019-04-27 07:09:17 +02:00
parent cd5cb59ecd
commit 0c19558260
10 changed files with 368 additions and 20 deletions

View File

@@ -5,7 +5,7 @@
<script>
var witness;
var proving_key;
var provingKey;
function onLoad() {
@@ -35,6 +35,42 @@ function calcProof() {
});
}
function test() {
const groth16 = window.groth16;
const nSignals = 1;
const pkey32 = new Uint32Array(provingKey);
const pPointsA = pkey32[5];
const points = provingKey.slice(pPointsA, pPointsA + nSignals*64);
const signals = witness.slice(0, nSignals*32);
const pr1 = groth16.alloc(96);
const pPoints = groth16.alloc(points.byteLength);
groth16.putBin(pPoints, points);
const pSignals = groth16.alloc(signals.byteLength);
groth16.putBin(pSignals, signals);
groth16.instance.exports.g1_zero(pr1);
groth16.instance.exports.g1_multiexp(pSignals, pPoints, nSignals, 1, pr1);
groth16.instance.exports.g1_affine(pr1, pr1);
groth16.instance.exports.g1_fromMontgomery(pr1, pr1);
const r1 = groth16.bin2g1(groth16.getBin(pr1, 96));
groth16.instance.exports.g1_zero(pr1);
groth16.instance.exports.g1_multiexp2(pSignals, pPoints, nSignals, 1, pr1);
groth16.instance.exports.g1_affine(pr1, pr1);
groth16.instance.exports.g1_fromMontgomery(pr1, pr1);
const r2 = groth16.bin2g1(groth16.getBin(pr1, 96));
console.log(r1);
console.log(r2);
}
</script>
<body onLoad="onLoad()">
<h1>iden3</h1>