Pipelet: Practical Streamlined Blockchain Protocol
Vivek Karihaloo, Ruchi Shah, Panruo Wu, Aron Laszka
TL;DR
Pipelet introduces a practical, streamlined BFT-style consensus protocol for permissioned blockchains that extends the simple Streamlet approach with clock synchronization and a stable proposer. It achieves $O(N)$ message complexity per finalized block in the normal case by eliminating implicit echoing, while preserving the notarization and finalization rules that ensure determinism and immutability. The protocol provides formal consistency and liveness guarantees under partial synchrony, and supports practical features such as epoch-based progression and explicit block synchronization to prevent network partitioning. Empirical comparisons show Pipelet offering lower messaging and scalable performance relative to Streamlet and PaLa in typical network conditions, while maintaining a small, verifiable design.
Abstract
Fueled by the growing popularity of proof-of-stake blockchains, there has been increasing interest and progress in permissioned consensus protocols, which could provide a simpler alternative to existing protocols, such as Paxos and PBFT. In particular, the recently proposed Streamlet protocol provides a surprisingly simple and streamlined consensus approach, which crystallizes years of research in simplifying and improving classical consensus protocols. While the simplicity of Streamlet is a major accomplishment, the protocol lacks certain practical features, such as supporting a stable block proposer, and it makes strong assumptions, such as synchronized clocks and the implicit echoing of all messages. Most importantly, it requires sending $O(N^3)$ messages per block in a network of $N$ nodes, which poses a significant challenge to its application in larger networks. To address these limitations, we introduce Pipelet, a practical streamlined consensus protocol. Pipelet employs the same block-finalization rule as Streamlet, but attains state-of-the-art performance in terms of communication complexity and provides features that are crucial for practical applications, such as clock synchronization and stable block proposers. At the same time, Pipelet retains the simplicity of Streamlet, which presents significant practical advantages, such as ease of implementation and verification.
