  Most public blockchain protocols, including the popular Bitcoin and Ethereum
blockchains, do not formally specify the order in which miners should select
transactions from the pool of pending (or uncommitted) transactions for
inclusion in the blockchain. Over the years, informal conventions or "norms"
for transaction ordering have, however, emerged via the use of shared software
by miners, e.g., the GetBlockTemplate (GBT) mining protocol in Bitcoin Core.
Today, a widely held view is that Bitcoin miners prioritize transactions based
on their offered "transaction fee-per-byte." Bitcoin users are, consequently,
encouraged to increase the fees to accelerate the commitment of their
transactions, particularly during periods of congestion. In this paper, we
audit the Bitcoin blockchain and present statistically significant evidence of
mining pools deviating from the norms to accelerate the commitment of
transactions for which they have (i) a selfish or vested interest, or (ii)
received dark-fee payments via opaque (non-public) side-channels. As
blockchains are increasingly being used as a record-keeping substrate for a
variety of decentralized (financial technology) systems, our findings call for
an urgent discussion on defining neutrality norms that miners must adhere to
when ordering transactions in the chains. Finally, we make our data sets and
scripts publicly available.
