Skip to main content

Try it Live

Run BLS12-381 examples in the interactive playground

Performance

Benchmarks and optimization strategies for BLS12-381 operations.

Native Benchmarks (BLST)

Measured on Apple M1 Pro (ARM64) and Intel i9-12900K (x86_64):

G1 Operations

G2 Operations

Pairing Operations

Hash-to-Curve

Signature Operations

Single Signature

Aggregated Signatures

Batch Verification

Random linear combination batch verification:

Comparison with Other Curves

vs BN254

vs secp256k1

Optimization Strategies

Multi-Scalar Multiplication (MSM)

Pippenger’s algorithm for large MSMs:

Batch Pairing

Multi-pairing is more efficient than individual pairings:

Precomputation Tables

For fixed-base multiplication (e.g., generator):

Memory Requirements

Ethereum Beacon Chain

Profiling Tips

Hotspots

Typical time distribution in signature verification:

Optimization Priorities

  1. Batch operations - Use MSM and multi-pairing
  2. Precomputation - Cache generator multiples
  3. Aggregation - Combine signatures before verification
  4. Parallelization - Miller loops are independent

Hardware Acceleration

x86_64 (ADX/BMI2)

BLST uses:
  • MULX for carry-less multiplication
  • ADCX/ADOX for parallel add-with-carry
  • ~30% speedup over generic implementation

ARM64 (NEON)

BLST uses:
  • Vector operations for field arithmetic
  • ~25% speedup over generic

GPU Acceleration

For large MSMs (>10,000 points):
  • CUDA implementations available
  • ~100x speedup for MSM operations
  • Not suitable for latency-sensitive signing