total global order of transactions. OrderlessChain uses the
properties of permissioned blockchains and CRDTs to oer an
innovative two-phase execute-commit protocol for creating
safe and live applications in a Byzantine coordination-free
environment. We also built ve applications on Orderless-
Chain to show its practicability.
We oer the following contributions in this paper:
1.
We introduce OrderlessChain, a novel permissioned
blockchain capable of executing safe and live appli-
cations in a Byzantine coordination-free environment.
Our system achieves this without the coordination over-
head for creating a total global order of transactions,
improving the throughput and scalability.
2.
We demonstrate a novel approach for creating Turing-
complete blockchain applications based on CRDTs. Our
approach preserves the I-conuent invariants of appli-
cations in a coordination-free Byzantine environment.
3.
We implement a prototype of OrderlessChain and
demonstrate the improved throughput and latency of
the coordination-free approach for I-conuent applica-
tions compared to existing permissioned blockchains.
The remainder of the paper is organized as follows. First,
we provide a background on I-conuence and CRDTs in Sec-
tion 2 followed by the system model in Section 3. Then, we
explain our protocol in Section 4. We discuss the applications
of OrderlessChain and the implementation in Sections 5 and
6. We also explain our approach for preserving application-
level correctness requirements in Section 7 and the eects of
Byzantine participants in Section 8. We present evaluations
in Section 9 and review related work in Section 10.
2 Background
Invariant Conditions and Invariant Conuence – Dier-
ent applications have dierent correctness requirements. For
example, a banking application may be required to prevent
the customers’ account balances from dropping below zero.
Developers specify the correctness of an application by den-
ing a set of invariant conditions
{I1,...,Is}
on the application’s
state. Each
Ij
represents a requirement that nodes must pre-
serve during the application’s lifecycle. Preserving invariants
in a distributed system with globally serialized transactions
is relatively straightforward. Provided that each transaction
preserves the invariants, serialization enables the nodes to
apply the transactions in a sequentially isolated manner and
preserve the invariants.
However, serialization comes at a high coordination cost.
In a coordination-free distributed system, the nodes may re-
ceive the transactions in dierent orders. Hence, preserving
invariants is challenging. For example, a node that stores the
account balance of a customer with an account balance of
{Balance :100}
can accept only one of the withdrawal trans-
actions of
Withdraw(50)
and
Withdraw(60)
. Applying both
transactions results in a negative account balance and violates
the application’s invariants. Without coordination, the nodes
cannot agree to accept one of the two transactions.
Bailis et al. [
6
] studied preserving invariants in a non-
Byzantine coordination-free distributed system and intro-
duced the notion of Invariant Conuence (I-conuence). A set
of transactions
{TS1,...,TSm}
are I-conuent with regard to an
invariant condition
Ij
, if the transactions can be applied in
dierent orders on dierent nodes while preserving
Ij
. Con-
sider the mentioned withdrawal transactions as an example
of a non-I-conuent transaction set. However, two deposit
transactions
Deposit(50)
and
Deposit(60)
are I-conuent, as
applying these transactions in any order on dierent nodes
does not violate the non-negative invariant condition. Hence,
the I-conuent transactions must have these two properties:
(1) Commutativity: The transactions can be applied in any or-
der. (2) Convergence: The nal state is independent of the order
of transactions. Bailis et al. proved that only I-conuent trans-
actions could be executed on a coordination-free distributed
system and non-I-conuent transactions require coordination
among the system’s nodes [6].
Conict-free Replicated Data Types – One available
technique that provides commutative and convergent trans-
actions as required by I-conuence is Conict-free Replicated
Data Types (CRDTs). CRDTs represent abstract data types
that converge to the same state in the presence of concurrent
transactions in a coordination-free distributed system [
48
].
These data types encapsulate common data structures such as
maps and provide APIs for reading and modifying their values.
Since concurrent transactions can result in conicting values,
CRDTs use built-in mechanisms to resolve conicts without
coordination. Shapiro et al. [
48
] formalized CRDTs and proved
their strong eventual consistency property (SEC) in an eventu-
ally consistent system. An SEC system has two requirements:
(1) Eventual delivery of transactions: If a transaction is deliv-
ered to one correct node, then all correct nodes will eventually
receive the transaction. (2) Strong convergence of nodes: If the
same set of transactions is applied on every correct node, then
the nodes’ state immediately converges to the same state [
48
].
CRDTs synchronize among dierent nodes through propa-
gating commutative transactions [
33
]. When extending com-
mon data structures with CRDT features, the transactions
may inherently be commutative or not. For example, a counter
is easily modeled as a CRDT since increment transactions are
intrinsically commutative. However, modications for several
other data types are not commutative. For instance, assigning
a value to a single-value register is not inherently commuta-
tive. For converting a register to a CRDT, the register needs
to be extended with metadata, dening its behavior in the
presence of concurrent modications. This is achieved with
the help of the happened-before relation [
48
] that denes the
causal order between two events based on logical clocks [
32
].
The theoretical foundation for dening the requirements of
several CRDTs has been studied thoroughly [28, 44].
2