polkavm icon indicating copy to clipboard operation
polkavm copied to clipboard

bench-curve25519-dalek

Open burdges opened this issue 2 years ago • 0 comments

We should've some well optimized cryptographic code in the benchmarks.

As symmetric, I'd think blake2s hashing some pre-prepared random data.

As asymmetric, it's simplest to do curve25519-dalek I think. I suppose criterion does not fit VM benchmarks so well, so doing cargo bench maybe annoying. A simpler useful benchmark would be a variable base multi-scalar multiplication. In other words, invoke <EdwardsPoint as VartimeMultiscalarMul>::vartime_multiscalar_mul on some pre-prepared random points and scalars. We could do single scalar multiplications instead, but an MSM maybe gives a more meaningful comparison, thanks to being heavier.

Arkworks curve sound relevant of course, but one thing at a time. As curve25519-dalek is single threaded on all platforms, it's slightly easier to get honest benchmarks, and tells largely the same story. It's possible curve25519-dalek still needs backend features for some VMs, but likely still simpler than similar in arkworks.

burdges avatar Nov 22 '23 21:11 burdges