SAFE network uses two types of asymmetric keys, ED25519 keys and BLS keys.
Sometimes the choice may be due to functionality, eg multisig is built in to bls whereas ed25519 requires custom code to do multisig.
Sometimes the choice may be due to performance (otherwise why not just use bls everywhere?).
Out of curiosity I had a look at how much difference there is between the two for signing and verifying.
All values are in microseconds per signature/verification, and is the average of 1000 samples. BLS is using a single keypair, ie not requiring any combining of signature shares, as a standard safecoin wallet would be doing.
|Sign 32 bytes||2220.78||19.36||114.72|
|Sign 1 MiB||5822.96||5826.58||1.00|
|Verify 32 bytes sig||5983.90||50.52||118.45|
|Verify 1 MiB sig||9478.69||2624.92||3.61|
Signing small messages, BLS is about 100 times slower.
Signing large messages, they are identical, which was a big surprise to me.
Verifying signatures of small messages BLS is about 100 times slower.
Verify signatures of large messages BLS is about 3 times slower.
The info is I suppose not produced with any intention in mind, but I thought it was interesting to see the difference so I’ll put the figures here.