IIP-52: BLS Signature Aggregation for Block Signature Compression

IoTeX Network
Voting Period: 09/10/25, 24:00 - 09/15/25, 24:00
Passed
IIP: 52
Title: BLS Signature Aggregation for Block Signature Compression
Author: Seedlet ([email protected]), Chen Chen ([email protected])
Type: Core
Category: Core

Simple Summary

This proposal introduces Boneh–Lynn–Shacham (BLS) signature aggregation to compress the set of validator signatures required for block finality into a single aggregated signature, thereby reducing the size of the block footer and improving block propagation efficiency.

Abstract

Currently, to finalize a block, the IoTeX consensus protocol requires more than 2/3 of selected delegates to sign it. These signatures are all stored individually in the block footer. Since each signature is ~65 bytes, this causes the block footer alone to consume over 2 KB, given that 24 consensus delegates participated, leading to large block sizes and slower propagation.

This proposal introduces the use of BLS signature aggregation, which allows all individual signatures to be compressed into a single 96-byte signature, with one accompanying bitmap or list of participating signer indices.

Motivation

With this proposal, we achieve the following goals:

  • Reduce block size, especially in environments with high delegate count.

  • Improve network throughput and block propagation latency.

  • Make room for more transactions per block without increasing total size.

  • Future-proof consensus scalability as delegate numbers grow.

Specification

The implementation of this proposal will be split into two phases:

  1. Collect BLS public keys of delegates. Since the current crypto curve (Secp256k1) differs from BLS12-381, delegates must submit their BLS public keys:
  • A new transaction type will be introduced for submitting BLS public keys.

  • A new field will be added to delegate registration transaction.

  1. Trigger the usage of BLS in consensus. The delegates who haven't submit their BLS public keys will be excluded from the active consensus delegate set.

Rationale

  • BLS aggregation compresses O(n) signatures to O(1), enabling scalability.

  • Signature verification is fast and constant-time.

  • Widely used in other blockchain platforms (e.g., Ethereum 2.0, Dfinity, Chia) to solve the same problem.

  • IoTeX already uses elliptic curve cryptography, and integration of BLS is a natural extension.

Performance Analysis

  • Storage Efficiency
MetricECDSABLSImprovement
Individual Signature65 bytes96 bytes-47.7%
Block Footer (24 delegates)2,328 bytes100 bytes95.7% reduction
Composition24 Ă— (32B pubkey + 65B sig)4B bitmap + 96B agg sigStorage optimization
ScalabilityO(n) linear growthO(1) constant sizeFuture-proof
Bandwidth per Block2.3 KB signature data0.1 KB signature data95.7% savings
  • Block Size: 2,228 bytes saved per block (95.7% reduction)

  • Network Efficiency: Dramatically reduced bandwidth usage during block sync

  • Future Scalability: Size remains constant regardless of delegate count increase

  • Computational Performance

    • Individual Operation Benchmarks
OperationECDSA (secp256k1)BLS12-381Performance Ratio
Sign0.047ms0.31ms~6x slower
Verify0.063ms0.78ms~12x slower
Aggregate SignN/A0.38msN/A
Aggregate VerifyN/A1.45msN/A
* Sign operation of BLS is 6 times slower than ECDSA, but the impact is minimal due to the small absolute value.

* If the verifications of signatures are run in parallel, the overall computation time to produce a BLS will be 1.16ms (0.78ms verification time + 0.38ms signature aggregation time).

* The aggregated signature verification speed is 12 times slower than ECDSA, but the impact is also not significant compared to the overall block verification time.

Backwards Compatibility

This is a consensus-level change and is not backwards compatible. Two hardforks will be required:

  • One for phase 1, BLS public key submission.

  • Another for phase 2, activating BLS verification in consensus.

Implementation

  • Use the BLS12-381 curve, same as Ethereum 2.0.

  • Leverage the BLST library, github.com/supranational/blst.

  • Introduce:

    • New transaction type for delegates to submit BLS public key.

    • New field, BLS public key, in delegate registration transaction.

    • New fields, aggregated signature and signer bitmap, in block footer.

  • Update explorer and ioctl to decode and display BLS signature.

Copyright

Copyright and related rights waived via CC0.

Current Voting Results

Yes11888178.00 (100.00%)
No0.00 (0.00%)
Abstain0.00 (0.00%)
Total votes: 11888178.00 • Voters: 22 • Voting Period: 09/10/25, 24:00 - 09/15/25, 24:00

Voters (TOP 50)

0x0aFe7...957e3b
5275993.40 votes
0xE7c69...94E0e0
2746716.46 votes
0x59048...4BD637
1692758.91 votes
0x9C418...095bb9
1006975.97 votes
0x972C8...0c8196
421351.06 votes
0x2B0e7...aB66B8
331370.03 votes
0x759dA...a2e450
155053.62 votes
0xEbf02...AF32b2
76000.00 votes
0x5EBc4...F321dC
65199.83 votes
0x2079e...148119
34587.27 votes