moneromooo-monero
74fb3d882c
multiexp: some minor speedups
2018-10-22 16:08:26 +00:00
moneromooo-monero
a6d2e246f3
bulletproofs: only enable profiling on request
2018-10-22 16:07:44 +00:00
moneromooo-monero
a110e6aa18
multiexp: tune which variants to use for which number of points
2018-10-22 16:07:44 +00:00
moneromooo-monero
8b4767221c
bulletproofs: speedup prover
2018-10-22 16:07:44 +00:00
moneromooo-monero
6f9ae5b6eb
multiexp: handle pippenger multiexps with part precalc
2018-10-22 16:07:44 +00:00
moneromooo-monero
10e5a92769
bulletproofs: maintain -z4, -z5, and -y0 to avoid subtractions
2018-10-22 16:07:44 +00:00
moneromooo-monero
8629a42cf6
bulletproofs: rework flow to use sarang's fast batch inversion code
2018-10-22 16:07:44 +00:00
moneromooo-monero
fc9f7d9c81
bulletproofs: merge multiexps as per sarang's new python code
2018-10-22 16:07:44 +00:00
moneromooo-monero
4061960a16
multiexp: pack the digits table when STRAUS_C is 4
...
Spotted by stoffu
2018-10-22 16:07:44 +00:00
moneromooo-monero
bf8e4b9870
bulletproofs: some more minor speedup
2018-10-22 16:07:44 +00:00
moneromooo-monero
a281b950bf
bulletproofs: remove single value prover
...
It is now expressed in terms of the array prover
2018-10-22 16:07:44 +00:00
moneromooo-monero
484155d043
bulletproofs: some more speedup
2018-10-22 16:07:44 +00:00
moneromooo-monero
a621d6c8b4
bulletproofs: random minor speedups
2018-10-22 16:07:44 +00:00
moneromooo-monero
a49a17618f
bulletproofs: shave off a lot of scalar muls from the g/h construction
2018-10-22 16:07:44 +00:00
moneromooo-monero
4564a5d17b
bulletproofs: speedup PROVE
2018-10-22 16:07:44 +00:00
moneromooo-monero
1dd5c73f62
bulletproofs: multiply points by 8 first thing in verification
...
instead of merging that with other scalar multiplications
where possible for speed, since this is not actually safe
2018-09-24 14:02:51 +00:00
Riccardo Spagni
4a652d6b52
Merge pull request #4379
...
607301bf
rct: avoid repeated unnecessary conversions when accummulating (moneromooo-monero)
2018-09-21 20:42:41 +02:00
moneromooo-monero
607301bf6d
rct: avoid repeated unnecessary conversions when accummulating
2018-09-14 10:18:01 +00:00
stoffu
67a56a9f8b
rctTypes: fix incorrect serialization
2018-09-12 20:33:10 +09:00
moneromooo-monero
8f418a6db0
bulletproofs: #include <openssl/bn.h>
...
Apparently needed for openssl 1.1.x
2018-09-11 13:38:34 +00:00
moneromooo-monero
2bf636503f
bulletproofs: speed up the latest changes a bit
2018-09-11 13:38:32 +00:00
moneromooo-monero
044dff5a30
bulletproofs: scale points by 8 to ensure subgroup validity
2018-09-11 13:38:31 +00:00
moneromooo-monero
c83012c476
bulletproofs: match aggregated verification to sarang's latest prototype
2018-09-11 13:38:30 +00:00
moneromooo-monero
463434d1f7
more comprehensive test for ge_p3 comparison to identity/point at infinity
...
Reported by QuarksLab.
2018-09-11 13:38:20 +00:00
moneromooo-monero
a129bbd944
multiexp: fix maxscalar off by one
...
Reported by QuarksLab.
2018-09-11 13:38:17 +00:00
moneromooo-monero
7ed496cc78
ringct: error out when hashToPoint* returns the point at infinity
...
Reported by QuarksLab.
2018-09-11 13:38:16 +00:00
moneromooo-monero
61632dc166
ringct: prevent a potential very large allocation
...
Reported by QuarksLab.
2018-09-11 13:38:14 +00:00
moneromooo-monero
0825e97436
multiexp: fix wrong Bos-Coster result for 1 non trivial input
...
Reported by QuarksLab.
2018-09-11 13:38:10 +00:00
moneromooo-monero
a1359ad43c
Check inputs to addKeys are in range
...
Reported by QuarksLab.
2018-09-11 13:38:09 +00:00
moneromooo-monero
fe0fa3b9c5
bulletproofs: reject x, y, z, or w[i] being zero
...
Also try again when we're generate a proof with those characteristics
Reported by QuarksLab.
2018-09-11 13:38:08 +00:00
moneromooo-monero
5ffb2ff9b7
v8: per byte fee, pad bulletproofs, fixed 11 ring size
2018-09-11 13:38:07 +00:00
moneromooo-monero
869b3bf824
bulletproofs: a few fixes from the Kudelski review
...
- fix integer overflow in n_bulletproof_amounts
- check input scalars are in range
- remove use of environment variable to tweak straus performance
- do not use implementation defined signed shift for signum
2018-09-11 13:38:05 +00:00
moneromooo-monero
c429176248
bulletproofs: reject points not in the main subgroup
2018-09-11 13:38:04 +00:00
moneromooo-monero
1569717718
bulletproofs: speed up a few multiplies using existing Hi cache
2018-09-11 13:38:03 +00:00
moneromooo-monero
0b05a0fa74
Add Pippenger cache and limit Straus cache size
2018-09-11 13:38:02 +00:00
moneromooo-monero
263431c486
Pippenger multiexp
...
Based on sarang's python code
2018-09-11 13:37:45 +00:00
moneromooo-monero
1ed0ed4de4
multiexp: cut down on memory allocations
2018-09-11 13:37:44 +00:00
moneromooo-monero
1b867e7f40
precalc the ge_p3 representation of H
2018-09-11 13:37:42 +00:00
moneromooo-monero
7e67c52fa2
Add a define for the max number of bulletproof multi-outputs
2018-09-11 13:37:38 +00:00
moneromooo-monero
2a8fcb421b
Bulletproof aggregated verification and tests
...
Also constrains bulletproofs to simple rct, for simplicity
2018-09-11 13:37:37 +00:00
moneromooo-monero
126196b017
multiexp: some speedups
...
- use a raw memory block to store cache
- use aligned memory
- use doubling API where appropriate
- calculate straus in bands
2018-09-11 13:37:35 +00:00
moneromooo-monero
bacf0a1e2f
bulletproofs: add aggregated verification
...
Ported from sarang's java code
2018-09-11 13:37:32 +00:00
moneromooo-monero
e895c3def1
make straus cached mode thread safe, and add tests for it
2018-09-11 13:37:31 +00:00
moneromooo-monero
7f48bf05d7
multiexp: bos coster now works for just one point
2018-09-11 13:37:30 +00:00
moneromooo-monero
9ce9f8caf6
bulletproofs: add multi output bulletproofs to rct
2018-09-11 13:37:28 +00:00
moneromooo-monero
939bc22332
add Straus multiexp
2018-09-11 13:37:25 +00:00
moneromooo-monero
9ff6e6a0a7
ringct: add bos coster multiexp
2018-09-11 13:37:24 +00:00
moneromooo-monero
e9164bb38b
bulletproofs: misc optimizations
...
Use double mults where possible, avoid conversions, simplify
2018-09-11 13:37:23 +00:00
moneromooo-monero
aacfd6e370
bulletproofs: multi-output bulletproofs
2018-09-11 13:37:17 +00:00
moneromooo-monero
7c8f95d3e2
ringct: make conversion functions return const refs
...
This might avoid unnecessary copies.
Reported by stoffu
2018-09-04 18:28:20 +00:00