  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.
