Internet-scale blockchains should operate under dynamic participation and temporary network partitions, but no protocol can simultaneously guarantee progress and consistency in this setting. Our goal is that every end-user can choose a side of this dilemma, obviating a system-wide determination.
The CAP theorem says that no blockchain can be live under dynamic participation and safe under temporary network partitions. To resolve this availability-finality dilemma, we formulate a new class of flexible consensus protocols, ebb-and-flow protocols, which support a full dynamically available ledger in conjunction with a finalized prefix ledger. This way, end-users can choose whether to favor liveness or safety, obviating a system-wide determination by the protocol designer as is common in existing protocols. Gasper, the current candidate for Ethereum 2.0, aims to achieve the ebb-and-flow property, but we have found an attack under standard network models. As an alternative, we present provably secure ebb-and-flow protocols based on black-box composition of off-the-shelf dynamically available and BFT protocols.