Keywords

1 Introduction

In distributed transaction ledgers such as Bitcoin [26] and Ethereum [8], transactions proposed by users are verified in a decentralized way and appended into a public ledger in an unalterable order. To this end, a set of network participants called miners are responsible for the process of including and finalizing transactions by running the consensus protocol. The liveness property of a consensus protocol guarantees that a correctly generated transaction that is provided as input to all the miners will eventually appear on the ledger. It has been formally shown that this guarantee is achieved under the assumption of honest majority (or supermajority) of miners [3, 16, 25]. Therefore, it is commonly assumed that honest miners input all the transactions to the consensus protocol in the exact same order they were received. In practice, transaction ledger protocols usually establish incentive mechanisms (e.g., in the form of transaction fees) to justify this fundamental assumption. A transaction ledger protocol therefore aims to achieve self-enforced honest behavior by incentivizing parties to behave honestly and penalizing deviation of the desired protocol behavior [4, 21]. These mechanisms yield profit for miners, e.g. for honestly including and appending transactions into blocks. Nevertheless, when analyzing the incentive compatibleness of honest behavior, the approach usually taken [2] is based on the assumption that miners do not have any rational interest in the actual content of the transactions they include. As it turns out, this assumption cannot be guaranteed in practice. In fact, there are many works that show that rational miners indeed profit from altering the order or even ignoring certain transactions entirely [10, 15, 30, 31]. While forking on the underlying ledger to revert transactions could theoretically lead to the same results, it requires at least 1/3rd or the majority of the resources of the network (i.e., computation or stake) to be executed [7, 22, 24]. Additionally, such an attack could lead to unforeseeable dynamics that might be undesirable for rational adversaries [2, 7]. Moreover, reordering, delaying or suppressing single transactions during the inclusion in the block is a much more subtle deviation from the honest behavior compared to forking, and more importantly can be accomplished by any individual miner. Therefore, this type of behavior might be considered as a viable and practical strategy by rational miners [10, 27].

Daian et al. [10] generalizes this concept of content-depending utilities as miner extractable value (MEV). MEV is a metric representing all kinds of opportunities a rational miner can generate utility permissionlessly from e.g., re-ordering, delaying or censoring of transactions depending on the transaction’s content. [10] shows that MEV is not just a theoretical concept, but rather a real-world phenomenum that is already occurring at scale in today’s DeFiFootnote 1 space, e.g. in the form of transaction front-running, reaching its current spike with roughly 25000 ETH (4.1 million USD) available for arbitrage dailyFootnote 2. Overall, the actual content preference of rational miners depends on on-chain dynamics within the transaction ledger protocol, such as arbitrage opportunities, front running and censorship, but also on utility sources outside the ledger. This might include cross-chain dynamics where miners can generate profit on other chains by taking rational actions on their chain [24], but also off-chain dynamics where the profit for taking rational actions is generated entirely off-chain [7]. Therefore, the actual individual utility a rational miner can generate for taking actions against candidate transactions is unknown to the public and the protocol designer.

Further, as illustrated by Daian et al. unclaimed MEV opportunities in a branch of the blockchain can incentivize miners to support that branch and abandon the longest chain, thus “rolling back” blocks and creating potential forks. This harms the network and even poses a fundamental threat to the security of the underlying consensus protocol.

To summarize, the inherent issue is that miners can use their a-priori knowledge of the transaction content to alter the set of transactions they are supposed to include. This information asymmetry provides miners with an advantage by taking rational actions (e.g., altering order, delaying, suppressing) which may be rewarded disproportionately in comparison to honest behavior [10, 15]. Moreover, these rational actions are not a violation of the underlying transaction ledger protocol, and thus not captured by existing security definitions. The miners that are willing to take rational actions based on the transactions’ contents are referred to as dictatorial miners.

Due to space limitations the related work section is presented in Appendix A.

1.1 Contributions

In this work we analyze the liveness and transaction order guarantee that can be achieved against dictatorial miners. In this vein, we follow the Bitcoin backbone model of Garay, Kiayias and Leonardos [16] with the twist that instead of honest miners we assume a set of dictatorial miners with hiddenFootnote 3 preferences over the contents of transactions. The dictatorial miners participate honestly in the consensus protocol but may choose to take rational actions that do not violate the properties of the ledger protocol, e.g. re-order, delay or suppress a particular set of transactions. In addition, dictatorial miners are allowed to collude with each other if it is (individually) more profitable. Our contributions can be summarized as follows:

  • We introduce a new property for transaction ledger protocols that we call content preference robustness (CPR), which yields robustness against dictatorial miners. A CPR-ledger provides the following guarantees:

    • Rational liveness: It provides essentially the same guarantees as the original liveness definition [16], but against dictatorial miners. To achieve this we show that no dictatorial miner can increase its profit by selectively suppressing transactions if (1) dictatorial miners gain no a-priori knowledge of the transactions contents, (2) withholding transactions is punishable by the ledger and (3) dictatorial miners expect to not lose utility (on average) by honestly participating in the transaction ledger protocol.

    • Rational transaction order preservation: It ensures that no dictatorial miner can improve its expected utility by altering the order of received transactions. We show that rational transaction order preservation can be achieved under essentially the same conditions as rational liveness.

  • We present a generic compiler based on time-lock puzzles that compiles any robust transaction ledger protocol (according to [16]) into a transaction ledger protocol that is CPR. On a technical level, the compiled protocol maintains two (logically) separate chains; the “control chain” that contains only time-lock puzzles of the transactions, and the “sanitized chain” that contains the actual contents of the transactions from (the common prefix of) the control chain. The intuition is that the control chain provides a global ordering of the transactions for all miners, and once that ordering is fixed, the sanitized chain can be built with the actual contents of all valid transactions from the control chain. Finally, we show that the compiled protocol is CPR.

2 Transaction Ledger Model

In this work we extend the transaction ledger model of Garay et al. [16] to the setting where dictatorial miners may use their a-priori knowledge of the transaction content in order to generate MEV. To this end, we first state the fundamentals of the transaction ledger model by Garay et al. [16] and then continue to explain how we adapt their model.

2.1 Ledger Backbone Model

According to Garay et al. [16] a transaction ledger is represented as a vector of blocks \(l=(\mathcal {B}_1,...,\mathcal {B}_d)\), where each block \(\mathcal {B}_i=(tx_1,...,tx_n)\) is a vector of transactions \(tx\in \mathcal {T}\). \(\mathcal {T}\) denotes the set of valid transactions. Appending a transaction \(tx\) to a vector \(l\) is denoted by \(l||tx\). Also, appending a vector of transactions \(\mathcal {B}\) to another vector \(l\) is denoted as \(l||\mathcal {B}\). \(tx_{i,j}\) denotes transaction \(tx_j\) in block \(\mathcal {B}_i\). As a ledger is a vector of transactions, we simply denote it as \(l=(tx_1,...,tx_m)\) omitting the block numbers when clear from the context.

The transaction ledger protocol is executed by a set of miners \(\mathcal {M} \) in the presence of a PPT adversary \(\mathcal {S}\), and driven by a PPT environment \(\mathcal {Z} \). Each honest miner \(M _i\) maintains its own local copy of the chain \(l_i\). Further, an honest miner \(M _i\) process a local buffer \(\textsf{X}_i := (tx_1,\dots ,tx_e)\), that are candidate transactions to be incorporated into the ledger \(l_i\) provided by the environment \(\mathcal {Z} \).Footnote 4 In [16], a transaction ledger protocol is defined by the transaction generation oracle \(\textsf{TxGen}\) that issues transactions on behalf of the users and the set of valid ledgers \(\mathcal {L}\). Upon receiving a message \((\textsf{IssueTx}, \gamma ,P)\), \(\textsf{TxGen}\) generates a unique transaction \(tx[\gamma ]\in \mathcal {T}\) on behalf of \(P \), where \(tx[\gamma ]\) denotes a transaction \(tx\) that contains an encoding of content \(\gamma \). Further, a ledger is defined by the three interface functions \(\textsf{V}(\cdot ), \textsf{I}(\cdot ), \textsf{R}(\cdot )\). Where \(\textsf{V}(\cdot )\) is the chain validity function, \(I(\cdot )\) is the input contribution function that is executed to provide new blocks, and \(\textsf{R}(\cdot )\) is the chain reading function that returns a semantic interpretation of the ledger.

Moreover, a transaction ledger protocol is called robust if it provides persistence and liveness. Persistence means that a transaction that appears’deep enough’ into the chain will appear at the same position for all honest miners. On the other hand, liveness means that if a transaction is input to the honest miners for at least \(v\) rounds it will appear k blocks deep into the chain of those miners.

In our work we assume the existence of a robust transactions ledger protocol \(\varPi =(\textsf{I},\textsf{V},\textsf{R},\textsf{TxGen},\mathcal {L})\) for some liveness parameter \(v\). For more details on the ledger backbone protocol protocol we refer the reader to the Appendix B.

2.2 Dictatorial Miners

In our model, the transaction ledger protocol is executed by miners in the presence of a PPT adversary \(\mathcal {S}\), and driven by a PPT environment \(\mathcal {Z} \). The adversary \(\mathcal {S}\) can fully corrupt a minority of the miners (as in [16]). In contrast to the model of [16], every miner that is not fully corrupt will automatically be dictatorial, leaving no honest miner in the protocol. The difference between an honest miner and a dictatorial miner is that a dictatorial miner has preferences over the content of transactions and might therefore re-order, delay, or suppress transactions it receives from the environment.

Formally, a dictatorial miner \(M _i\) receives, at the beginning of each round, in its transaction buffer \(\textsf{X}_i\) candidate transactions provided by the environment \(\mathcal {Z} \), just as honest miners would. However, \(M _i\) may execute the input contribution function \(\textsf{I}(\cdot )\) on a modified \(\textsf{X}'_i\) instead. At the beginning of each round \(M _i\) may choose \(\textsf{X}'_i\) depending on the received transaction buffer \(\textsf{X}_i\) and the current ledger \(l\). For every transaction \(tx\in \textsf{X}_i\), \(M _i\) decides whether to include \(tx\) in \(\textsf{X}'_i\), to suppress it, or to delay it to a later round.

When deciding on how to treat a candidate transaction \(tx[\gamma ]\) a dictatorial miner is assumed to maximize its expected utility with respect to its private utility function \(u_{i}:l\times \varGamma \mapsto \mathbb {R}\). The utility function \(u_{i}(l,\gamma )\) computes the utility of \(M _i\) for including a transaction \(tx[\gamma ]\) into the ledger \(l\)Footnote 5. If a miner \(M _i\) includes a transaction \(tx\) without knowing its content the expected utility for including this transaction is denoted as \(u_i(l,tx)\). The miner’s expectation is taken over the distribution on the transaction’s contents supplied by the environment \(\mathcal {Z} \) which is assumed to be common prior for all minersFootnote 6.

We say that a miner prefers to include a transaction \(tx_0[\gamma _0]\) over transaction \(tx_1[\gamma _1]\) in some ledger \(l\) if \(u_i(l,\gamma _0) > u_i(l,\gamma _1)\). The preference is denoted as \(tx_0[\gamma _0]\succ tx_1[\gamma _1]\) if the ledger \(l\) is evident from the content. A miner is indifferent between \(tx_0[\gamma _0]\) and \(tx_1[\gamma _1]\), denoted as \(tx_0[\gamma _0]\sim tx_1[\gamma _1]\), if \(u_i(l,\gamma _0) = u_i(l,\gamma _1)\). Appending a new transaction results in a new ledger, therefore the utility for appending \(tx_0[\gamma _0]\) and then appending \(tx_1[\gamma _1]\) is \(u_i(l,\gamma _0)+u_i(l||\gamma _0,\gamma _1)\). Finally, we denote an empty content of a transaction as \(\bot \). The expected utility for including an empty or neutral content \(\bot \) is assumed to be \(u_i(l,\bot )=0\), since including an empty transaction results semantically in the same ledger.Footnote 7

Miner’s Coalition. Dictatorial miners may collude with each other if forming a coalition yields a higher individual utility. In fact, [10] shows that even if miners have concurrent preferences, e.g., they are concurring for the same MEV opportunity, collaborative behavior is not just stable but in fact yields a higher individual utility. Therefore, it is assumed (and observed in practice) that dictatorial miners will eventually collude if it is individually more profitable [10]. Our model allows dictatorial miners to coordinate their actions against single transactions, thus whenever there exists an individually profitable coalition of dictatorial miners, one could see it as a single entity.Footnote 8 Note that this may include the grand coalition of all miners.

Forking. We stress, that dictatorial miners execute the same input contribution function as honest miners (with potentially different inputs), thus only creating valid blocks and extending the current chain. While a sufficiently large coalition of malicious miners could fork the the longest chain, the simple reorder, delay or suppression of transactions that can be performed by dictatorial miners is a much more subtle deviation from the honest behavior compared, thus allowing for a positive result even against a coalition of all dictatorial miners.

3 Content Preference Robustness

In this section we formalize the concept of content preference robustness, that yields liveness and transaction order guarantee against dictatorial miners. To this end, we define the properties rational liveness and rational transaction ordering. Further, we explain the rational of restricting dictatorial miners beliefs in order to exclude trivial cases from our model.

3.1 Rational Liveness

Rational liveness says that a transaction that is input to all dictatorial miners will eventually appear in the ledger. Consider a transaction ledger protocol \(\varPi =(\textsf{I},\textsf{V},\textsf{R},\textsf{TxGen},\mathcal {L})\). Rational liveness is defined as:

Definition 1

(Rational liveness). If a transaction \(tx[\gamma ]\in \mathcal {T}\) issued by \(\textsf{TxGen}\) is input for all dictatorial miners for at least \(v\) consecutive rounds, then all dictatorial miners will report this transaction at least k blocks deep into the ledger, for some \(k,v\in \mathbb {N}\).

Intuitively, rational liveness provides the same guarantees as the liveness definition of [16], but extended to dictatorial miners. In order to show that a robust transaction ledger protocol \(\varPi \) achieves this property one has to show that it is in the dictatorial miners best interest to behave as an honest miner, such that the transactions provided by the environment are forwarded unchanged to the input contribution function.

3.2 Rational Transaction Ordering

The original model of [16] does not formalize the concept of transaction ordering. However, as practically demonstrated by [10] dictatorial miners can extract significant utility by rearranging transactions in different ways. Therefore, transaction ordering is of major relevance when considering dictatorial behavior of the miners. To this end we define rational transaction ordering preservation as follows:

Definition 2

(Rational transaction ordering). A transaction ledger protocol \(\varPi =(\textsf{I},\textsf{V},\textsf{R},\textsf{TxGen},\mathcal {L})\) preserves rational transaction ordering if for all pairs of transactions \((tx_0,tx_1)\) issued by \(\textsf{TxGen}\), for all ledgers \(l\in \mathcal {L}\) and for all miners \(M _i\in \mathcal {M} \), we have that \(u_i(l||tx_0,tx_1)=u_i(l||tx_1,tx_0)\).

Intuitively, rational transaction order preservation means that a dictatorial miner receives the same expected utility for including transaction \(tx_0\) before transaction \(tx_1\) into a ledger \(l\) for all pairs \((tx_0,tx_1)\) and all ledgers \(l\in \mathcal {L}\). In particular this means that a dictatorial miner does not improve its expected utility by altering the order of transactions received by the environment, and hence has no incentive to do so.

3.3 Restrictions on the Environment

Since we allow the miner’s utility function to depend on off-chain dynamics, it is possible that the utility of a miner is always negative. Thus, this miner would do strictly better by always suppressing all transactions, independently of their content (or the current ledger). This might be induced, e.g., by some utility source that offers a large compensation for mining empty blocks. Since this kind of utility source would make the rational decision independently of the transaction’s contents or the ledger state, we explicitly exclude them from our model.

For this, we limit the expectations of the miners about the environment \(\mathcal {Z} \) such that all transactions sent to the miners are expected to yield at least a positive utility, as otherwise the miners are not incentivized to include transactions.

Definition 3

(Expected incentive compatible environment). An environment \(\mathcal {Z} \) providing transactions to a set of miners \(\mathcal {M} \) executing the ledger protocol \(\varPi \) is expected incentive compatible if for all miners \(M _i \in \mathcal {M} \), for all ledgers \(l\in \mathcal {L}\), and for all \(tx\in \mathcal {T}\) we have that \(u_i(l,tx)>0\).

Note, that this does not restrict the environment itself but rather the believe of the dictatorial miners about the environment. Intuitively, this means that the miners expect the environment to provide transactions that yield a positive utility on average, where the expectation is taken over the distribution of transaction contents the environment provides. This assumption is essential to ensure that dictatorial miners will eventually improve their expected utility by including transactions. Note that miners expecting to lose utility for including transactions provided by the environment would trivially not include it. In practice, this is usually accomplished by transaction fee mechanisms.Footnote 9 Note however that this assumption does not trivialise the problem, as even with an expected incentive compatible environment, dictatorial miners could still increase their profits by, e.g., suppressing or reordering selected transactions from the ledger.

Content Preference Robustness. Putting all together, we now define the notion of content preference robustness (CPR) for a transaction ledger protocol executed in the presence of dictatorial miners.

Definition 4

(content preference robustness). A transaction ledger protocol \(\varPi =(\textsf{I},\textsf{V},\textsf{R},\textsf{TxGen},\mathcal {L})\) executed by a set of dictatorial miners \(\mathcal {M} \) driven by some expected incentive compatible environment \(\mathcal {Z} \) in presence of a PPT adversary \(\mathcal {S}\) is called CPR if \(\varPi \) achieves rational liveness and rational transaction ordering.

4 Compiling a Robust Ledger into a CPR Ledger

In this section we show how to get content preference robustness for a transaction ledger protocol. In particular, we show how to generically compile a robust transaction ledger protocol into a CPR transaction ledger protocol.

4.1 CPR Compiler

A CPR compiler for a robust transaction ledger protocol \(\varPi \) is defined as follows.

Definition 5

(CPR Compiler).  Let \(\varPi = (\textsf{I},\textsf{V},\textsf{R},\textsf{TxGen},\mathcal {L})\) be a robust transaction ledger protocol. A CPR compiler \(\varPhi \) is a PPT algorithm \(\varPi ' \leftarrow \varPhi (\varPi )\) such that \(\varPi ' = (\textsf{I}',\textsf{V}',\textsf{R}',\textsf{TxGen}',\mathcal {L}')\) achieves CPR.

In the following we provide an overview of our CPR compiler, followed by a detailed description of how our CPR-compiler \(\varPhi \) transforms each component of a robust transaction ledger protocol \(\varPi \) to build the CPR ledger protocol \(\varPi '\).

4.2 Compiler Overview

The CPR compiler modifies the transaction generation oracle \(\textsf{TxGen}\) into a “time-lock transaction generation oracle”, that issues transactions inside time-lock puzzles [5, 28] that can be opened after some specified time has passed. The idea is to let the miners commit to a set and order of time-locked transactions before their content gets revealed. This forces the miners to make decisions about incoming transactions before knowing the actual content of the transactions. However, the miners might try to delay transactions until their content gets revealed before making their final decision. Therefore, the protocol \(\varPi '\) has to ensure that delaying transactions is not expected to br profitable for the miners.

Fig. 1.
figure 1

High-level architecture of a CPR ledger with liveness parameter \(v= 2\) .

The compiled transaction ledger protocol \(\varPi '\) maintains two separate chains; the “control” chain \(l'_c\) that contains a ledger consisting of time-locked transactions, and the “sanitized” chain \(l'_m\) that contains the actual contents of the transactions that are final in the control chain. The mining of new blocks follows the rules of the underlying robust ledger protocol \(\varPi \) (e.g., Proof-of-Work), and it occurs in the control chain first. To extend the ledger, miners first gather all the new (time-locked) transactions from their input buffer and build a block. The miner that wins the right to append a block to the control chain is also responsible for extending the sanitized chain by providing solutions to the time-lock puzzles that are in the common-prefix of the control chain.

To illustrate with a concrete example, consider a robust ledger protocol with liveness parameter \(v\) of 2 rounds, i.e., after 2 rounds a transaction is considered final in the ledger, e.g. being \(k=2\) blocks deep into the chain. Assume a time-lock puzzle instantiation that can only be opened 2 rounds after its creation. Hence, for the first 2 rounds of the protocol only the control chain will be extended, as no solution to puzzles is yet available. At round 3 the miner that creates the new block on the control chain must also create a new block on the sanitized chain by providing solutions to all the puzzles that are included in the block created at round 1 in the control chain; the solution to the puzzles are in fact the contents of the transactions. From round 3 onwards, every new round will extend both chains, and the sanitized chain at round r will contain the contents of the transactions included at round \(r-2\) in the control chain. As all transactions that are at least 2 blocks deep in the ledger are final, then the blocks in the sanitized chain only includes contents that are already final.The structure of the build ledger is illustrated in Fig. 1.

Note that the control chain is the only chain that needs consensus, as the state of the sanitized chain can be deterministically retrieved from the control chain. However, miners can still freely choose the time-locked transactions to be included in the control chain, and therefore try to delay a time-locked transaction until learning its content before deciding to either include it or suppress it. To this end, our construction implements a mechanism that invalidates transactions that are “too old”. Thus, dictatorial miners face the dilemma of either including a time-locked transaction without knowing its content, or delaying it, which leads to the invalidation of the transaction and loss of utility. To solve the dilemma, rational miners must rely on their expectation on the transactions’ content.

4.3 Time-Lock Transaction Generation Oracle

Here we describe how our CPR compiler \(\varPhi \) builds the time-lock transaction generation oracle \(\textsf{TxGen}'\) for the compiled protocol \(\varPi '\). A natural way to model a time-lock transaction generation oracle \(\textsf{TxGen}'\) is by describing it as a functionality. The functionality we need from such an oracle is that transactions can be created on behalf of users and the miners are merely notified that a transaction has been created. Moreover, published transactions should be associated with a fresh ledger account. The content corresponding to the transaction can only be retrieved after some predetermined number of rounds.

More formally, the \(\mathcal {F}_{\mathsf {tl\text {-}TxGen}}\) functionality encapsulates the content \(\gamma \) of a transaction into a randomly generated transaction tag \(\tilde{tx}\) that is delivered to every miner. A miner can learn the content associated with a transaction tag at least \(\delta \) rounds after the transaction has been issued by sending at least \(\delta \) solve requests for the same transaction tag to \(\mathcal {F}_{\mathsf {tl\text {-}TxGen}}\). Once, the correct amount of requests is issued the functionality returns the associated solution tag \(\textsf{sid}\). Further, the functionality allows to verify if a content belongs to a transaction tag by returning the corresponding content. To this end, on receiving a solution tag \(\textsf{sid}\) at any time the functionality \(\mathcal {F}_{\mathsf {tl\text {-}TxGen}}\) returns the associated content \(\gamma \). By separating, solving the puzzle from revealing the message it is ensured that a message can be revealed at any time if \(\textsf{sid}\) is known, even without solving the puzzle. Note that in our functionality, the issuing round of a transaction as well as a fresh ledger account are also associated with the transaction tag.

Practically, this means that users sign the time-locked transaction using a freshly generated ledger account and include a time stamp of the creation time, which relates to the current round.Footnote 10 The first can be used for practical reasons to deter malicious users from flooding the ledger with time-locked transactions, as we will discuss later on in Sect. 5. The latter is used by the protocol to determine whether a transaction is “too old”. The \(\mathcal {F}_{\mathsf {tl\text {-}TxGen}}\) functionality is described next.

figure a

Note that we intentionally separate the set of users (that only post transactions) and miners (that process the transactions) in the \(\mathcal {F}_{\mathsf {tl\text {-}TxGen}}\) functionality. This is to better illustrate that our results only concern the case where miners do not send transactions. It is easy to see that whenever a miner itself generates transactions it is not possible to prevent this miner from learning the content of its own transaction. Therefore, we restrict the functionality to only accept \(\texttt {IssueTx}\) commands from users.

In order to instantiate the transaction generation oracle \(\textsf{TxGen}'\) of the compiled protocol \(\varPi '\) the functionality \(\mathcal {F}_{\mathsf {tl\text {-}TxGen}}\) should be parameterized with a delay parameter \(\delta =v\), where \(v\) is the liveness parameter of \(\varPi \). Further, the content space \(\varGamma '\) for the protocol \(\varPi '\) corresponds to the transaction space \(\mathcal {T}\) in the support of the transaction generation oracle \(\textsf{TxGen}\) of the underlying transaction ledger protocol \(\varPi \). Intuitively, this means that the environment \(\mathcal {Z} \) samples transactions in the support of \(\textsf{TxGen}\) that are provided as content to \(\mathcal {F}_{\mathsf {tl\text {-}TxGen}}\) when issuing a transaction.Footnote 11

Realizing the \(\mathcal {F}_{\mathsf {tl\text {-}TxGen}}\) Functionality. Our \(\mathcal {F}_{\mathsf {tl\text {-}TxGen}}\) functionality is a simplified version of the time-lock puzzle functionality of [5, Fig. 3], where we simply cast it as a transaction generation oracle. In particular, the original functionality samples a consecutive sequence of puzzle states, while sending a solve request returns the next state in the sequence. For the sake of simplicity of our functionality we omit the intermediary states. Instead in our functionality a puzzle tag is queried multiple times to solve the puzzle until the functionality returns a solution tag. This solution tag corresponds to the last puzzle state from the original functionality and can be used to reveal the massage at any time as in [5]. Note, that this simplification does not interfere with the security since no additional information is leaked. Additionally, our functionality samples a new account that is associated with the transaction tag. Since this tag is sampled uniformly at random it does not leak any information about the content or solution tag associated with the transaction tag and therefore does not have any impact on the security.

In [5], it was shown that (a version of) the well known time-lock puzzle construction by Rivest, Shamir and Wagner [28] realizes the time-lock puzzle functionality of [5] in the Universal Composition (UC) model [9]. The time-lock puzzle construction of [28] is based on the assumption that it is hard to compute repeated squarings of an element of \((\mathbb {Z}/N\mathbb {Z})^\times \) with large N in less time than it would take to compute each of the squarings sequentially, unless the factorization of N is known. Therefore, in order to solve a time lock puzzle a miner has to perform a predefined amount sequential squarings.

Hence, by the composition property of the UC framework, we can simply use the time-lock puzzle protocol of [5] as a plug-in replacement for our functionality.

4.4 Chain Validity Function

A ledger \(l'\) of the compiled transaction ledger protocol \(\varPi '\) consists of the control chain \(l'_c\) and the sanitized chain \(l'_m\). The control chain is a ledger of tuples \(tx'=(\textsf{txid}, \tilde{tx},A)\) providing time-locked transaction tags \(\tilde{tx}\) from the tag space \(\tilde{\mathcal {T}}\), an associated ledger account \(A\) from the the ledger account space \(\mathcal {A}\), and unique transaction identifiers \(\textsf{txid}\). The sanitized chain \(l'_m\) is a ledger of transaction contents containing tuples of the form \(\gamma '=(\textsf{sid}, \gamma ,r,P)\). A transaction ledger \(l'\) consists of blocks \((\mathcal {B}^{r_1}_1,...,\mathcal {B}^{r_n}_n)\) where for each block \(\mathcal {B}^{r_i}_i\), \(r_i\) denotes the round the block is created in. Each block extends the control chain \(l'_c\) and the sanitized chain \(l'_m\). Therefore, each block is a tuple \(\mathcal {B}^{r_i}_i=(\mathcal {B}^{r_i}_{c,i},\mathcal {B}^{r_i}_{c,i})\), with \(\mathcal {B}^{r_i}_{c,i}=(tx'_{i,1},...,tx'_{i,y})\) and \(\mathcal {B}^{r_i}_{c,i}=(\gamma '_{i,1},...,\gamma '_{i,q})\). For simplicity we denote \(l'=(l'_c,l'_m)=((tx'_1,...,tx'_p),(\gamma '_1,...,\gamma '_q))\) when referring to the concatenation of all blocks. A ledger \(l'\) is in the set of valid ledgers \(\mathcal {L}'\) if the chain validation function \(\textsf{V}'\) returns true on \(l'\). Intuitively, \(\textsf{V}'(\cdot )\) checks for every content in the sanitized chain if it corresponds to the transaction tag at the same position in the control chain. The formal algorithm for checking if a ledger \(l'\) is a valid ledger for the transaction ledger protocol \(\varPi '\) is provided in Algorithm 1.

figure b

4.5 Input Contribution Function

The input contribution function \(\textsf{I}'(\cdot )\) is executed in order to generate an updated ledger. It receives as input a current transaction ledger \(l'=(l'_c,l'_m)=((tx'_1,...,tx'_p),(\gamma '_1,...,\gamma '_q))\), a buffer of not included transactions \(\textsf{X}\). Further, \(\textsf{I}'(\cdot )\) is stateful by maintaining a buffer of time-lock puzzle solutions \(\textsf{C}\). Intuitively, \(\textsf{I}(\cdot )\) starts with solving all transaction tags from the control chain that are not solved yet. All found solutions are stored in the solution buffer. Then, in order to extend the ledger \(l'\) the function \(\textsf{I}'(\cdot )\) extends the sanitized chain with the contents of transaction tags from the block that is k blocks deep into the control chain. Further, \(\textsf{I}'(\cdot )\) extends the control chain by selecting a set of new time-lock transaction tags from \(\textsf{X}\). Finally, \(\textsf{I}'(\cdot )\) includes for all selected time-locked transactions the current round number.Footnote 12 The formal algorithm is shown in Algorithm 2.

figure c

Remark. One could also separate the tasks of solving time-lock puzzles and extending the chain into different functions. However, since extending the ledger depends on solving the puzzles we simply incorporate solving the puzzles into \(\textsf{I}(\cdot )\). By doing so, we additionally stick closer to the model of [16].

4.6 Chain Reading Function

The chain reading function \(\textsf{R}'(\cdot )\) returns a semantic interpretation of a ledger \(l'\in \mathcal {L}'\). It receives as input a transaction ledger \(l'\) and internally calls the chain validation function \(\textsf{V}(\cdot )\) and chain reading function \(\textsf{R}(\cdot )\) of the underlying transaction ledger protocol \(\varPi \). The intuition is that the revealed contents in the sanitized chain contain transactions in the support of \(\textsf{TxGen}\) from the protocol \(\varPi \). Therefore, \(\textsf{R}'(\cdot )\) can determine the longest chain that is a valid ledger with respect to \(\textsf{V}(\cdot )\). This longest chain can then be interpreted by \(\textsf{R}(\cdot )\). Additionally, \(\textsf{R}'(\cdot )\) checks for every transaction content in the sanitized chain if the corresponding time-locked transaction tag was included “too late” in the control chain by comparing the revealed round number of the transaction tag generation with the round number of the block that included the transaction tag. If the difference between block creation round and transaction creation round is more than the liveness parameter \(v\) the content gets ignored. The function \(\textsf{R}'(\cdot )\) ensures that transaction contents that are considered as “too old” are not interpreted by \(\textsf{R}(\cdot )\) and are therefore not considered for the semantic interpretation of the ledger \(l'\). The algorithm for \(\textsf{R}'\) is shown in Algorithm 3.

figure d

4.7 Security Analysis

Now we state our main theorem and show that the compiled transaction ledger protocol \(\varPi '\) compiled by our CPR-compiler \(\varPhi \) is indeed CPR if the underlying protocol \(\varPi \) is robust.

Theorem 1

Let \(\varPi \) be a robust transaction ledger protocol. Then, for all expected incentive compatible environments \(\mathcal {Z} \), the compiled transaction ledger protocol \(\varPi '\leftarrow \varPhi (\varPi )\) achieves CPR.

The intuition of the proof is to show that dictatorial miners maximize their utility by behaving honestly in all expected incentive compatible environments. If all dictatorial miners behave as honest miners we can conclude that \(\varPi '\) is CPR. The intention is that no single miner nor coalition of miners is able to gain any a-priori knowledge of the transaction content by the time they can decide about including the transactions. Additionally, the construction deincentivizes delaying transactions until the miners can learn the content, due to the invalidation of ’too old’ transactions. Therefore, dictatorial miners fear of missing out on the transactions and the associated expected profit if they try to learn the content first. The full analysis is deferred to Appendix C.

5 Discussions

In this section we discuss several aspects of our results.

Coercion Resistance in CPR Transaction Ledger Protocols. As shown in our analysis, rational liveness can be achieved if the dictatorial miners gain no a-priori information about the content of candidate transactions. However, miners may try to coerce users in order to make them reveal the content of their transactions a-priori. By doing so, the miners would again be able to enforce their preferences on the transactions. While coercion resistance is to the best of our knowledge a new issue in transaction ledger protocols, it is quite well known in voting protocols [11, 18]. However, the techniques from the voting literature does not seem to apply in our setting. The inability of a user to prove the content of its transaction to a miner would not solve the problem of coercion. Recall that all transactions are eventually opened in the sanitized chain. Thus, a miner could simply establish a contract where a user commits to the content that it discloses before hand, and gets punished if the time-locked transaction opens to something else later on. This coercion attack is possible in this context since in transaction ledger protocol it is very unlikely that another user sends a transaction with the same content. In voting on the other hand it is very much possible that there is another ballot with the same vote. We believe that coercion-resistance in the setting of transaction ledger protocols is an interesting open problem left for future work.

Performance Considerations. In our compiler, every transaction is included as a time-lock puzzle in the control chain, while the solution must be provided later in the sanitized chain, once the puzzle is deep enough in the control chain. This requires miners to solve time-lock puzzles for every transaction. While this additional computational effort burdens the miners, we note that the computational cost per transaction is constant (unlike, e.g. PoW). Nevertheless, it is possible to improve the efficiency significantly in practice. For example, one could allow the issuer of the transaction to reveal the puzzle solution once the puzzle is deep enough in the control chain, such that the miners only have to solve the puzzles for non responsive users. Alternatively, recent advancements in time-lock puzzles yield promising results. In particular, Abadi and Kiayias [1] recently proposed a construction for “chained time-lock puzzles” that allows to compose multiple puzzles into a single one, hence dramatically reducing the computational effort of solving multiple the puzzles.

Invalid and Conflicting Transactions. Naturally, it is hard to decide if a time-lock puzzle contains a transaction that does not contradict any other transaction already in the chain. However, we stress that this is not an issue for the safety and correctness of the ledger since it is still possible to deterministically consider only valid transactions in the sanitized chain. Nevertheless, the inclusion of inconsistent transactions in the control chain might be undesirable in practice. Therefore, flooding the ledger with time-lock puzzles of invalid transactions should be deincentivized. Flooding attacks are usually deincentivized by a fee paid by the sender of a transaction [8, 26]. To this end, in our construction, a time-locked transaction is associated with a ledger account. This associated ledger account can be charged fees for including the time-locked transaction in the control chain, independently of the content hidden inside the time-lock puzzle. Note, that this fee does not necessarily replace any fees for executing the transactions’ contents hidden inside the time-lock puzzle. This assumes that users have access to unlinkable ledger accounts, such that the associate ledger account does not reveal any information about the content hidden inside the time-lock puzzle. This can usually be achieved using anonymization and mixing techniques [6, 29]. However, as in Garay et al. [16], the design of a concrete fee mechanism is outside the scope of this work.

Targeted Censorship. We stress that in this work we are not concerned with censorship targeted at individuals, but we only consider preferences over the contents of the transactions. We note that the full anonymization of transactions requires not only protocol level anonymization but also network level anonymization, what is known to be a hard problem in practice. Dictatorial miners, might be able to gain some information about the transaction content form the network layer of the protocol, for example learning the sender node of a transaction in the underlying network. However, to protect against some level of censorship against individuals, one can still run the CPR protocol over TOR [13].

Alternative Approaches. A different approach to achieve CPR could be by leveraging threshold cryptography or multi-party computation [25]. However, even if threshold cryptography is clearly capable of preventing an unqualified set of miners from taking rational actions, it also inherently defines a coalition of miners that can. As pointed out by Daian et al. [10], any coalition that yields higher utility should be expected to be formed eventually. Hence, we rely on time-lock puzzles which are inherently coalition resistant by design. Choosing time-lock parameters in a way that no miner can learn the content a-priori while on the same hand guaranteeing that every miner can be expected to provide the solutions is practically challenging. In particular, due to hardware differences, some miners may perform the required sequential computation faster than others. Also, aligning the delay parameter of the time-lock puzzle with the desired block creation time of the underlying transaction ledger protocol might be challenging, especially for probabilistic block creation times [8, 26]. Therefore, a practical instantiation should reflect this by considering a gap in which miners are expected to provide the solutions for time-lock puzzles. Another approach to the computational time-lock puzzle is proposed by Liu et al. [23]. They propose a construction of a “time-release encryption” relative to a reference clock using witness encryption. With their construction it is possible to encrypt a transaction such that its plaintext is released, e.g., at a predefined blockdepth of the ledger. While this solves the challenge of choosing time-lock puzzle parameters, the implementation of such scheme would be rather impractical, since the size of the witness used for decryption is approximately the size of the entire blockchain.

6 Conclusion

In this work we investigate the setting where “dictatorial miners” can use their a-priori knowledge of transactions’ content to alter the set and order of candidate transactions in their most favorable way to improve their utility. To this end, we introduce the model of dictatorial miners that may deviate from honest behavior by suppressing or reordering transactions selectively depending on their content. We incorporate dictatorial miners in the transaction ledger protocol modeled by Garay et al. [16] by replacing honest miners with dictatorial ones. In that vein, we show that a transaction ledger protocol can achieve content preference robustness by guaranteeing rational liveness and rational transaction order preservation. We show that this can be achieved if dictatorial miners cannot learn the contents of transactions before they are in the common-prefix of the chain. In particular, we provide a construction for a CPR compiler that can transform any generic robust transaction ledger protocol into a CPR ledger protocol by leveraging time-lock puzzles.