Post-Quantum (PQ) Interop #30, March 11, 2026

Agenda

UTC Date & Time

March 11, 2026, 14:00 UTC

Resources

High-Level Documents

  • Devnet-0 : lean consensus client interop
  • Devnet-1 : PQ signature signing & verification
  • Devnet-2 : single-layer PQ signature aggregation
  • Devnet-3 : aggregator role separation + subnet aggregation
  • Devnet-4 : recursive aggregation

Overview

A. Devnet-3: Implementation Status (Devnet N)
B. Devnet-4: Specification Status (Devnet N+1)
C. Devnet-5: Early Specification Discussion
D. Metrics & Observability


Previous Call Meeting Minutes (Call 29 — Mar 4, 2026)

A. Devnet-3: Implementation Status

Client Readiness

Client Implementation Spec Tests Interop Docker Notes
Zeam :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: Devnet-3 merged to main. Follow-up PRs coming. Planning upstream spec changes. Running interop tests with other clients.
Ream :white_check_mark: :white_check_mark: :large_orange_diamond: :white_check_mark: Running on long-running devnets. Issues with sync when starting after genesis. Invalid block/state route issues at higher slots under investigation.
Qlean :white_check_mark: :large_orange_diamond: :large_orange_diamond: :white_check_mark: Created dev2 and dev3 branches. Checkpoint sync added but issues remain (node doesn’t accept new blocks after restart). Note: Kamil stepping down as Quadrivium CEO, joining EF. Ruslan now primary contact.
Lantern :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: Fixed fork block replay bug. Long-running devnet with Qlean + Ethlambda stable at 20,000+ slots. Added commit hash to logs.
Ethlambda :white_check_mark: :white_check_mark: :large_orange_diamond: :large_orange_diamond: Deprecated Devnet-2. Fixed 16 issues from non-finalizing runs. OOM errors when chain doesn’t finalize (under investigation). Added leanSig XMSS compatibility tests with Ream.
Gean :white_check_mark: :white_check_mark: :large_orange_diamond: :large_orange_diamond: Completed Devnet-2 (leanMultisig integration, checkpoint sync). Local multiclient interop with leanQuickStart working (justification/finalization). One PR pending review. Working on persistent storage (BoltDB vs PebbleDB).
Lighthouse :hourglass_not_done: :hourglass_not_done: :hourglass_not_done: :hourglass_not_done: No representative on call.
Grandine :red_question_mark: :red_question_mark: :red_question_mark: :red_question_mark: No representative on call.
Nimbus :red_question_mark: :red_question_mark: :red_question_mark: :red_question_mark: No representative on call.

Legend: :white_check_mark: Complete | :large_orange_diamond: In progress | :hourglass_not_done: Not started | :red_question_mark: Unknown

Long-Running Devnet-3 Status

  • Lantern + Qlean + Ethlambda: Stable, finalizing 20,000+ slots
  • 6-node devnet (Katya): Running with temp replacements for Ethlambda/Grandine
  • Recovery test successful: Devnet stalled at ~500 slots, recovered via checkpoint sync to 2,500 slots

B. Devnet-4: Specification Status

Spec PR Status

  • Anshal (Zeam) raised PR, addressing Gajinder’s comments
  • Test cases to be addressed once core changes approved
  • High-level design doc in PM repo needs updating (Anshal)

Blocking Issue: ZK-Friendly Encoding

  • Problem: Current leanMultisig API doesn’t use leanSig bindings
  • Planned: ZK-friendly encoding based on Benedict’s paper
  • Status: Not ready in leanSig or leanMultisig yet
  • Emil: Working on it but timeline uncertain due to competing priorities
  • Clients waiting on this before full Devnet-4 implementation

Subnet Configuration

  • Issue: Subnet count hardcoded as 1 in spec
  • Resolution: Move to chain config (Anshal to raise PR)
  • Future: Testing with multiple subnets will require more validators/machines
  • Resource opportunity: Dev (via Kamil) can potentially coordinate 600 university machines for large-scale P2P testing

C. Devnet-5: Early Specification Discussion

Problem Statement

Currently, proposers don’t sign over the block — only sign proposer attestation. Want to sign both for better security.

Challenge: One-time signature constraint prevents signing two different messages with same key at same slot.

Options Discussed

Option Description Drawback
ZK SNARK Hide signatures so two can’t be linked Currently not ZK, only succinct
Single message Treat two messages as one Dependency issue — second message depends on signature of first
Double lifetime Use even indices for attestations, odd for proposer (2^32 → 2^31 effective) 2x keygen time
Separate keys Chain-based signature for proposer (updates pubkey each time) Two keys per validator, complexity
Short + long XMSS Short lifetime for proposer, long for attester Key management complexity

Resolution for Devnet-5

  • Approach: Generate 2 keys per validator, enroll both in state at genesis
  • Benefit: Proposer attestation signed independently → can aggregate normally
  • Trade-off: 2x keygen time, but protocol simplicity worth it
  • Emil: API changes for this are straightforward in LeanVM

Open Question

  • Long-term solution for mainnet still TBD (may revisit ZK once LeanVM supports it)

D. Metrics & Observability

Devnet-3 Metrics

  • Request: All clients implement Devnet-3 metrics (who is aggregator, which subnet)
  • Reason: Needed before scaling to more validators
  • Dashboard: Katya to update once clients report metrics

Current Issues

Client Issue
Ream Sync issues when starting after genesis; invalid block state routes at high slots
Qlean Checkpoint sync not accepting new blocks after restart
Ethlambda OOM when chain doesn’t finalize

Action Items

Owner Action Status
Anshal (Zeam) Address Gajinder’s comments on Devnet-4 spec PR This week
Anshal (Zeam) Update Devnet-4 high-level design doc Pending
Anshal (Zeam) PR to move subnet count from hardcoded to config Pending
Emil Complete ZK-friendly encoding in leanSig/leanMultisig In progress (no ETA)
Ream Investigate sync issues (post-genesis start, invalid block state routes) In progress
Qlean Debug checkpoint sync (blocks not accepted after restart) In progress
Ethlambda Fix OOM when finality lost In progress
Gean Complete persistent storage implementation (BoltDB/PebbleDB) This week
Katya Update dashboard for Devnet-3 metrics once clients ready Pending
Kamil Connect Will with Dev re: 600 university machines for P2P testing Pending
All clients Implement Devnet-3 metrics (aggregator, subnet) ASAP
All clients Review Devnet-4 spec PR Ongoing

Meeting Time: Wednesday, March 11, 2026 at 14:00 UTC (60 minutes)

GitHub Issue