  Distributed consensus protocols reach agreement among $n$ players in the
presence of $f$ adversaries; different protocols support different values of
$f$. Existing works study this problem for different adversary types (captured
by threat models). There are three primary threat models: (i) Crash fault
tolerance (CFT), (ii) Byzantine fault tolerance (BFT), and (iii) Rational fault
tolerance (RFT), each more general than the previous. Agreement in repeated
rounds on both (1) the proposed value in each round and (2) the ordering among
agreed-upon values across multiple rounds is called Atomic BroadCast (ABC). ABC
is more generalized than consensus and is employed in blockchains.
  This work studies ABC under the RFT threat model. We consider $t$ byzantine
and $k$ rational adversaries among $n$ players. We also study different types
of rational players based on their utility towards (1) liveness attack, (2)
censorship or (3) disagreement (forking attack). We study the problem of ABC
under this general threat model in partially-synchronous networks. We show (1)
ABC is impossible for $n/3< (t+k) <n/2$ if rational players prefer liveness or
censorship attacks and (2) the consensus protocol proposed by Ranchal-Pedrosa
and Gramoli cannot be generalized to solve ABC due to insecure Nash equilibrium
(resulting in disagreement). For ABC in partially synchronous network settings,
we propose a novel protocol \textsf{pRFT}(practical Rational Fault Tolerance).
We show \textsf{pRFT} achieves ABC if (a) rational players prefer only
disagreement attacks and (b) $t < \frac{n}{4}$ and $(t + k) < \frac{n}{2}$. In
\textsf{pRFT}, we incorporate accountability (capturing deviating players)
within the protocol by leveraging honest players. We also show that the message
complexity of \textsf{pRFT} is at par with the best consensus protocols that
guarantee accountability.
