Skip to main content

On modeling blockchain-enabled economic networks as stochastic dynamical systems

Abstract

Blockchain networks have attracted tremendous attention for creating cryptocurrencies and decentralized economies built on peer-to-peer protocols. However, the complex nature of the dynamics and feedback mechanisms within these economic networks has rendered it difficult to reason about the growth and evolution of these networks. Hence, proper mathematical frameworks to model and analyze the behavior of blockchain-enabled networks are essential. To address this need, we establish a formal mathematical framework, based on dynamical systems, to model the core concepts in blockchain-enabled economies. Drawing on concepts from differential games, control engineering, and stochastic dynamical systems, this paper proposes a methodology to model, simulate, and engineer networked token economies. To illustrate our framework, a model of a generalized token economy is developed, where miners provide a commodity service to a platform in exchange for a cryptocurrency and users consume a service from the platform. We illustrate the dynamics of token economies by simulating and testing two different block reward strategies. We then conclude by outlining future research directions that will integrate additional methods from signal processing and control theory into the toolkit for designers of blockchain-enabled economic systems.

Introduction

During the 2007-2008 global financial crisis, serious abuses by major financial institutions initiated a series of events resulting in a collapse of the loosely regulated financial network. This crash unveiled major weaknesses of traditional financial systems and instigated a general feeling of distrust on banking institutions. In this context, decentralized economic systems based on cryptocurrencies, such as Bitcoin (Nakamoto 2008), were developed and launched by a group of cryptographic activists who believed in social change through censorship-resistant and privacy-enhancing technologies (Rainer et al. 2015). Prior to Bitcoin, several attempts to establish digital currencies were made, including b-money by Dai (1998), hashcash by Finney (2002), and bit gold by Szabo (2005). Instead of relying on large financial institutions for their operation, these cryptocurrencies proposed a decentralized economy in which a collection of economic agents coordinate through a peer-to-peer network of computers via a blockchain protocol.

At a high level, blockchain aims to keep track of a ledger of valid transactions between agents of the economy without the need of a central institution for coordination. In order to keep track of a faithful and accurate list of transactions, the ledger is broadcast and replicated across all the machines in a peer-to-peer network. To enforce that the transactions in the ledger are valid (i.e., there is no negative balance or double spending), the network ‘as a whole’ coordinates to accept or reject new transactions according to a set of rules aiming to detect and block the operation of malicious agents (e.g. Byzantine attacks where malicious nodes can send arbitrary messages to different nodes in the network (Lamport et al. 1982)). Blockchain implements this idea by bunching together a group of new transactions that are added into a chain of blocks only if these transactions are validated by the peer-to-peer network. Consensus protocols are particularly important in this validation step, since they are commonly used to reconcile conflicting versions of the ledger. A particular protocol used to enforce consensus is Proof of Work (PoW) (Bentov et al. 2014), currently used in Bitcoin and Ethereum. PoW is just one particular example of many other consensus protocols, such as the Practical Byzantine Fault Tolerant algorithm (PBFT) (Castro et al. 1999), Proof of Stake (PoS) (Buterin and Griffith 2017), Delegated Proof of Stake (DPoS) (Larimer 2014), or Proof of Useful Work (Ball et al. 2017) to mention a few. Such a hierarchical representation of blockchain state has also been articulated in Shorish (2018). Canonical results in decentralized coordination using state space representations are presented in Olfati-Saber et al. (2007).

A token economy

Regardless of the underlying network architecture and consensus mechanism, the resulting economic networks remain largely similar, with economic agents driven by incentives under a set of rules. It has become increasingly important to design the right set of microscopic rules and incentives that can achieve the desirable system-level behavior (Voshmgir 2019). The term cryptoeconomics has been used to describe the design and study of incentives and mechanisms in a blockchain network (Voshmgir and Zargham 2019).

Although mechanism design and algorithmic game theory have been used to approach this design problem, agents in a real-world economy are not fully rational and are frequently exposed to disturbances (Nisan et al. 2007). In this paper, we draw inspiration from early military pursuer-and-evader differential games, where the models used are agnostic to the exact behavior of the players, to develop a theoretical and computational framework to validate the behavior of a networked economy from permissible actions and trajectories of the system (Isaacs 1999). Compared to other games and distributed control problems (Marden 2012; Marden and Shamma 2015; Ragavendran et al. 2011), the design problem in blockchain protocols has its own set of challenges, as agents have access to global information that can be used to collude or form Sybil attacks which are a class of malicious strategies leveraging synthetic accounts (Göbel et al. 2015; Heilman et al. 2015; Douceur 2002).

Differential games and control

Differential games bridge many concepts in control theory with game theory. Control theory is foundational to design systems that are robust to environmental noise and system-failures (Dockner et al. 2000). To fully harness the power of control theory, we first need to define the system-level objectives for the blockchain network which are often neglected in the business narratives. In addition, traditional control theory often deals with a physical system over which designers have direct control (Zargham et al. 2018). In designing an economic network of human agents and incentives, designers at best have indirect control over the incentive structure with little control over the exact behavior.

In this paper, we propose a stochastic dynamical system modeling approach for decision making and economics inspired by Peters and Adamou’s work on ergodicity economics (Peters and Adamou 2018), Sterman’s work on business dynamics (Sterman 2002), Foster and Metcalfe’s work on complexity in economics (Foster 2005; Foster and Metcalfe 2012), Roth’s and Lux’s work on computational methods (Roth 2002; Lux 2008). A stochastic dynamical system model enables us to understand complex relationships within a system, as well as observe the business level impact resulting from secondary or tertiary dynamics which are often counterintuitive but obvious after the fact (Forrester 1971). Another major difference of our model from a classical control system model is that each individual follows their own control policies, not necessarily the ones that protocol designers hope for. This is where concepts from differential games come in. Agents follow their own policies as a function of their own beliefs of the system state and their own payout function. The collective behaviors of different agents result in sometimes unexpected system-level outcomes. The role of the designer is to design a set of rules and incentives such that the system-level goal can still be achieved irrespective of the exact behavior of the agents. In our model, we will model agent’s decisions using random variables but the exact distribution varies widely by applications. For example, when dealing with arrival, a Poisson distribution is often used (Borowski and Marden 2015; Guzman and Mojica-Nava 2017). Details around how to select and parameterize a distribution are beyond the scope of this paper.

In Fig. 1, we present our model for agents’ beliefs and policies. Random processes are fed into the agent policies, which collectively update the unobservable full system state. Agents in the system can then observe the state and form their beliefs, signals, and objectives that impact their policies in the next iteration. Despite the presence of these unobservable states and random processes, allowable agent policies and system mechanisms should still achieve certain observable outcomes.

Fig. 1
figure 1

Expanded representation of the differential game accounting for a variety of factors beyond the states and actions, including private signals σ, private goals V(·), a partially observable state X with an observable subspace Y⊆X, and some additional environmental stochastic processes δ drawn from potentially unknown distributions

Overview

This paper proposes a new mathematical framework, based on tools from dynamical systems theory and control engineering, to model and analyze the function of blockchain-enabled systems. In particular, we borrow a modeling framework widely used in control engineering called state space representation (Sontag 2013). According to this framework, there is a set of abstract variables, called states, evolving over time (either continuous or discrete) according to a set of rules. In the discrete-time case, the evolution rules are described in terms of a first-order difference equation, in which the values of the states at a given time \(t\in \mathbb {N}\) depend exclusively on the values of the states at time t−1. Hence, given the initial values for the states at the origin of time (i.e., t=0), it is possible to recover the states at any time t>0 by solving this recursion. There is a rich mathematical theory to analyze state-space models, specially in the linear case, in which the states at time t depend on the states at time t−1 according to a linear transformation. In this paper, we propose a linear state-space model of the blockchain network whose set of states represent transaction addresses. Notice that, as new transactions take place in the decentralized economy, the number of states in the model increases over time. This results in some technical difficulties that we overcome by proposing a linear time-expanding (LTE) state-space model which we will use to analyze the temporal behavior of the blockchain. As a reference case, we will model and analyze the evolution of the state in the public Bitcoin network using the aforementioned LTE modeling framework. Using tools from state-space theory, Lyapunov-like functions (Zargham et al. 2018; Khalil and Grizzle 2002; Smith 1984; Park et al. 2019) in particular, we will illustrate how to enforce a global property, namely, the total amount of currency in the system, using local state-transition rules.

To further elucidate the power of the state-space modeling framework, a model of a generalized token economy is proposed where miners provide a commodity service to a platform in exchange for a cryptocurrency and users consume a service from the platform. Certain key metrics of the economy are defined, such as the growth of the network, intrinsic value of the token, and volatility of the service performed denominated in fiat currency. A momentum-based secondary market of the price of the token is also included in the system. This baseline model allows us to run Monte Carlo simulations and observe outcome of complex dynamics and reason about the evolution of the system.

The paper is structured as follows: after providing appropriate background, we describe the LTE state-space model and analyze the behavior of the Bitcoin network using our framework. We then present a model of a generalized token economy as an extension to the theoretical framework with a baseline simulation based on different open-loop block reward schedules. The paper is concluded by exploring model limitations and outlining future research directions.

Theoretical framework

The following characterization attempts to create a useful abstraction over the properties of a blockchain network. It is not an attempt to describe how a blockchain network works, but to provide tools to engineer economic systems within such a network. All state variables are real-valued to make derivations more intuitive and straightforward.

Characterizing the economic network

The following definitions are used to characterize the unbounded agent state space and to relate that to the bounded state space over which system requirements may be defined. This model does not require that the system be implemented with a centralized state but mathematics characterizes the macro scale evolution of the system in terms of formally defined micro elements. This framework is critical for understanding the relationships between agents and accounts within a decentralized system.

Furthermore, timescale of the state space model is defined so that agent actions can be properly modeled. A discretization of the sequence and aggregation of actions into transaction blocks is necessary to simulate the system at this level. However, the construct provided is sufficiently general that if the discrete time is mapped to atomic events, the differential equations models may be used for event based simulation without deriving new models.

This model is defined over addresses. All addresses are defined by public key private key pairs, where private keys are used for cryptographic proof of the right to act as agent. Without loss of generality more complex schemes such as multi-signature schemes can be substituted for the simple private key proofs assumed here. Further characterization of cryptographic schemes is not required as this section focuses on the system dynamics rather than the means of enforcing those dynamics.

Definition 1

Let \(\mathcal {A}\) be the set of all possible Addresses as determined by the range of the cryptographic hash function used in the system implementation. At any time the set of addresses that exist is \(\mathbf {A}\subset \mathcal {A}\).

An address a∈A is referred to as an agent when the address is assumed to map to an identity and thus can perform an action. An address a∈A is called an account when it contains code declaring one or more states and associated mechanisms which are exposed to other agents. Agency is the ability of agents to take actions through proof of control over accounts. In other words, an agent controlling account a∈A has access to a set of actions (\(\mathbf {U}\subset \mathcal {U}\) as defined in Definition 4) and mechanisms (\(\mathbf {F}\subset \mathcal {F}\) as defined in Definition 5). The following definitions are concerned with the mutation of system state by agents’ actions as defined through Definitions 2 to 9.

Definition 2

The Ledger State is a shared data structure \(\mathbf {L}\in \mathcal {L}\) which evolves when agents perform transactions by taking actions with respect to mechanisms; \(\mathcal {L}\) denotes the space of all valid ledger states L. The state L={X,T} where X is a set of local states over all accounts as defined in Definition 3 and T is a (partially) ordered list of transactions as defined in Definition 6.

The list of transactions T need not be strictly ordered because transactions are local operations on the state with respect to accounts. It suffices to know the order of any transactions with dependence on or modification of a shared element of the state x∈X. Further formalization of event orderings is deferred from discussion in this document.

Definition 3

Consider the Global StateX as an aggregate set of Local States, Xi, over each address i∈A. To further distinguish between account state and controlling agent for each address, Local States can also be defined in terms of the state declared by account i∈A but controlled by agent j∈A as Xij.

It is immediate that each local state Xij must be declared by a unique account i∈A. Therefore, the local states can be interpreted as a partition of X over accounts. It is not, however, assumed that there is a partition over agents dimension since an agent can control multiple accounts which only maintain the states.

Definition 4

For any agent \(a\in \mathcal {A}\) there is a state dependent Action Space representing all legal actions of agent a given a global state X under some mechanisms f as defined in Definition 5. A particular action is denoted as u∈U where U is the set of actions that exist at that point in time and \(\mathbf {U}\subset \mathcal {U}\), a set of all possible legal actions.

Definition 5

Consider the set of Mechanisms to be \(\mathcal {F}\) such that any \(f\in \mathcal {F}\)is an operator

$$ f: \mathcal{X} \times \mathcal{U} \longrightarrow \mathcal{X} $$
(1)

where \(\mathcal {X}\)is the space of all possible states X as defined in Definition 3 and \(\mathcal {U}\) is a space of all legal actions as defined in Definition 4.

Mechanisms like states, must be declared by an account and in many cases will have been declared alongside specific local state variables Xi which the mechanism operates on. However, no such assumption will be made formally.

Definition 6

The set of all possible transactions is denoted as \(\mathcal {T}= \mathcal {A} \times \mathcal {F} \times \mathcal {U}\) where an element \(t\in \mathcal {T}\) is defined t=(a,f,u). In order for the transaction to be valid, agent a must have the right to perform the state update operation X+=f(X,u) given the current state X.

As previously defined in the Ledger State, a sequence of transactions organized into a (partially) ordered list is denoted as T. The partial ordering may be considered without loss of generality by noting that such a partial ordering is defined precisely by the independence of the final output to the ordering of the list. This occurs when there is strong separation in the states, accounts, and mechanisms involved in the transactions in T.

Definition 7

A policy\(P: \mathcal {X} \longrightarrow \mathcal {U}\) is a state dependent strategy over a particular mechanism \(f\in \mathcal {F}\). An agent \(a\in \mathcal {A}\) is said to be using policy P over mechanism \(f \in \mathcal {F}\) if it monitors the state \(\mathcal X\) and broadcasts transaction t=(a,f,u) associated with action \(u=P(x) \in \mathcal {U}\).

This definition allows for the case that no transactions are made because the conditions for a transaction under policy P are never met but it excludes the degenerate cases where there is no state for which a transaction will be generated. A practical consideration of this framing is the agents engagement level in monitoring the state. For the purpose of simple notation the sampling rate of the monitoring process is absorbed into the definition of P. During simulation. it is made explicit for tuning purposes.

Definition 8

Consider ledger State Transitions; the Ledger State may be updated for any valid sequence of transactions T=[…,t,…], where t=(a,f,u) is valid given X when the operation is applied. Without loss of generality, it is assumed all transactions are valid because invalid transactions are rejected.

An atomic update is defined

$$ \mathbf X^{+} = f_{t}(\mathbf X, u_{t}) \text{ for any valid \((a_{t}, f_{t}, u_{t})\) given \(\mathbf X\)} $$
(2)

where ft is the mechanism used in transaction t and ut is the action taken for transaction t. For a block defined by sequence of transactions T, the state update is

$$ \mathbf X^{+} = f_{N} (f_{N-1}(\cdots f_{1}(f_{0}(\mathbf X, u_{0}), u_{1}) \cdots, u_{N-1}),u_{N}) $$
(3)

where the list of transactions T is indexed by {0,1,…,N}.

Definition 9

The Ledger Trajectory is a sequence of ledger states L(k)={X(k),T(k)}, indexed by k=0,1,…,K such that

$$ \mathbf X(k+1) = f_{N} (f_{N-1}(\cdots f_{1}(f_{0}(\mathbf X(k), u_{0}), u_{1}) \cdots, u_{N-1}),u_{N}) $$
(4)

for transactions T(k) is indexed by k=0,1,…,N.

Notation may be simplified by defining Fk to be the composition of the transactions in T(k) such that

$$ \mathbf X(k+1) = \mathbf F_{k} (X(k)) $$
(5)

denoting the closed loop state update accounting implicitly for the actions u=P(X).

At any time the most recent Ledger State may be denoted as L(K)={X(K),T(K) where the integer K is the block height and L(0)={X(0),T(0)} is the genesis block. The number of transactions is dependent on the block N=N(t). Under this definition the Blockchain is characterized precisely by the trajectory of generalized dynamical system in conical form. As defined, the differential equations can be used to characterize the system with atomic transactions as the basic unit of time. Organizing transactions into blocks provides a means of testing block based logic.

Any mechanism that can be implemented as an account under this framework provides an explicit contribution to the actions available to all other accounts within the system. The explicit characterization of an account and its subsequent state changes permits the estimation of changes in any utilities defined over the network state. Using the second order discrete networked system model, it is possible to both formally analyze the reachable state space and simulate the response to incentives with respect to a variety of behavioral assumptions.

Characterizing the peer-to-peer network

Under this formal model there are two distinct concepts matching the term Network. The state space model defines the evolution of a network of interacting accounts. From this point of view, the economic network is a robotic network with agents represented by accounts, each of which has its own unique state space and action space defined in part by all of the other agents (accounts) in the network. The agent (account) states of all network participants and their backward discrete difference equations are visible to other agents and any external observers capable of querying the Ledger State.

Consideration of the external viewer brings attention to the other concept of a network which is required to model this system; the communication and computation network responsible for maintaining account states, computing state updates, verifying the validity of blocks of transactions, and to agree on the correct sequence of blocks when multiple valid sequences are available.

Definition 10

A Node is a member of the Peer-to-Peer Network with the ability to broadcast a transaction tx for which it can prove control of the initiating account a0 using the associated private key, and the ability to verify the validity of transactions broadcast by other nodes.

Definition 11

The Peer-to-Peer Network is the set of nodes \(j\in \mathcal {V}\), participating in the communication and computation network, each maintaining a copy of the Ledger State Bj(k) and edges in this network represent communication between nodes. The Ledger State here refers to the Ledger State at the underlying peer-to-peer network layer. Nodes in the network reach a consensus over their individual Ledger States Bj(k) to form a Ledger State on the economic layer, \(\mathbf {L}\in \mathcal {L}\), as defined in Definition 2.

Note that each node j may have its belief of the Ledger State Bj(k) such that for any two nodes \(\phantom {\dot {i}\!}\mathbf {B}_{j}(k) \neq \mathbf {B}_{j'}(k)\) for j≠j′. However, It is guaranteed by the underlying cryptographic protocol that both \(\mathbf {B}_{j}(k), \mathbf {B}_{j'}(k) \in \mathcal {B}\), where \(\mathcal {B}\) is the set of all possible Ledger States.

Definition 12

A Chain is a valid sequence of Ledger States, \(\mathbf {C}(K) =\{\mathbf {B}(k)\in \mathcal {B} \) for \(k=0,1,\ldots,K\} \in \mathcal {B}^{K+1} \) where B(0) is the genesis block, K is the block height, and \(\mathbf {C} \subset \mathcal {C}\), where \(\mathcal {C}\) denotes all possible and valid Chain trajectories.

The cryptographic protocol maintaining the ledger uses sequences of hashing functions to maintain a strict ordering on blocks such that any attempt to manipulate the history of the ledger state is immediately detectable by all nodes in the communication and computation network. Since the cryptographic protocol only accepts blocks for which all state transitions are defined by legal transactions, the chain is also guaranteed to contain a self consistent historical trajectory of the state space model, both states and derivatives, starting with the initial condition x(0) as defined in the genesis block.

We now return to the issue of nodes maintaining valid but different chains \(\phantom {\dot {i}\!}\mathbf {C}_{j}(K_{j}) \neq \mathbf {C}_{j'}(K_{j'})\), which implies that Ledger States \(\phantom {\dot {i}\!}\mathbf {B}_{j}(K_{j}), \mathbf {B}_{j'}(K_{j'}) \in \mathcal {B}\) but Kj and \(\phantom {\dot {i}\!}K_{j^{\prime }}\) may be different block heights. When nodes i and j have different chains \(\phantom {\dot {i}\!}\mathbf {C}_{j}(K_{j}) \neq \mathbf {C}_{j'}(K_{j'})\) there must be a protocol by which they agree which one is correct or else the state could fragment into as many trajectories as there are nodes. The set of rules by which these inconsistencies are made consistent is called the consensus protocol. Here the focus is on the critical properties of the consensus protocol rather than algorithms through which those properties are realized.

Definition 13

The Consensus Protocol, \(\mathbb {C}\) is the process by which agents resolve inconsistency: \(\mathbb {C}: (\mathcal {C}, \mathcal {C}) \rightarrow \mathcal {C}\) returning which of the two otherwise valid chains superseding the other.

The existence of such a function alone does not ensure that the network does not fragment into partitions maintaining conflicting states. To further ensure consensus, the consensus protocol requires the following property.

Conjecture 1

The Consensus protocol must impose a strict ordering on valid chains \(\mathbf {C}\in \mathcal {C}\). It is sufficient that there exists a function \(\Psi : \mathcal {C}\rightarrow \mathbb {R}\) such that for any \(\mathbf {C},\mathbf {C}'\in \mathcal {C}\)

$$ \mathbf{C}\neq \mathbf{C}' \implies \Psi(\mathbf{C}) \neq \Psi(\mathbf{C}'). $$
(6)

Two nodes may resolve their inconsistency by each setting their Chain to C∗=arg maxC∈{C,C′}Ψ(C).

The formalism is consistent with the Nakomoto consensus paradigm (Nakamoto 2008) where the function Ψ is the amount of work done to reach the current state in the competing chains. While it is possible for two chains to have exactly the same amount of work and still differ, such a discrete event is a measure zero outcome in a continuous probability distribution; thus, for the Bitcoin network using total work, (6) can be expected to hold with probability one.

For the purpose of the economic specification and subsequent design and analysis, it suffices to use any consensus protocol for which Conjecture 1 holds with probability one. Using a proof scheme as the one described above results in a lack of finality, meaning that there is always the possibility that another chain will supersede the one that a node is maintaining. A consensus algorithm with finality is one that agreement on B(k) for block height K would not be reversible by some later observation. The state update would hence be Markovian, meaning that the nodes would not be required to compare full trajectories C(K) to come to consensus over B(K). Proof of Stake based consensus methods under development aim to achieve this property (Buterin and Griffith 2017).

Bitcoin reference case

The public nature of data in the Bitcoin economic network has made it a great candidate for research on financial flows. Many of these models consider graphs of flows between accounts (Bovet et al.) or evolutionary market share of Bitcoin in the overall cryptocurrency market (ElBahrawy et al. 2017). This analysis will instead focus structurally on how very simple rules about what constitutes a valid transaction result in well-defined global properties.

Linear time-expanding model

The Bitcoin economic network is defined over block heights k=0,1,2,…, and there are \(n_{k}=|\mathcal {A}_{k}|\) accounts at each block height k with the additional caveat that nk+1≥nk. For consistency of notation with dynamical models on networks, accounts will be referenced with indices i∈{1,…,nk}.

Definition 14

A Linear Time-Expanding (LTE) system has a state space model in the form of a discrete time varying linear model with the dimension of the state space \(x\in \mathbb {R}^{n_{k}}\) which is monotonically non-decreasing while the state update matrices vary only in nk.

Consider a canonical form discrete time linear time varying model:

$$ x(k+1) = A_{k} x(k) + B_{k} u(k) $$
(7)

where \(x(k) \in \mathbb {R}^{n_{k}}\). Under this framework \(A_{k}\in \mathbb {R}^{n_{k+1} \times n_{k}}\), but since there are no internal dynamics

$$ A_{k} = \left[ \begin{array}{c} I_{n_{k}}\\ 0 \end{array} \right] $$
(8)

where \( I_{n_{k}}\) is the identity matrix. The matrix Bk is an all-to-all incidence matrix encoding all possible sends \(B_{k}\in \{0,1,-1\}^{n_{k+1} \times m_{k}}\) where \(m_{k} = n_{k+1}\cdot (n_{k}-1) = |\mathcal {E}_{k}|\) and \(u(k)\in \mathbb {R}^{m_{k}}\). The edge set is given by \(\mathcal {E}_{k}=\mathcal {A}_{k} \times \mathcal {A}_{k+1}\) because flows must originate from accounts that exist at time k. Hence,

$$ \left[B_{k}\right]_{{ie}} = \left\{ \begin{array}{ll} 1 & \text{if } e=(j,i) \text{ for any } {j} \\ -1 & \text{if } e=(i,j) \text{for any } {j} \\ 0 & \text{otherwise} \end{array}\right. $$
(9)

Result 1

The system in (7) is an Linear Time-Expanding (LTE) system because, for all k, Ak is an augmented identity matrix as defined in (8) and Bk is an all-to-all incidence matrix as defined in (9).

The incidence matrix construction enforces the requirement of no double spend. Under this construction the local action \(u_{e}(k) \in \mathcal {U}_{e}(k)\)

$$ \mathcal{U}_{e}(k) = \left\{u_{e=(i,j)} \in\mathbb{R} \big | \sum_{j} u_{(i,j)} \le x_{i}(k) \forall i\right\}, $$
(10)

where (10) enforces the requirement that accounts cannot spend funds that they do not have. Note that the requirement is locally enforceable, imposing only constraints on the balance of account i and transactions to or from account i during block k. Viewed from the perspective of account i, the local constraints on flow (no double spend and no negative balance) can be written as,

$$ x_{i}(k) + \sum_{j} u_{(j,i)}(k)-u_{(j,i)}(k) \ge 0. $$
(11)

In practice, transactions encoded by the inputs u are processed with a strict ordering that can be enforced with only the sender’s state, as defined in Definition 9,

$$ u_{(i,j)} \le x_{i}. $$
(12)

The model in (11) is a relaxation of the enforced requirement in (12); any block comprised of actions u(k) that respect the individual transaction validity requirement (12) will satisfy the conservation law in (11). The relaxed equation is presented to demonstrate that the case of the Bitcoin network flow is in fact stronger than the conical network flow models in the controls literature (Zargham et al. 2013).

Globally invariant properties from local rules

Even though the Bitcoin economic network is a somewhat trivial system to study from a dynamical systems’ perspective, it is actually much like a biological evolutionary system with complex global behaviors emerging from simple local rules. The trajectory of the system is defined entirely in terms of its state transitions and initial conditions. The dynamical system model remains structurally invariant even as the number of account grows unbounded. Each account, or local agent, has full control over its actions and the set of legal actions for each agent are defined and verifiable with information local to its agent state. These definitions of local legal actions provide properties that are suitable for a financial ledger of record. In order to introduce funds into the economy, a driving function M(k)=μkv(k) is added to (7) where \(M(k)\in \mathbb {R}^{n_{k+1}} \) is the product of a scheduled positive scalar reward \(\mu _{k} \in \mathbb {R}_{+}\) and a stochastic vector \(v(k)\in \mathbb {R}^{n_{k+1}}_{+}\) such that \(\sum _{i} v_{i}(k)=1\) and obtain:

$$ x(k+1) = A_{k} x(k) + B_{k} u(k) + \mu_{k} v(k). $$
(13)

Block reward schedule as a driving function, together with a set of local legal actions, guarantees that a low dimensional global property is enforced throughout the entire trajectory.

Theorem 1

Given the local ’no double spend’ rule as defined by (11) and the driving function defined in (13), the global quantity of Bitcoin over time, denoted as y(t), can be proven to converge to the desired quantity:

$$ y_{\infty} = {\lim}_{k\rightarrow \infty} y(k) = \sum_{k=1}^{\infty} \mu_{k}. $$
(14)

The details of the proof can be found in the Appendix.

In the Bitcoin network the mining rewards are defined over i=(1,…,32) halving intervals ri=(k0,k1,…,k209999) each including 210000 blocks resulting in \(\mu _{k} = \frac {\lfloor {\frac {50 \cdot 10^{8}}{2^{i}}}\rfloor }{10^{8}} \) where k∈ri. After the 32nd interval the minted block rewards cease and the total quantity of Bitcoin is conserved. By computing the sum over the intervals, the final sum of Bitcoin y∞=20,999,999.9769, generally quoted as 21 million Bitcoin. This does not account for the potential loss of control of accounts with Bitcoin balances which reduces the effective supply.

The most powerful part about this characterization is that the system literally tracks a desired property \(y(k) = \sum _{k} \mu _{k}\) for the entire trajectory, in fact in any valid trajectory, with no assumptions about actions of individual agents. This indicates that it is proper to think of blockchain-enabled economic systems as engineered economies where it is possible to encode legal state transitions in such a manner as to mathematically ensure the emergence of a low dimensional global property.

A generalized token economy

Cryptocurrencies in their tokenized form have the potential to be more than just currencies. A token can be a claim over some right, access, utility, or return. Depending on the design, tokens can align agent incentives and shape agent behavior through rewards, punishment, and future expectation. Ever since the advent of Bitcoin, there have been numerous tokens telling stories of various token economies (Buterin 2014; Maker 2017). Here we propose a generalized token economy model rooted in our theoretical framework above and can be easily extended to any specific token economies.

Model setup

Traditional networked economies have been characterized by a centralized platform where users and producers can exchange goods and services. The value of such a platform is often considered to be proportional to the square of the number of active users by Metcalfe’s Law (Zhang et al. 2015). Similarly, new token economies are introducing new models where miners perform a service that is useful to users on the platform and get paid in a native token. Incentivized peer-to-peer file storage network and video streaming network are just two promising examples (Filecoin 2014; Petkanic and Tang 2017). In contrast to wasteful energy usage in Bitcoin, the work done by producers in these new token economies can actually be useful. Such new token economies also differ from traditional platform economies by coupling platform producers with service providers, commonly referred to as miners. The role of protocol designers is to design rules, policies, and state update mechanisms within the system while not actively participating in the economy. The model proposed aims to help protocol designers better understand their systems and make good design decisions. The following assumptions are important in simplifying the model and providing a baseline:Assumption 1. The model considers each miner and user to be identical, with unit service capacity (similar to work in mean field games (Lasry and Lions 2007; Sahneh et al. 2013)). Each user demands one unit of service and each miner only provides one. Assumption 2. The model assumes a perfectly competitive market where miners and users are both price takers and the service provided is a commodity with no product differentiation, given the open nature of a token economy (Gregory 2014; Hayek 1948).

With these assumptions in mind, a state space representation of the system can be defined with a minimal set of internal states that can capture different aspects of the system. We will also define TOK as the native cryptocurrency to the network. There are two subsystems within our token economy. The first is with regard to the flow of TOK and the second is related to the service provided on the network. The two subsystems are connected with three important signals, miner’s profitability, price of service on the platform, and the price of the token itself which are all treated as part of the Global State, \(\mathcal {X}\).

Given our efficient market assumption, we have decided to leave out the modeling of TOK holdings entirely. For one, it is a subsystem in and of itself with its own dynamics about price movement relative to the amount of TOK in liquid pool and trading activities. In addition, with the efficient market assumption, we can assume that all the trading volume and liquidity has been embedded in the price (Malkiel 1989).

Assumption 1 reduces individual action spaces to population distribution which is a common approach in evolutionary dynamics (Mabrok and Shamma 2016). Instead of considering actions of each agent, our model considers aggregated forces that agent actions collectively exert on the system and treats that as part of the system states.

State variables

Given the above scope and assumptions, system state variables can be defined in Table 1. It is also worth noting that the price of the native token at time t, K(t), is not just dependent on the internal states of the system as the token is openly traded on secondary markets from day one. K(t) will have significant impact on agent incentives within the network as it bridges the token economy with fiat economy. K(t) is also subject to influences from unobservable secondary market dynamics, speculation, and sentiments that may or may not correlate with actual activities on the network itself (Chu et al. 2015).

Table 1 Definitions of system state variables

Each of the state variable defined in Table 1 constitutes the Global State \(\mathcal {X}\) defined in Definition 3. State update operations as defined in Definition 6 can be represented discretely as X(t+1)=f(X(t)), where agent action u is collapsed into X(t) given Assumption 1 above. As a general framework, our model is concerned with the consequences and dynamics of agent decisions, not the decisions themselves. The following system dynamics are different mechanisms that state trajectories can evolve.

System dynamics

Given some initial states, the following steps are taken at every time step t. A new network state, X+ or X(t+1), will be returned and become an input to the same iterative steps in the next time step.

  • New unit service supply and demand are determined based on private signals from the previous state.

  • Service transactions happen based on unit service supply and demand in the current time step.

  • Block rewards are minted and miners make profits from the system.

  • Some speculation happens to the native token resulting in a new token price.

  • Other system level signals and beliefs are updated.

System Dynamics 1

S(t) and D(t) is first modeled as an arrival-departure stochastic dynamical system, a classic approach in stochastic models (Muntz 1972).

R(t−1) and P(t−1) are the two driving signals for two main feedback loops in the system. R(t−1) represents how much the network is paying for the service that miners provide. Similarly, P(t−1) represents how much the network is willing to accept in exchange for the service capacity it provides. Hence, we are modeling the arrivals of new service supplied and new service demanded as two Poisson processes, as follows:

$$ \Delta S(t) \sim Po(\lambda_{s}(t)) $$
(15)
$$ \Delta D(t) \sim Po(\lambda_{d}(t)), $$
(16)

where Po(λ) denotes a Poisson distribution of mean λ. State variables λs(t) and λd(t) capture aggregated agent actions in bringing new supply and demand onto the network.

On a population level, when providing the service is more profitable, more service supply will arrive. Similarly, when the price of the service gets lower, more demand will arrive as rational agents respond to price signals. One can enrich this model by introducing a reservation price and the probability of an agent consuming a service (Bimpikis et al. 2019). However, the current model is simple and robust without going into specific agent behavior. The mean of ΔS(t) equals to the mean of ΔS(t−1) multiplied by a percentage increase in miner profitability:

$$ \lambda_{s}(t) = \lambda_{s}(t-1) \times \frac{R(t)}{R(t-1)}. $$
(17)

Similarly, the mean of ΔD(t) equals to the mean of ΔD(t−1) multiplied by a percentage decrease in the price of service as described by:

$$ \lambda_{d}(t) = \lambda_{d}(t-1) \times \frac{P(t-1)}{P(t)}. $$
(18)

Treating departure from the system as constants simplifies the dynamics without losing much of its meaning. In the case where supply is increasing quickly, we can consider service departure as departing and then immediately arriving again. This can be accounted for by a very positive ΔS(t). The same can be said about departure in demand. As such, the overall dynamics of service supply and demand can be described by the equations below:

$$ S(t) = S(t-1) + \Delta S(t) - X_{s}(t) $$
(19)
$$ D(t) = D(t-1) + \Delta D(t) - X_{d}(t). $$
(20)

System Dynamics 2

P(t) and Q(t) are derived from S(t) and D(t) based on aforementioned simplifying assumptions.

With the efficient market assumption, price can be set by relative strength between demand and supply (Gregory 2014),

$$ P(t) = \frac{D(t)}{S(t)}. $$
(21)

When demand is greater than supply, a higher price is expected and vice versa. This price model, despite being very simple, accurately captures this relationship. It can be further expanded to include momentum, user valuation, and other factors that will affect service price. Quantity of unit service traded on the network at time t is the minimum between net new demand and supply. After all, no transactions will take place with unmet demand or supply. This can be made more realistic with a slippage later since not all matching supply and demand can find each other in the market. Nonetheless, this has been taken care of by the efficient market assumption where supply always meets demand. As such we can write the quantity equation as

$$ Q(t) = \min(D(t), S(t)). $$
(22)

Both division in 21 and minimum in 22 are instances of mechanisms \(f\in \mathcal {F}\) that can be replaced with any other mechanisms under reasonable assumptions depending on the use case. Our model serves as an example of how the state space model can be generally applied.

System Dynamics 3

Block rewards are minted as defined by the protocol and released into the system as B(t).

In most blockchain protocols today, TOK issued in block rewards is usually set by a predetermined open-loop release schedule. However, we can consider a more abstract and generalized version of block rewards issuance by introducing the concept of a Key Performance Index (KPI) and tracking the network’s progress towards achieving that with I(t). Most traditional open loop block rewards scheme with a pre-determined release schedule is effectively treating the block time as the KPI, which can be written as,

$$ B(t) = f(\Delta I(t)) = f(\Delta t). $$
(23)

As a mechanism, \(f \in \mathcal {F}\), an open loop block reward scheme is a function of just the possible system state, \(\mathcal {X}\) and is irrespective of agent action, u, i.e. \(f: \mathcal {X} \longrightarrow \mathcal {X}\). However, if we define the release of block reward as a function of the rate of change in achieving the KPI, we can then create direct incentives based on what the network desires. Subsidy can be given out as a function of the change in I(t) and the amount of TOK left in the rewards pool. This set of subsidies B(0),B(1),B(2),...,B(t) can be the set of control policies that protocol designers can control to bootstrap the network to some target with some initial capital. This KPI can be as simple as the cumulative service transacted on the network over some period of time and it will bring agent action u back into the mechanism equation f in determining state changes related to block reward, i.e. \(f: \mathcal {X} \times \mathcal {U} \longrightarrow \mathcal {X}\).

System Dynamics 4

Agents speculate on secondary market prices of TOK as reflected in K(t) that influences other agent behaviors.

The secondary market price is a speculative estimator of future \(\frac {1}{V(t)}\). Market decouples from current state of \(\frac {1}{V(t)}\), because speculation is estimating future \(\frac {1}{V(t)}\) in an effort to create returns. Hence, it makes sense to model K(t) as a convex combination of its intrinsic and speculative value, as defined by γ∈[0,1],

$$ K(t) = \gamma \frac{1}{V(t)} + (1 - \gamma) U(t). $$
(24)

Note that while the range of γ is technically a closed interval, the interesting cases are when γ∈(0,1). State variable U(t) is the result of aggregating all individual agent’s speculative actions and translating them as a form of pressure exerted on the system. This is in line with the general asset pricing framework that the price of an asset can be attributed to its fundamental and speculative value (Dimson and Massoud 1999; Keynes 1964; Bachelier 2011). Speculative value U(t) captures momentum in price movement with a naive projection. The tuning parameter γ is treated as a constant but it can also be a randomized value that can randomize the composition of the mixture model.

System Dynamics 5

Other system wide beliefs and signals such as C(t),V(t), and R(t) are calculated.

C(t) is the cost of providing a unit service at some point in time in fiat currencies. This can be the output of another model but given our definition of a unit service, C(t) can be any arbitrary value in our model. After all, the value of C(t) only matters in relationship to the definition of the unit and the value of the unit service itself. We will thus model C(t) as a stochastic process that is noisy but it is neither diverging nor converging, similar to sampling from a normal distribution with momentum,

$$ C(t) = \alpha C(t-1) + (1-\alpha) N(\mu, \sigma). $$
(25)

Another signal V(t) is defined as the revenue earned in TOK per unit spend in fiat currency for miners. P(t)×Q(t) refers to how much a miner can earn from transaction fees and B(t) is the block reward subsidy provided by the protocol for Q(t) transactions at time t, both in TOK denomination. Each unit of Q(t) will cost C(t) in fiat denomination and hence C(t)×Q(t) is the fiat spend to earn P(t)×Q(t)+B(t) in TOK. V(t) hence represents how much tokens miners are earning for the service they provide,

$$ V(t) = \frac{P(t) \times Q(t) + B(t)}{C(t) \times Q(t)}. $$
(26)

Multiplying V(t) which is in K/FIAT by the price of token at time t, K(t), we get miner profitability in a unitless denomination. The system also cares about the inverse of V(t), which is \(\frac {1}{V(t)}\). This represents the intrinsic value of the token as it measures the value of service provided per unit of token in FIAT/K, or the fiat cost involved in the production of one token (David et al. 2014). Miners’ profit level in fiat currency can hence be written as

$$ R(t) = V(t) \times K(t). $$
(27)

Simulation and evaluation

This paper leveraged an open-source computer aided design software, cadCAD (BlockScience 2019), for complex adaptive dynamics. System states and dynamics are encoded in every discrete time step of the simulation with certain key performance metrics defined as part of the system state. As a token-enabled platform economy, the platform needs to grow in adoption and in underlying value of the token. In other words, Q(t),V(t), and K(t) should grow over time. The distribution over the total aggregated growth of Q(t) and volatility in the price of the service provided P(t)×K(t) are also important for the network to succeed.

The Bitcoin block reward function follows a step decay function with 50% decrease in supply approximately every four years (Nakamoto 2008). This often introduces arbitrary shocks and unpredictable dynamics around the period when the supply is reduced. A similar but slightly different block reward schedule can be introduced where it follows a smooth exponential decay with a predetermined half-life. For a generalized token economy, we will now experiment with two different block reward functions. One that follows the step decay function of Bitcoin and the other follows a smoothed exponential decay.

Since agents know these block reward schedule ahead of time, future expectation of token supply reduction is taken into account in driving speculative behaviors (Alexandre et al. 2018). The two systems are different in the block reward function as defined in 23 that can potentially lead to different behaviors in 24, holding all else equal. More specifically, this experiment involves holding agent policy, \(P: \mathcal {X} \longrightarrow \mathcal {U}\), constant, and changing an open loop system mechanism, \(f: \mathcal {X} \longrightarrow \mathcal {X}\), to observe their impact on state trajectory. Monte Carlo simulations are then performed 100 times for each configuration over 1040 weeks or 20 years. A summary of the two configurations can be found in Table 2.

Table 2 Open loop block reward release schedule comparison

As observed in Fig. 2, a pre-announced step function that significantly reduces the supply injection into the system at discrete time steps introduces arbitrary shocks into the system. Agents adapt their policies to speculate around these moments when the expected new supply is sharply reduced. Figure 3, on the other hand, shows a much smoother exponential rise in token prices as time step increases. It is also worth noting that a step decay function resulted in greater speculative activities as intense speculation happens around those shocks whereas a smoothed decay does not provide such pivotal points for speculation. Similar results are observed in \(\frac {1}{V(t)}\) on logarithmic scale because sharp supply reduction means that for the same amount of resource input, much fewer tokens are minted. Figures 4 and 5 further confirm that token price trajectories in our simulations are largely similar to cryptocurrency price movement observed in real life.

Fig. 2
figure 2

Token prices over 1,040 weeks; statistics from 100 Monte Carlo Runs under step decay block reward schedule on log scale

Fig. 3
figure 3

Token prices over 1,040 weeks; statistics from 100 Monte Carlo Runs under smooth exponential decay block reward schedule on log scale

Fig. 4
figure 4

Token prices over 1,040 weeks; 5 realizations under step decay block reward schedule on log scale

Fig. 5
figure 5

Token prices over 1,040 weeks; 5 realizations under smooth exponential decay block reward schedule on log scale

Moreover, increased speculative activities as a result of regular and consistent token supply contraction shocks might lead to increase in service transaction on the network. Token price speculation around step changes in supply results in increased miner profitability in fiat denomination which attracts more miners to join the network. This will further lower the cost of unit service on the platform which will in turn attract more users and hence more service demand. More service demand leads to more revenue for miners and further reduces the cost of service provided. The presence of this positive feedback loop within the system has resulted in a rightward shift in the distribution of aggregated growth in Q when the block reward schedule is a step decay, as evident in Figs. 6 and 7.

Fig. 6
figure 6

Distribution of aggregated growth in Q over 100 Monte Carlo Runs under step decay block reward schedule

Fig. 7
figure 7

Distribution of aggregated growth in Q over 100 Monte Carlo Runs under smooth exponential decay block reward schedule

The model and simulation presented are no doubt imperfect but they provide a mathematical framework and an example simulation derived from tools and theories in stochastic dynamical systems. These tools and theories are powerful in understanding and designing complex token networks.

Conclusion and future considerations

This paper builds a bridge between dynamical systems theory and blockchain-enabled economic systems by proposing a state space representation of the economic system in terms of linear time-expanding system. This novel representation allows us to use a plethora of powerful tools developed in the context of control theory for the analysis and design of blockchain-enabled systems. A baseline simulation based on open-loop block reward was introduced to illustrate the power of combining our approach with computational methods. Given our general modeling framework, we can further explore Lyapunov-like functions, commonly used in control theory (Araujo and Moreira 2014; Lechevin and Rabbath 2004), to provide greater guarantee on network economic robustness and security (Smith 1984; Park et al. 2019). Systems should be input-output stable under an energy function, (Klages-Mundt and Minca 2019). Similar methods are used for robotic systems in Olfati-Saber and Murray (2002). Lastly, it will also be interesting to further this research through the lens of an agent (Monnot and Piliouras 2017). Given the states and dynamics of the system, we hope to understand and compute optimal strategies for a population of agents to maximize their gains given some constraints. Classic optimal control theory with discounted future utility (or some other notion of a terminating condition) will be applicable (Bertsekas 1995). From an economic research perspective, the approach presented has addressed the Lucas critique in macroeconomics (Lucas 1976) as it started from agent-level incentives, evolved into dynamics between states, actions, and mechanisms, and then derived global emergent properties from these underlying structures and functional relationships. More details on how the presented approach addresses the critique can be found in Zargham et al. (2020).

Appendix

Proofs

Proof of theorem 1

Proof

Since the genesis block contained an empty state, these requirements would make for a trivial trajectory. Hence, a driving function M(k)=μkv(k) was introduced in (13) and reproduced here:

$$ x(k+1) = A_{k} x(k) + B_{k} u(k) + \mu_{k} v(k). $$
(28)

The function \(M(k)\in \mathbb {R}^{n_{k+1}} \) is decomposed into a scheduled positive scalar reward \(\mu _{k} \in \mathbb {R}_{+}\) and a stochastic vector \(v(k)\in \mathbb {R}^{n_{k+1}}_{+}\) such that \(\sum _{i} v_{i}(k)=1\). The vector v(k) denotes the distribution of the mining rewards across all accounts including potential allocation to new accounts or may be distributed by any arbitrary rules across an arbitrary subset of accounts, such as a mining pool. Another key property of the Bitcoin is again recovered from our state space model. Define a scalar subspace of the state

$$ y(k) = \mathbf{1}'x(k) =\sum_{i} x_{i}(k). $$
(29)

We want to prove that the following equation holds true

$$ y(K) = \sum_{k=1}^{K} \mu_{k}. $$
(30)

To prove that, we first rearrange (13) to the following,

$$ x(k)-A_{k-1}x(k-1) = B_{k-1} u(k-1) + \mu_{k-1} v(k-1) $$
(31)

and construct the state by summing the history of changes

$$ \begin{aligned} x(K) = & A_{K-1}\cdots A_{0} x(0)\\ &+ \sum_{k=1}^{K-1}\Pi_{i=k}^{K-1}A_{i} \left(x(k)-A_{k-1}x(k-1)\right) \end{aligned} $$
(32)

becomes

$$ \begin{aligned} x(K) = & A_{K-1}\cdots A_{0} x(0)\\ & + \sum_{k=1}^{K-1}\Pi_{i=k}^{K-1}A_{i}\left(B_{k-1} u(k-1) + \mu_{k-1} v(k-1)\right). \end{aligned} $$
(33)

When this expression is used to compute

$$ \begin{aligned} y(k) = &\mathbf{1}' x(K) \\ =& \mathbf{1}'A_{K-1}\cdots A_{0} x(0)\\ &+ \sum_{k=1}^{K-1} \mathbf{1}'\Pi_{i=k}^{K-1}A_{i} \left(B_{k-1} u(k-1) + \mu_{k-1} v(k-1)\right). \end{aligned} $$
(34)

Since x(0)=0, it follows that

$$ y(K) = \sum_{k=1} \mu_{k} $$
(35)

when one recalls that Ak is an augmented identity matrix, that 1′v(k)=1 observes that Bk is an incidence matrix: 1′Bu=0 for all u.

In the case of Bitcoin the mining rewards are on a convergent schedule ensuring the maximum total supply

$$ y_{\infty} = {\lim}_{k\rightarrow \infty} y(k) = \sum_{k=1}^{\infty} \mu_{k} $$
(36)

converges to the desired quantity. â–¡

Availability of data and materials

Simulation engine: https://github.com/BlockScience/cadCAD. Simulation result: https://github.com/zixuanzh/ans.

References

Download references

Acknowledgements

This work would not be possible without the BlockScience team developing and open-sourcing cadCAD simulation engine.

Funding

BlockScience Academic Research Program.

Author information

Authors and Affiliations

Authors

Contributions

MZ developed the mathematical framework and advised ZZ on the model design. ZZ carried out the simulations, analyzed the data, and wrote the manuscript with input from MZ and VP. VP provided network science domain expertise and helped supervise the project. All authors read and approved the final manuscript.

Corresponding author

Correspondence to Zixuan Zhang.

Ethics declarations

Competing interests

The authors declare that they have no competing interests.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Zhang, Z., Zargham, M. & Preciado, V.M. On modeling blockchain-enabled economic networks as stochastic dynamical systems. Appl Netw Sci 5, 19 (2020). https://doi.org/10.1007/s41109-020-0254-9

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s41109-020-0254-9

Keywords