Skip to content

BLS Signature Aggregation Verification Panel for Bulk Attestations #51

Description

@JamesEjembi

Problem Statement / Feature Objective

Bulk attestation submissions use BLS signature aggregation to combine multiple validator signatures into a single aggregate signature. Operators need a verification panel that displays aggregation efficiency, tracks individual signer contributions, and validates aggregate signature correctness using the BLS12-381 pairing check – all without requiring a full beacon node RPC call for verification.

Technical Invariants & Bounds

  • Aggregation efficiency = (individual_sig_size × num_signers) / aggregate_sig_size – minimum bar: >90% efficiency required
  • Pairing check verification must complete in <500ms for up to 100 signers using WebAssembly-compressed BLS library
  • Signer contribution tracking: each signer's participation logged per aggregation round, stored for 24h rolling window
  • Anomaly detection: flag any signer whose signature appears in <95% of aggregation rounds as potentially faulty
  • Aggregation history retained for 7 days in IndexedDB, compressed via delta encoding (≈70% space reduction)

Codebase Navigation Guide

  • src/hooks/useBulkAggregation.ts – hook for aggregation data
  • src/components/validators/BLSAggregationPanel.tsx – main panel component
  • src/services/blsService.ts – BLS operation service wrapper
  • src/wasm/blsPairingCheck.wasm – WebAssembly BLS pairing check module
  • src/utils/deltaEncoding.ts – delta encoding for compression
  • src/store/aggregationSlice.ts – state management

Implementation Blueprint

  1. Integrate @chainsafe/blst-based WASM module as src/wasm/blsPairingCheck.ts – exposes verifyAggregateSignature(publicKeys, message, signature) → boolean
  2. Create src/utils/aggregationEfficiency.ts – computes efficiency ratio and tracks per-signer contribution
  3. Build src/hooks/useBulkAggregation.ts – subscribes to attestation aggregation events via beacon node event stream, maintains 24h signer history
  4. Implement delta encoding compressor src/utils/deltaEncoding.ts – stores/retrieves aggregation history in IndexedDB with 70% compression target
  5. Create src/components/validators/BLSAggregationPanel.tsx with:
    • Efficiency gauge (semi-circular, 90% threshold marker)
    • Signer participation table (validator index, participation %, last_seen, status)
    • Aggregate signature verification trigger (manual button + auto-verify every 100th aggregation)
    • Anomaly highlighting for signers below 95% participation
  6. Mount in ValidatorDashboard.tsx as a collapsible "BLS Aggregation" section

Metadata

Metadata

Assignees

Labels

Complexity: HardcoreExtremely difficult, high-complexity engineering taskGrantFox OSSIssue tracked in GrantFox OSSLayer: Core-EngineCore engine layerMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial CampaignCampaign: Official CampaignType: Core-ArchitectureCore architecture design and structural concern

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions