Update to last Poseidon version (which includes the changes of the reference implementation from
26ddaa91db)
Compatible with update at circomlib
(cf853c1cc9)
- Update EdDSA to last circomlib version
- Compatible with circomlib version 0.3.0 at
5935ac69df
- Use blake hash precandidate (non-blake2b) for circomlib
compatibility
- Add circomlib testvector
- Change PrivateKey from BigInt to [u8;32], which lead to faster
signature computation:
(Benchmarks on a Intel(R) Core(TM) i7-8705G CPU @ 3.10GHz, with
32 GB of RAM)
- Old:
```
sign time: [559.84 us 568.41 us 576.26 us]
verify time: [376.59 us 376.68 us 376.78 us]
```
- New:
```
sign time: [383.85 us 390.31 us 396.44 us]
verify time: [371.33 us 376.06 us 381.19 us]
```
- crate version v0.0.5
Benchmarks (On a Intel(R) Core(TM) i7-8705G CPU @ 3.10GHz, with 32 GB of RAM):
- Old:
```
sign time: [953.50 us 953.73 us 953.98 us]
verify time: [832.24 us 832.38 us 832.52 us]
```
- New:
```
sign time: [559.84 us 568.41 us 576.26 us]
verify time: [376.59 us 376.68 us 376.78 us]
```
Add [ff](https://github.com/matter-labs/ff) for internal finite field operations, and add `add-2008-bbjlp` for point addition.
Benchmarks (On a Intel(R) Core(TM) i7-8705G CPU @ 3.10GHz, with 32 GB of RAM):
```
- before:
add time: [53.447 us 53.467 us 53.492 us]
mul_scalar time: [121.19 ms 121.22 ms 121.25 ms]
sign time: [383.01 ms 384.46 ms 385.98 ms]
verify time: [250.56 ms 251.46 ms 252.43 ms]
- current:
add time: [317.34 ns 317.44 ns 317.54 ns]
mul_scalar time: [131.05 us 131.28 us 131.58 us]
sign time: [973.38 us 973.83 us 974.41 us]
verify time: [835.34 us 839.94 us 845.29 us]
```
add: `168x` improvement
mul_scalar: `923x` improvement
sign: `394x` improvement
verify: `300x` improvement
Still needs a refactor.
(On a Intel(R) Core(TM) i7-8705G CPU @ 3.10GHz, with 32 GB of RAM)
- before:
```
sign_poseidon time: [383.01 ms 384.46 ms 385.98 ms]
verify_poseidon time: [250.56 ms 251.46 ms 252.43 ms]
```
- current:
```
sign_poseidon time: [973.38 us 973.83 us 974.41 us]
verify_poseidon time: [835.34 us 839.94 us 845.29 us]
```
sign_poseidon: `394x` improvement
verify_poseidon: `300x` improvement
(On a Intel(R) Core(TM) i7-8705G CPU @ 3.10GHz, with 32 GB of RAM)
- before:
```
add time: [53.447 us 53.467 us 53.492 us]
mul_scalar time: [121.19 ms 121.22 ms 121.25 ms]
```
- current:
```
add time: [317.34 ns 317.44 ns 317.54 ns]
mul_scalar time: [131.05 us 131.28 us 131.58 us]
```
Which is `168x` improvement for `add`, and `923x` improvement for `mul_scalar`.