  This paper revisits the ubiquitous problem of achieving state machine
replication in blockchains based on repeated consensus, like Tendermint. To
achieve state machine replication in blockchains built on top of consensus, one
needs to guarantee fairness of user transactions. A huge body of work has been
carried out on the relation between state machine replication and consensus in
the past years, in a variety of system models and with respect to varied
problem specifications. We systematize this work by proposing novel and
rigorous abstractions for state machine replication and repeated consensus in a
system model that accounts for realistic blockchains in which blocks may
contain several transactions issued by one or more users, and where validity
and order of transactions within a block is determined by an external
application-dependent function that can capture various approaches for
order-fairness in the literature. Based on these abstractions, we propose a
reduction from state machine replication to repeated consensus, such that user
fairness is achieved using the consensus module as a black box. This approach
allows to achieve fairness as an add-on on top of preexisting consensus modules
in blockchains based on repeated consensus.
