Ahmet Kirk fits post quantum signatures into Lightning
- Developers built a post-quantum Lightning prototype using lattice-based MLDSA-44 signatures to shield off-chain payments.
- Preserving existing onion packet sizes increases node gossip bandwidth tenfold under standard MLDSA-44 signatures.
- Core Lightning issued emergency patches to prevent malicious peers from faking channel closures and stealing funds.
Off-chain Bitcoin payments face a quantum threat long before the base layer settlement network. Adversaries can record encrypted gossip and onion routing traffic today, storing the data until quantum hardware matures enough to decrypt private channel states.
To neutralize this threat, developer Ahmet Kirk and co-author Abdullah built the Post-Quantum Lightning Network prototype in Rust Lightning. Their 11,000-line implementation integrates NIST-standardized MLDSA-44 signatures while maintaining full backward compatibility with existing classical nodes. The design preserves standard 1,300-byte onion packets by routing hybrid post-quantum secrets alongside Hash Time-Locked Contract messages in a fixed 20-slot update list rather than stuffing ciphertexts directly into the onion.
"The quantum threat to Bitcoin is closer off-chain than on-chain."
- Ahmet Kirk, Bitcoin Optech
That backward compatibility carries a heavy bandwidth penalty. On Bitcoin Optech, researchers noted that nodes exchanging MLDSA-44 signatures consume ten times more gossip bandwidth than standard nodes. Switching to unstandardized Falcon signatures drops that overhead to fourfold. Bolt 11 invoice signatures also require splitting across four tag fields to bypass Rust Lightning's 639-byte message limit, though MLDSA signing itself adds just 0.33 milliseconds of computation overhead.
While second-layer developers refine post-quantum defenses, the underlying base layer infrastructure is preparing its own overhaul. Bitcoin Core contributor Jan B outlined the community testing push for version 32.0, which replaces the legacy libevent library with a custom HTTP server enforcing strict RFC rules. Downstream applications like hardware wallets, block explorers, and Lightning daemons must validate their setups before the October launch to prevent RPC formatting breaks.
"Automated software tests cannot replicate a node running in someone's closet."
- Jan B, Bitcoin Optech
The rush to harden off-chain software extends beyond theoretical future threats. Core Lightning released emergency update 26.06.8 after discovering critical bugs in channel state machines. Malicious peers could trick victim nodes into treating forced channel closes as cooperative shutdowns by issuing decoy requests before broadcasting revoked commitments. By duping the victim node, attackers effectively blocked it from executing penalty transactions to recover stolen funds.
Core Lightning also patched severe vulnerabilities in channel splices and dual-funding negotiations. Without strict bounds, malicious peers could propose astronomical fee rates or trigger database overflows, trapping victim nodes in infinite crash loops upon restart. Developers introduced PR 9507 to cap peer-proposed fee rates at 4,000 satoshis per vbyte, illustrating how off-chain state machine complexity constantly creates new attack vectors.
Other major implementations are scrambling to patch related edge cases. LND updated its Atomic Multipath Payments logic to prevent total invoice cancellations when a single path drops, while LDK added Replace-By-Fee bumping for stuck splices. Off-chain developers are demonstrating that while base-layer consensus changes move at a crawl, second-layer security can iterate rapidly to stay ahead of adversaries.
Source Intelligence
- Deep dive into what was said in the episodes
Bitcoin Optech: Newsletter #424 Recap • Oct 1
- Ahmet Kirk argues that even if Bitcoin receives an on-chain post-quantum upgrade, Lightning's off-chain components like gossip and onion routing remain vulnerable. Decoupled upgrades are necessary because attackers could record current traffic to decrypt it later.
- Ahmet Kirk's proposal distributes post-quantum node identities via gossip, upgrading two of three gossip messages while leaving channel announcements classical. The transport layer relies on BIP 8 to integrate post-quantum primitives next to classical ones.
- Ahmet Kirk states that Bolt 11 post-quantum signatures fit within QR code limits using MLDSA-44 signatures. Because Rust Lightning has a 639-byte message limit, PQLN splits the signature across four tag fields.
- To keep onion packets under the 1,300-byte limit, Ahmet Kirk's design avoids sending 1,088-byte MLKEM ciphertexts inside the onion. Instead, per-hop secrets are made hybrid and travel alongside the onion in a fixed-size list of 20 slots.
- Ahmet Kirk reports that PQLN adds 11,000 lines of Rust code and 100 tests. MLDSS signing adds a negligible 0.33 milliseconds of overhead, but gossip bandwidth increases tenfold with MLDSA-44 or fourfold with Falcon.
- Core Lightning 26.06.8 acts as a security release that temporarily withholds certain tests to prevent attackers from finding vulnerabilities. PR 9507 caps peer-proposed fee rates at 4,000 sats per vB to prevent overflow bugs that crash restarting nodes.
- Core Lightning fixed vulnerabilities where peers could trick nodes into ignoring force-closed revoked commitments by sending a decoy shutdown message. Other fixes address nodes losing splice signature memory across restarts and limit peers to three concurrent negotiations.
- Core Lightning PRs 9510 and 9511 mitigate crash risks by capping JSON nesting to 256 levels and rejecting oversized DNS hostnames. PR 9513 now validates that Bolt 12 fetched invoice amounts do not exceed requested or offered parameters.
- LDK 0.3 release candidate 2 introduces RBF fee bumping for stuck splices, defaults to negotiating anchor channels, and invalidates older Bolt 11 invoices. The LDK project has also migrated its repository off GitHub to a self-hosted mirror.
- LND updated its Atomic Multipath Payments (AMP) logic to prevent whole-invoice cancellations when a single path fails. Additionally, LND introduced validation logic ensuring returned Bolt 12 invoices are signed by the actual receiver.
- LND restored Bolt 1 compliance by ensuring it replies to all valid ping messages. This fix preserves the inbound rate-limiting and bucket protections against ping-based denial of service attacks introduced in a previous release.
Also discussed on this episode: (4)
Protocol (4)
- Jan explains that Bitcoin Core 32.0 release candidate 2 is feature-complete ahead of its October 10th target. The associated testing guide covers 10 tests across four groups on Regtest, focusing on new RPCs and the HTTP server rewrite.
- Jan highlights key Core 32.0 features, including getopenrpcinfo for machine-readable RPC diffs, PSBT version 2 by default, and exportwatchonlywallet for phone tracking. The HTTP server is rewritten from scratch to remove libevent and enforce stricter RFC compliance.
- A Stack Exchange contributor explains that Taproot commits to every individual input amount rather than just the sum. Committing only to the total allows a malicious machine to shuffle amounts between inputs to steal funds in a coinjoin.
- Bitcoin Knots nodes that split off during the failed BIP 110 activation in August do not need a full re-sync. Because the minority chain quickly stalled, pruned nodes still hold the last common block and can reorg automatically.
