Cryptography
tasqnetwork.io/benchmark/crypto
Every cryptographic step a TasQ job takes, timed on a 2 vCPU Intel Xeon(R) Processor @ 2.10GHz with one thread. Each figure is the median of 7 runs. These set the floor on per-job overhead that is not GPU time.
215.4 µsHybrid key agreement, one side
10.2 msML-DSA-65 receipt signature
60.2 msMerkle root, 65,536 leaves
5.4 GiB/sBLAKE3 throughput, 1 MiB input
All primitives
| Primitive | Category | Median | Min | Max | Ops per second | MiB/s |
|---|---|---|---|---|---|---|
| BLAKE3, 1 MiB | hash | 182.1 µs | 180.4 µs | 188.3 µs | 5,492 | 5,492 |
| SHA-256, 1 MiB | hash | 772.8 µs | 764.5 µs | 774.4 µs | 1,294 | 1,294 |
| BLAKE3, 64 B | hash | 411 ns | 401 ns | 438 ns | 2,433,106 | |
| AES-256-GCM encrypt, 1 MiB | symmetric | 118.0 µs | 116.2 µs | 136.0 µs | 8,476 | 8,476 |
| AES-256-GCM decrypt, 1 MiB | symmetric | 123.4 µs | 118.4 µs | 130.1 µs | 8,102 | 8,102 |
| Ed25519 sign | signature | 38.1 µs | 37.5 µs | 40.8 µs | 26,212 | |
| Ed25519 verify | signature | 122.2 µs | 118.8 µs | 123.3 µs | 8,183 | |
| ML-DSA-65 keygen | signature (PQ) | 270.2 µs | 268.0 µs | 285.2 µs | 3,702 | |
| ML-DSA-65 sign | signature (PQ) | 10.2 ms | 10.1 ms | 10.3 ms | 98 | |
| ML-DSA-65 verify | signature (PQ) | 217.0 µs | 216.2 µs | 217.9 µs | 4,609 | |
| Hybrid Ed25519 + ML-DSA-65 sign | signature (hybrid) | 10.3 ms | 10.2 ms | 10.4 ms | 97 | |
| X25519 key exchange | key exchange | 38.8 µs | 38.3 µs | 39.6 µs | 25,751 | |
| ML-KEM-768 keygen | key exchange (PQ) | 67.6 µs | 67.2 µs | 70.3 µs | 14,795 | |
| ML-KEM-768 encapsulate | key exchange (PQ) | 79.7 µs | 78.4 µs | 83.8 µs | 12,553 | |
| ML-KEM-768 decapsulate | key exchange (PQ) | 98.8 µs | 98.3 µs | 101.1 µs | 10,118 | |
| Hybrid X25519 + ML-KEM-768 (one side, full) | key exchange (hybrid) | 215.4 µs | 214.1 µs | 217.8 µs | 4,642 | |
| HKDF-SHA256, 32 B output | kdf | 3.8 µs | 3.8 µs | 4.0 µs | 262,691 | |
| Merkle root (BLAKE3), 1024 leaves | commitment | 875.7 µs | 873.6 µs | 882.2 µs | 1,142 | |
| Merkle root (BLAKE3), 65536 leaves | commitment | 60.2 ms | 58.5 ms | 61.3 ms | 17 | |
| Ledger ID derivation (Eq. 2-3) | identity | 9.2 µs | 9.1 µs | 9.4 µs | 108,893 |
Source: micro_crypto.csv, micro_crypto.py
Reading this
The hybrid handshake and an ML-DSA-65 signature together cost about 10.4 ms, paid once per session, not per token. ML-DSA-65 signing dominates. Verification is about 0.2 ms, which is the side a client pays.
Library versions: cryptography, blake3 1.0.10 and pqcrypto, as pinned in the script. Timings on GPU servers will differ. Run the script on your own machine to compare.