  Sharding scales throughput by splitting blockchain nodes into parallel
groups. However, different shards' independent and random scheduling for
cross-shard transactions results in numerous conflicts and aborts, since
cross-shard transactions from different shards may access the same account. A
deterministic ordering can eliminate conflicts by determining a global order
for transactions before processing, as proved in the database field.
Unfortunately, due to the intertwining of the Byzantine environment and
information isolation among shards, there is no trusted party able to
predetermine such an order for cross-shard transactions. To tackle this
challenge, this paper proposes Prophet, a conflict-free sharding blockchain
based on Byzantine-tolerant deterministic ordering. It first depends on
untrusted self-organizing coalitions of nodes from different shards to
pre-execute cross-shard transactions for prerequisite information about
ordering. It then determines a trusted global order based on stateless ordering
and post-verification for pre-executed results, through shard cooperation.
Following the order, the shards thus orderly execute and commit transactions
without conflicts. Prophet orchestrates the pre-execution, ordering, and
execution processes in the sharding consensus for minimal overhead. We
rigorously prove the determinism and serializability of transactions under the
Byzantine and sharded environment. An evaluation of our prototype shows that
Prophet improves the throughput by $3.11\times$ and achieves nearly no aborts
on 1 million Ethereum transactions compared with state-of-the-art sharding.
