  Performance and scalability are major concerns for blockchains:
permissionless systems are typically limited by slow proof of X consensus
algorithms and sequential post-order transaction execution on every node of the
network. By introducing a small amount of trust in their participants,
permissioned blockchain systems such as Hyperledger Fabric can benefit from
more efficient consensus algorithms and make use of parallel pre-order
execution on a subset of network nodes. Fabric, in particular, has been shown
to handle tens of thousands of transactions per second. However, this
performance is only achievable for contention-free transaction workloads. If
many transactions compete for a small set of hot keys in the world state, the
effective throughput drops drastically. We therefore propose XOX: a novel
two-pronged transaction execution approach that both minimizes invalid
transactions in the Fabric blockchain and maximizes concurrent execution. Our
approach additionally prevents unintentional denial of service attacks by
clients re-submitting conflicting transactions. Even under fully contentious
workloads, XOX can handle more than 3000 transactions per second, all of which
would be discarded by regular Fabric.
