Commit 2f0954e
committed
silentpayments: tweak spend pubkey using ecmult_gen_var (~25% scanning speedup for small N)
Note that the tweak t_k is not considered a long-term secret, so using
variable-time functions for calculating P_k = B_spend + t_k * G seems fine.
This leads to a ~25% scanning speedup if the number of outputs is small (N <= 10):
master:
```
$ ./build/bin/bench silentpayments_scan_nomatch
Benchmark , Min(us) , Avg(us) , Max(us)
silentpayments_scan_nomatch_N=2 , 39.3 , 39.3 , 39.3
silentpayments_scan_nomatch_N=5 , 40.4 , 40.4 , 40.4
silentpayments_scan_nomatch_N=10 , 43.3 , 43.3 , 43.3
silentpayments_scan_nomatch_N=100 , 89.0 , 89.6 , 91.0
silentpayments_scan_nomatch_N=1000 , 560.0 , 563.0 , 568.0
silentpayments_scan_nomatch_N=2323 , 1254.0 , 1259.0 , 1271.0
silentpayments_scan_nomatch_N=23250 , 12196.0 , 12209.0 , 12228.0
```
PR branch (using ecmult_gen_var for calculating t_k * G):
```
$ ./build/bin/bench silentpayments_scan_nomatch
Benchmark , Min(us) , Avg(us) , Max(us)
silentpayments_scan_nomatch_N=2 , 30.5 , 30.5 , 30.5
silentpayments_scan_nomatch_N=5 , 31.7 , 31.7 , 31.7
silentpayments_scan_nomatch_N=10 , 34.6 , 34.6 , 34.6
silentpayments_scan_nomatch_N=100 , 80.0 , 81.2 , 85.0
silentpayments_scan_nomatch_N=1000 , 550.0 , 552.0 , 554.0
silentpayments_scan_nomatch_N=2323 , 1239.0 , 1244.0 , 1253.0
silentpayments_scan_nomatch_N=23250 , 12164.0 , 12182.0 , 12214.0
```
Speedups:
N=2: ~28.85%
N=5: ~27.44%
N=10: ~25.14%
N=100: ~10.34%
N=1000: ~1.99%1 parent 53ca31a commit 2f0954e
1 file changed
Lines changed: 16 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
15 | 14 | | |
16 | 15 | | |
17 | 16 | | |
| |||
148 | 147 | | |
149 | 148 | | |
150 | 149 | | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
151 | 164 | | |
152 | 165 | | |
153 | 166 | | |
| |||
171 | 184 | | |
172 | 185 | | |
173 | 186 | | |
174 | | - | |
| 187 | + | |
175 | 188 | | |
176 | 189 | | |
177 | 190 | | |
| |||
701 | 714 | | |
702 | 715 | | |
703 | 716 | | |
704 | | - | |
| 717 | + | |
705 | 718 | | |
706 | 719 | | |
707 | 720 | | |
| |||
0 commit comments