We present Bullshark, the first directed acyclic graph (DAG) based asynchronous Byzantine Atomic Broadcast protocol that is optimized for the common synchronous case. Like previous DAG-based BFT protocols, Bullshark requires no extra communication to achieve consensus on top of building the DAG. That is, parties can totally order the vertices of the DAG by interpreting their local view of the DAG edges. Unlike other asynchronous DAG-based protocols, Bullshark provides a practical low latency fast-path that exploits synchronous periods and deprecates the need for notoriously complex view-change mechanisms. Bullshark achieves this while maintaining all the desired properties of its predecessor DAG-Rider. Namely, it has optimal amortized communication complexity, it provides fairness and asynchronous liveness, and safety is guaranteed even under a quantum adversary. In order to show the practicality and simplicity of our approach, we also introduce a standalone partially synchronous version of Bullshark which we evaluate against the state of the art. The implemented protocol is embarrassingly simple (200 LOC on top of an existing DAG-based mempool implementation (Narwhal & Tusk). It is highly efficient, achieving for example, 125,000 transaction per second with a 2 seconds latency for a deployment of 50 parties. In the same setting the state of the art pays a steep 50% latency increase as it optimizes for asynchrony.
翻译:我们展示了Bullshark, 这是第一个基于非同步的 Byzantine 原子广播协议(DAG), 以非同步的 Byzantine 原子广播协议(DAG) 为共同同步案件优化了。 和以前基于 DAG 的 BFT 协议一样, Bullshark 不需要额外的沟通来在建立 DAG 之前达成共识。 也就是说, 各方可以通过解释对 DAG 边缘的当地观点来完全排列 DAG 的顶点。 与其他非同步的 DAG 协议不同, Bullshark 提供了一个实用的低悬浮快路, 利用同步的周期, 并消除了对臭名昭著的复杂造色造色造色机制的需求。 Bullshark 在维护其前任 DAG- Rideer 的所有预期特性的同时, 也不需要额外的沟通。 也就是说, 各方可以最优化的摊销通信复杂性, 它提供公平和无序的生活, 即使在量的反向下也保证安全。 为了显示我们的方法的实用性和简洁, 我们还引入了Bullshs 版本的 Bullshark 版本,, 我们对它与50 节的状态的评估, 增加的50 节中的艺术交易, 作为目前的一个令人尴尬的版本。