G1 Operations
G1 is the base field elliptic curve group used for BLS signatures. Points are 48 bytes compressed or 96 bytes uncompressed.G1 Curve Equation
Point Formats
Uncompressed (96 bytes, padded to 128 for precompiles)
Compressed (48 bytes)
MSB flags:- Bit 7: compression flag (1)
- Bit 6: infinity flag
- Bit 5: y-coordinate sign
- Bits 0-4: part of x-coordinate
Operations
Point Addition
Add two G1 points using EIP-2537 format:Scalar Multiplication
Multiply G1 point by scalar:Multi-Scalar Multiplication (MSM)
Compute sum(scalar_i * point_i) efficiently:Infinity Point
Point at infinity is the identity element:Subgroup Membership
All points in G1 are in the prime-order subgroup (cofactor = 1). No additional subgroup check needed beyond curve equation validation.Performance
Native (BLST on x86_64):- Addition: ~15 μs
- Doubling: ~12 μs
- Scalar mul: ~80 μs
- MSM (100): ~8 ms (~80 μs per point)
- MSM (1000): ~45 ms (~45 μs per point)
- Endomorphism decomposition (GLV)
- Precomputed multiples
- Batch inversion for affine conversion
Use Cases
- BLS signature storage (48 bytes compressed)
- Message hashing (hash-to-curve → G1)
- Signature aggregation (G1 addition)
- Proof generation (MSM for commitment schemes)

