serai/crypto/multiexp
Luke Parker 44e0a41ca1 Add Classic/Compromise DLEqs and a benchmark
Formatted results from my laptop:

EfficientLinear had a average prove time of 188ms
EfficientLinear had a average verify time of 126ms

CompromiseLinear had a average prove time of 176ms
CompromiseLinear had a average verify time of 141ms

ConciseLinear had a average prove time of 191ms
ConciseLinear had a average verify time of 160ms

ClassicLinear had a average prove time of 214ms
ClassicLinear had a average verify time of 159ms

There is a decent error margin here. Concise is a drop-in replacement 
for Classic, in practice *not* theory. Efficient is optimal for 
performance, yet largest. Compromise is a middleground.
2022-07-07 08:36:23 -05:00
..
src Add Classic/Compromise DLEqs and a benchmark 2022-07-07 08:36:23 -05:00
Cargo.toml Implement variable-sized windows into multiexp 2022-06-30 09:30:24 -04:00
LICENSE Fix https://github.com/serai-dex/serai/issues/5 2022-05-03 07:42:09 -04:00
README.md Prepare multiexp for publishing 2022-06-19 06:35:45 -04:00

Multiexp

A multiexp implementation for ff/group implementing Straus and Pippenger. A batch verification API is also available via the "batch" feature, which enables secure multiexponentation batch verification given a series of values which should sum to 0, identifying which doesn't via binary search if they don't.