Table of Contents
Fetching ...

Lifefin: Escaping Mempool Explosions in DAG-based BFT

Jianting Zhang, Sen Yang, Alberto Sonnino, Sebastián Loza, Aniket Kate

TL;DR

This paper identifies a practical liveness vulnerability in DAG-based BFT protocols: mempool explosions under bounded-resource constraints can stall progress during asynchrony. It introduces Lifefin, a generic self-stabilizing fallback that leverages a bounded Agreement on Common Subset (ACS) plus Proof-of-STuck (PoST) blocks to commit a bounded set of backlog vertices, ensuring progress with minimal overhead in normal operation. The solution is instantiated on two representative DAG-based protocols, Sailfish and Mysticeti, yielding Sailfish-Lifefin and Mysticeti-Lifefin, and is validated through extensive evaluation showing comparable throughput and bounded latency increases under attacks. The work offers a practical, broadly applicable safeguard for high-throughput DAG-based BFT systems operating under realistic bounded-resource conditions, significantly improving resilience to inflation-style attacks.

Abstract

Directed Acyclic Graph (DAG)-based Byzantine Fault-Tolerant (BFT) protocols have emerged as promising solutions for high-throughput blockchains. By decoupling data dissemination from transaction ordering and constructing a well-connected DAG in the mempool, these protocols enable zero-message ordering and implicit view changes. However, we identify a fundamental liveness vulnerability: an adversary can trigger mempool explosions to prevent transaction commitment, ultimately compromising the protocol's liveness. In response, this work presents Lifefin, a generic and self-stabilizing protocol designed to integrate seamlessly with existing DAG-based BFT protocols and circumvent such vulnerabilities. Lifefin leverages the Agreement on Common Subset (ACS) mechanism, allowing nodes to escape mempool explosions by committing transactions with bounded resource usage even in adverse conditions. As a result, Lifefin imposes (almost) zero overhead in typical cases while effectively eliminating liveness vulnerabilities. To demonstrate the effectiveness of Lifefin, we integrate it into two state-of-the-art DAG-based BFT protocols, Sailfish and Mysticeti, resulting in two enhanced variants: Sailfish-Lifefin and Mysticeti-Lifefin. We implement these variants and compare them with the original Sailfish and Mysticeti systems. Our evaluation demonstrates that Lifefin achieves comparable transaction throughput while introducing only minimal additional latency to resist similar attacks.

Lifefin: Escaping Mempool Explosions in DAG-based BFT

TL;DR

This paper identifies a practical liveness vulnerability in DAG-based BFT protocols: mempool explosions under bounded-resource constraints can stall progress during asynchrony. It introduces Lifefin, a generic self-stabilizing fallback that leverages a bounded Agreement on Common Subset (ACS) plus Proof-of-STuck (PoST) blocks to commit a bounded set of backlog vertices, ensuring progress with minimal overhead in normal operation. The solution is instantiated on two representative DAG-based protocols, Sailfish and Mysticeti, yielding Sailfish-Lifefin and Mysticeti-Lifefin, and is validated through extensive evaluation showing comparable throughput and bounded latency increases under attacks. The work offers a practical, broadly applicable safeguard for high-throughput DAG-based BFT systems operating under realistic bounded-resource conditions, significantly improving resilience to inflation-style attacks.

Abstract

Directed Acyclic Graph (DAG)-based Byzantine Fault-Tolerant (BFT) protocols have emerged as promising solutions for high-throughput blockchains. By decoupling data dissemination from transaction ordering and constructing a well-connected DAG in the mempool, these protocols enable zero-message ordering and implicit view changes. However, we identify a fundamental liveness vulnerability: an adversary can trigger mempool explosions to prevent transaction commitment, ultimately compromising the protocol's liveness. In response, this work presents Lifefin, a generic and self-stabilizing protocol designed to integrate seamlessly with existing DAG-based BFT protocols and circumvent such vulnerabilities. Lifefin leverages the Agreement on Common Subset (ACS) mechanism, allowing nodes to escape mempool explosions by committing transactions with bounded resource usage even in adverse conditions. As a result, Lifefin imposes (almost) zero overhead in typical cases while effectively eliminating liveness vulnerabilities. To demonstrate the effectiveness of Lifefin, we integrate it into two state-of-the-art DAG-based BFT protocols, Sailfish and Mysticeti, resulting in two enhanced variants: Sailfish-Lifefin and Mysticeti-Lifefin. We implement these variants and compare them with the original Sailfish and Mysticeti systems. Our evaluation demonstrates that Lifefin achieves comparable transaction throughput while introducing only minimal additional latency to resist similar attacks.

Paper Structure

This paper contains 32 sections, 6 theorems, 13 figures.

Key Result

Proposition 1

In a Lifefin-empowered DAG-based BFT protocol, if $r^*$ is the highest round number among the outputted PoST blocks $V$ of a fallback instance, then the predefined round $r^*$ leader vertex must not be committed before the fallback instance terminates.

Figures (13)

  • Figure 1: DAG-based BFT protocols under inflation attacks: after the attack starts (at $20$s), the committed BPS (indicating ordering) drops to $0$ while the proposed BPS (indicating data dissemination) continues, causing a sharp increase of uncommitted data maintained in the DAG-based mempool.
  • Figure 2: The overview of Lifefin: In the optimistic path, nodes disseminate, commit, and order DAG vertices using the underlying DAG protocol. While suspecting inflation attacks or resource exhaustion, nodes switch to the fallback path and trigger the ACS protocol to commit and order DAG vertices and their causal histories with bounded resources.
  • Figure 3: Sailfish-Lifefin's round-based DAG from a node's local view: a leader vertex connected by green lines () is committed via the direct committing rule; a leader vertex connected by red lines () is committed via the indirect committing rule. All DAG vertices are disseminated via RBC.
  • Figure 4: Sailfish-Lifefin: vertex creation for node $N_{i}\xspace$, where gray codes were implemented by Sailfish sailfish
  • Figure 5: Sailfish-Lifefin: vertex commit for node $N_{i}\xspace$, where gray codes were implemented by Sailfish sailfish
  • ...and 8 more figures

Theorems & Definitions (26)

  • Proposition 1
  • Claim 1
  • Claim 2
  • Claim 3
  • Claim 4
  • Claim 5
  • Claim 6
  • Claim 7
  • Corollary 1
  • Lemma 1: Safety
  • ...and 16 more