https://github.com/dalek-cryptography/bulletproofs 中bench所实用的value和blinding为随机数,为保证比对效果,对create_aggregated_rangeproof_helper
和verify_aggregated_rangeproof_helper
函数中的值限定为与 https://github.com/adjoint-io/bulletproofs 中的一样:
let values: Vec = (0..m).map(|_| 7238283).collect();
let blindings: Vec = (0..m).map(|_| Scalar::from(827361 as u64)).collect();
cargo bench
对应结果为:(限定为相应的值后,其create proof和verify proof的性能与随机数相比均有所下降。参见对比前一篇博客)
Running target/release/deps/range_proof-4c5c0d62c8330b83
Aggregated 64-bit rangeproof creation/1
time: [51.444 ms 53.726 ms 56.741 ms]
change: [+109.88% +124.50% +141.72%] (p = 0.00 < 0.05)
Performance has regressed.
Aggregated 64-bit rangeproof creation/2
time: [99.195 ms 106.84 ms 121.29 ms]
change: [+105.17% +121.95% +143.83%] (p = 0.00 < 0.05)
Performance has regressed.
Found 1 outliers among 10 measurements (10.00%)
1 (10.00%) high severe
Aggregated 64-bit rangeproof creation/4
time: [211.62 ms 216.40 ms 226.23 ms]
change: [+116.55% +136.77% +157.73%] (p = 0.00 < 0.05)
Performance has regressed.
Aggregated 64-bit rangeproof creation/8
time: [419.66 ms 444.50 ms 467.96 ms]
change: [+110.17% +123.49% +138.35%] (p = 0.00 < 0.05)
Performance has regressed.
Found 1 outliers among 10 measurements (10.00%)
1 (10.00%) high severe
Aggregated 64-bit rangeproof creation/16
time: [791.57 ms 811.25 ms 835.03 ms]
change: [+97.526% +108.00% +119.60%] (p = 0.00 < 0.05)
Performance has regressed.
Aggregated 64-bit rangeproof creation/32
time: [1.5489 s 1.5721 s 1.6022 s]
change: [+118.90% +127.50% +135.01%] (p = 0.00 < 0.05)
Performance has regressed.
Aggregated 64-bit rangeproof verification/1
time: [6.6476 ms 6.7833 ms 6.9460 ms]
change: [+124.41% +134.32% +144.18%] (p = 0.00 < 0.05)
Performance has regressed.
Found 7 outliers among 100 measurements (7.00%)
5 (5.00%) high mild
2 (2.00%) high severe
Aggregated 64-bit rangeproof verification/2
time: [11.760 ms 12.079 ms 12.499 ms]
change: [+90.251% +108.97% +126.25%] (p = 0.00 < 0.05)
Performance has regressed.
Found 7 outliers among 100 measurements (7.00%)
2 (2.00%) low mild
2 (2.00%) high mild
3 (3.00%) high severe
Aggregated 64-bit rangeproof verification/4
time: [20.192 ms 20.918 ms 21.726 ms]
change: [+125.24% +133.58% +141.28%] (p = 0.00 < 0.05)
Performance has regressed.
Found 13 outliers among 100 measurements (13.00%)
1 (1.00%) low mild
8 (8.00%) high mild
4 (4.00%) high severe
Aggregated 64-bit rangeproof verification/8
time: [28.145 ms 29.914 ms 31.996 ms]
change: [+110.03% +122.22% +134.80%] (p = 0.00 < 0.05)
Performance has regressed.
Found 21 outliers among 100 measurements (21.00%)
12 (12.00%) low mild
6 (6.00%) high mild
3 (3.00%) high severe
Aggregated 64-bit rangeproof verification/16
time: [39.857 ms 41.468 ms 43.204 ms]
change: [+37.463% +44.111% +50.717%] (p = 0.00 < 0.05)
Performance has regressed.
Found 9 outliers among 100 measurements (9.00%)
1 (1.00%) low severe
1 (1.00%) low mild
3 (3.00%) high mild
4 (4.00%) high severe
Aggregated 64-bit rangeproof verification/32
time: [68.973 ms 74.312 ms 79.542 ms]
change: [+38.676% +47.817% +59.777%] (p = 0.00 < 0.05)
Performance has regressed.
Found 18 outliers among 100 measurements (18.00%)
12 (12.00%) low mild
4 (4.00%) high mild
2 (2.00%) high severe
若只考虑单个value的性能,不考虑Aggregated的情况,修改:
static AGGREGATION_SIZES: [usize; 1] = [1];
cargo bench
对应性能表现为:
Running target/release/deps/range_proof-4c5c0d62c8330b83
Aggregated 64-bit rangeproof creation
time: [47.982 ms 52.143 ms 56.340 ms]
Found 2 outliers among 10 measurements (20.00%)
1 (10.00%) high mild
1 (10.00%) high severe
Aggregated 64-bit rangeproof verification
time: [4.7734 ms 5.4260 ms 6.1754 ms]
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) high mild
2 (2.00%) high severe