Next Article in Journal
Indirect Efficiency Measurement Method for Line-Start Permanent Magnet Synchronous Motors
Next Article in Special Issue
Securing IoT-Empowered Fog Computing Systems: Machine Learning Perspective
Previous Article in Journal
Scale and Background Aware Asymmetric Bilateral Network for Unconstrained Image Crowd Counting
Previous Article in Special Issue
R-LWE-Based Distributed Key Generation and Threshold Decryption
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

On the Security of the Dandelion Protocol

by
Brian Goncalves
*,† and
Atefeh Mashatan
Cybersecurity Research Lab, Ryerson University, Toronto, ON M5B 2K3, Canada
*
Author to whom correspondence should be addressed.
These authors contributed equally to this work.
Mathematics 2022, 10(7), 1054; https://doi.org/10.3390/math10071054
Submission received: 24 February 2022 / Revised: 22 March 2022 / Accepted: 22 March 2022 / Published: 25 March 2022
(This article belongs to the Special Issue Recent Advances in Security, Privacy, and Applied Cryptography)

Abstract

:
In this paper, we review the peer-to-peer blockchain transaction protocol, Dandelion, and develop an oracle-based model for its network and security. We formalize a series of security and functional criteria, such as unforgeability, non-repudiation, and immutability, into security experiments. In our model, we consider a quantum-capable adversary who seeks to undermine any of the security criteria while using oracles to simulate and interact with the Dandelion network. We then prove the security of Dandelion in our model with a series of (tight) security reductions as our main result. In addition, we prove that Dandelion is resistant to double-spending attacks.

1. Introduction

Since the release of the Bitcoin paper by Nakamoto [1], blockchain technology has experienced rapid growth in both academic and industry interest. Numerous protocols, such as Ethereum [2], Ripple [3], Phantom [4], HyperLedger [5], and Ouroboros Praos [6], have presented different approaches to the decentralized/distributed nature of blockchain technologies and digital currencies. These protocols present blockchain solutions with different modifications and restrictions on who may join the network, participate, or submit blocks.
While the above represents a small sample of the more famous protocols, the development and adoption is likely to continue to grow in the longer term due to the significant interest from industry. In their 2020 global blockchain survey, Deloitte polled nearly 1400 executives across 14 countries, and 53% responded that blockchain technology was listed among their top strategic priorities [7]. Moreover, nearly a third stated that their company was in development of a blockchain-related project, and 84% indicated that they already use blockchain technology to some extent. Lastly, in their survey, Deloitte estimated that global spending on blockchain solutions will exceed USD 11 billion. Furthermore, the application of blockchain has spread beyond just financial use as a result of extended research conducted on its application to electronic health records [8,9], supply chain management [10,11], and smart cities [12].
These figures and estimates demonstrate that blockchain technology will continue to expand and become increasingly prevalent globally. As such, there is, then, a matching need for these protocols to be provably secure and trustworthy in the long-term. This last criteria of long-term security and trustworthiness is especially vital with the advancements in quantum computers. The existence of Shor’s algorithm [13] and the Grover search [14] undermine the security of currently deployed cryptographic algorithms. Shor’s algorithm provides quantum computers the ability to recover the secret keys used for both encryption and signing for both RSA and ECC systems. The Grover search can be used to find collisions in hash functions, which are used to ensure the immutability of the blockchain. Thus, any current, and more importantly, future blockchain protocols must consider the potential of quantum-based attacks.

1.1. Our Contributions

In this paper, we present formal proofs of security for the Dandelion blockchain protocol. The Dandelion protocol is designed to be a mobile peer-to-peer transaction application that allows for asynchronous payment requests and deposits [15]. More specifically, we review the protocol and define a set of properties necessary for both functionality and security in the asynchronous, distributed network of Dandelion. To do so, we define a series of black-box oracles that would allow a (potentially quantum) adversary to simulate the entire network, and a set of security experiments that capture our defined properties. Briefly, these criteria include fault tolerance, decidability, unforgeability, non-repudiation, immutability, and double-spending. We then present direct, tight security proofs against a quantum-computing-capable adversary for each of the outlined criteria.

1.2. Paper Organization

The organization of this paper is as follows. In Section 2, we review the necessary background notation and cryptographic algorithms used in this paper and the Dandelion protocol. In Section 3, we outline the network model, a description of users, a summary of Dandelion’s message flows, and a brief discussion of the key differences between Dandelion and other protocols. In Section 4, we define our security model for Dandelion, including a formal description of adversarial powers, via oracles and goals. In Section 5, we then prove both the functional and security properties of Dandelion in our model. We conclude our paper in Section 6. In Appendix A, we provide a detailed description of how messages are handled. In Appendix B, we describe how out-of-sync nodes are dealt with in our oracle model.

2. Prelimaries

In this section, we introduce the notation used in this paper, and the necessary cryptographic algorithms used in the Dandelion protocol. We will first review the notation for (cryptographic) algorithms, sampling, and negligible functions.
This section introduces the notation used in this paper and the necessary cryptographic algorithms used in the Dandelion protocol. First, we will review the notation for (cryptographic) algorithms, sampling, and negligible functions.

2.1. Notation

By y A ( x ) we denote an algorithm, A , that runs on input x and output y. When A has access to an oracle, B , that it may query, we write this as A ( x ) B ( · ) . If A is an algorithm that uses some randomness in its execution on input x and we wish to specify what the randomness is, say r, we denote it as A ( x ; r ) . We will refer to specific subroutines within A ( · ) as A . Subroutine . We will consider all adversaries as probabilistic polynomial time (PPT) algorithms on their input length.
We write x $ S to denote that x was outputted by S probabilistically, where if S is some algorithm, then x was selected according to some internal distribution, and if S is some space, such as { 0 , 1 } l , then we implicitly mean for x to be sampled uniformly at random.
We say a function g mapping non-negative integers to non-negative reals is called negligible, if for all positive numbers c there exists an integer λ 0 ( c ) 0 , such that for all λ > λ 0 ( c ) , we have g ( λ ) < 1 λ c .

2.2. Digital Signatures

Next, we outline the core asymmetric cryptographic component of Dandelion.
Definition 1 (Digital Signature Algorithms).
We say a triple of algorithms Σ = ( KeyGen , Sign , Verify ) form a digital signature algorithm (DSA) scheme, if:
  • KeyGen : The key generation algorithm is a probabilistic algorithm which on input 1 κ ( n N ) outputs a related pair, ( p k , s k ) , of public verification and secret signing keys;
  • Sign : The signing algorithm is a probabilistic algorithm that takes two inputs, a secret signing key s k , and a plaintext message m, from a designated message space, M Σ , and outputs a signature σ;
  • Verify : The decryption algorithm is a deterministic algorithm that takes as input a public verification key p k , a plaintext message m, and a signature σ, and returns either a 0 if rejected, or a 1 if accepted.
We now define our security notions for DSAs.
Definition 2 ( EUF - CMA Security for DSAs).
We say that a DSA, Σ, is EUF - CMA -secure if, for all adversaries A , we have that:
Adv Σ EUF - CMA ( A ) = Pr [ Expt Σ EUF - CMA ( A ) 1 ]
is a negligible function in κ, where Expt Σ EUF - CMA ( A ) is defined in Figure 1.

2.3. Hash Functions

For the purposes of this paper, when we refer to a hash function, we are specifically referring to an unkeyed compression function, which takes strings of arbitrary length and outputs digests of some fixed length l. Furthermore, when we informally refer to a secure or good hash function, we mean a hash function that is collision-resistant, that is, it should be infeasible for an adversary to produce two different messages m 0 , m 1 that evaluate to the same digest. We now formalize the notion of a family of collision-resistant of hash functions.
Definition 3.
Let H be a family of functions H = n { H i : { 0 , 1 } * { 0 , 1 } l } i I . We call this family of functions a family of collision-resistant families of hash functions if:
  • There is a PPT time algorithm to sample H i H , i I ;
  • Given m , i , H i ( m ) can be computed in poly-time;
  • For all adversaries A , and i I , we have that
    Adv H collision ( A ) = Pr [ Expt H collision ( A ) 1 ]
    is a negligible function, where Expt H collision ( A ) is defined in Figure 2.

3. The Dandelion Protocol

In this section of the paper, we outline the users and network settings of the Dandelion protocol [15], the protocol itself, the message flows, and the data structure.

3.1. Network and Users

The fundamental network structure of Dandelion is that of an asynchronous, open network, where users, or nodes, may join the network at any time, and may participate in any number of requests they choose. More precisely, by asynchronous we mean that there is no shared network clock, and that communication between clients and nodes can be responded to by the other at any point in time. This description also allows for situations where nodes may adaptively go on- or offline, including because of crashes, disconnections, or other reasons [15].
The network is parameterized by the following: a list of all users and all related information U , an existentially unforgeable under chosen message attack ( EUF - CMA -secure) digital signing algorithm (DSA) Σ , a collision-resistant hash function Hash , and a variable that denotes the maximum number of unclaimed transactions a user may have at once max PJ . We refer to a user’s unclaimed transactions as the user’s penny jar.
Users, U , in the Dandelion protocol are parameterized by the following:
Keys: 
A pair of Σ keys ( p k U , s k U ) , where s k remains private, and p k acts as part of U ’s public account ID;
Shard 
Id:  Shard id , a parameter to denote which “shard” of the network the user belongs to. Shards are finite collections of users and are assigned to users as they join the network using a proprietary technology not discussed in this work. A specific users’ shard ID is denoted as Shard id U ;
Balance: 
The user’s account balance, denoted by Balance . When we refer to a specific users’ balance, we will use the notation Balance U ;
Transaction 
Id: The number of sent transactions the user has completed is denoted by TxID , which is updated incrementally as new transactions are completed. To refer to a specific i-th transaction number, we adopt the notation Tx # i . In cases where we wish to refer to the transaction of a specific user, we denote it as TxID U A , and likewise for Tx # i U A . We also use the notation U A . TxID to denote a U A ’s transaction ID according to the internal state of another node;
Status: 
Status represents what state the user is in from the view of a different node. Each user has three possible states: Locked , Unlocked , and PreAbort . When a node is Unlocked , the node is free to create new transaction requests to send to the network. When a node is Locked , the rest of the nodes will reject transaction requests from it until the status is changed to Unlocked . PreAbort is the state nodes are set to when their transaction requests have been denied. Once a transaction request has been denied, the node must send out an abort request to the network, to which their status is set to PreAbort . The node must then receive enough authorizations to abort the transaction and then send all authorizations to the network to become Unlocked . When we refer to a specific user’s status, we will use the notation U . Status ;
Penny 
Jar:  PJ , a collection of non-redeemed transfers to the user, called pennies. This list is held by the other nodes of the network. Each penny in the penny jar is denoted by p i . Each element is of the form p i = ( penny , block header ) . A formal description of a penny and block header are included in Figure 3. When we refer to a specific user’s penny jar, we denote it as PJ U . We note that different nodes may have differing penny jars for the same user U . To differentiate the source of the penny jar (penny) we denote it as PJ U i ( p U i );
Blocks: 
The record of transactions which the user has participated in. We use Chain to denote the complete set of all transactions, or blocks, in a user’s chain in sequential order, and B i to refer to the i-th block of the user’s chain. We will also adopt the notation of B Ω to refer to the last block currently part of a user’s chain. When we need to distinguish multiple users’ chains (blocks) we use the notation B U ( B i U ) . A description of a block and the block header are provided below, in Figure 3. We note here an important difference between Dandelion and other traditional blockchains: while other blockchains’ blocks are collections of global transactions, in the Dandelion protocol, each user has their own individual chain, where each block is a single transaction.
We assume every node maintains a list of all the publicly available information above (i.e., all information barring the users’ secret key) for each other user that is efficiently searchable on inputs ( p k U , Shard idU ) . We call this list the node list, U . Whenever a node joins the network, we assume that they obtain a node list generated from U at the time of joining. In the real-world setting, when a node wishes to join the network, they would use discovery channels to download a copy of other existing node lists (signed by the providing node), and collate these lists to create and publish their own node list. Moreover, in real-world applications, nodes would continuously update and publish their node list while participating in network validation to determine the approximate number of total online nodes. This is used so that nodes can determine whether a transaction has received enough responses and authorizations for finalization. To see why this is necessary, consider a transaction created by an adversary that is sent to one honest node and two corrupted nodes. The adversary can trivially create a scenario where a fake transaction has a consensus of approval from the responses collected. However, as the transaction is fake, it should not be possible for fabricated transactions to obtain majority approval. Thus, utilize each node’s node list to prevent this curating of biased responses.

3.2. Message Flows

We now briefly introduce Dandelion, a permissionless directed acyclic graph (DAG) blockchain protocol, and its message flows, with a series of figures. For readability considerations, we split the complete Dandelion protocol into three sub-protocols: transaction requests, abort requests, and collection requests. We then describe the sub-protocol with three figures: message descriptions, message flows, and how each message is handled. We provide the descriptions for how messages in each sub-protocol are handled in Appendix A.
We begin with the transaction request aspect, as described in Figure 4 and Figure 5, and process according to Figure A1, Figure A2 and Figure A3. The abort sub-protocol is described in Figure 6 and Figure 7, and process according to Figure A4, Figure A5 and Figure A6. Finally, the collection pennies sub-protocol is described with Figure 8 and Figure 9, and process according to Figure A7, Figure A6 and Figure A9.

3.3. Data Structure

Unlike traditional blockchain protocols, which make use of linear chains and have potential new blocks compete for consensus to be added to the single chain each round, Dandelion uses the structure of a DAG. The DAG structure seeks to offer faster confirmation times and increased scalability than traditional linear blockchains without compromising security. In the last several years, there has been an increasing number of protocols built upon DAGs [4,16,17,18,19,20].
DAGs consist of a point set V and an edge set E . Each tuple ( u , v ) in the edge set represents a partial-order relationship between u and v, where order is defined as a directed path between u and v.
In the case of Dandelion, each element in the point set corresponds to a transaction Tx , and the directed path or order means that one transaction is linked to another. Furthermore, each user has their own DAG, and for every transaction there must exist a discretely matched pair of transactions from the sending account and the receiving account. Finally, Dandelion allows for these transaction blocks to be created asynchronously.

3.4. Comparisons

We now briefly highlight the unique structural features of Dandelion regarding other DAG-based protocols. We note here that a true comparison between Dandelion and other protocols is not truly possible on a structural level, and a performance comparison is outside the scope of this paper; the main goal of this paper is to prove the security of Dandelion in our model described in Section 4.
Unlike other peer-to-peer protocols, Dandelion operates on an individual level, and does not have a global or network-wide shared ledger of transactions. Instead, each account has its own chain recording each transaction they have participated in, which is stored on the network nodes. Furthermore, each account holder is responsible for advancing the state of their own chain, rather than a protocol determining when to add the next block to the shared chain.
A second fundamental difference is that network nodes do not communicate with one another to process requests. Dandelion uses a distinct consensus mechanism, as opposed to traditional consensus algorithms such as proof of work or proof of stake. Instead, Dandelion uses a so-called “client leader” model, where the account holder is responsible for collecting the responses from validator nodes. The account holder then forwards their collection of responses to the rest of the network, who individually confirm whether there is a two-thirds majority of approval before accepting and continuing.
Finally, as previously mentioned, Dandelion allows for completely asynchronous processing of payments and deposits. As a result of these design choices, a rigorous comparison between the security of Dandelion and other well-known protocols would not be truly meaningful, and a performance comparison is not within the scope of this work.

4. Security Model

In this section, we outline the adversarial powers (via oracles) and security definitions developed for the Dandelion protocol. We begin with global network parameters needed for Dandelion, as well as several artificial parameters necessary for the proof of security.

4.1. Adversary Oracles

In this section of the paper, we present a series of oracles that are given to the adversary attempting to achieve some goal. We define the security criteria and the corresponding experiments following the descriptions of the oracles.
Before beginning the description of our oracles, we provide insight behind this choice of approach. Proofs of security for algorithms, such as DSAs, and (authenticated) key exchange protocols typically use oracles in security experiments, that are given to the adversary. This allows them to interact and control various aspects of the algorithm/protocol. In the case of key exchanges, the adversary can simulate the entire network, issuing messages on behalf of users, corrupt users, and more, effectively giving them near-total control while they attempt to win the security experiment. Our choice of using an oracle representation is to bring security proofs of blockchain protocols in line with other cryptographic algorithms through the use of oracles and formal security experiments.
To this end, we adopt a method similar to key exchange models, where the oracles are able to generate and process any message from the protocol. Thus, our oracles are defined to follow this approach, and provide the adversary oracles that are capable of generating and processing any message from the Dandelion protocol. We note here that our choice of model can be thought of as an oracle-based generalization of Garay et al.’s security model [21], which gives an adversary the ability to broadcast any message they wish, adaptively corrupt nodes, and change the source of any message. However, their model is not truly appropriate for our purposes, as Dandelion does not utilize rounds and a global ledger. Instead, each transaction is completed separately, and we make use of oracles which act on a transactional level.
We first define two additional lists that we require for our security analysis: C , which is a list of users that have been corrupted by the adversary; T , a list of non-active nodes; and L T x , a list of transactions the adversary has created via oracle queries. Each of C , T , and L T x begins empty and is updated adaptively in response to the actions of the adversary. Importantly, C allows the adversary to view the corrupted node’s secret keys and to arbitrarily decide the node’s responses to transaction requests. Finally, we note that all transactions require amnt > 0 , and all other values will result in a reject message ⊥.
Add
Generates a new node U , under the control of A . The oracle first checks whether | C | + 1 | U \ T | < 1 3 . If yes, then the node’s Σ keys are generated, along with its shard ID Shard id ; its balance and transaction are each set to 0, Status is set to Unlocked , and its chain Chain and penny jar PJ are set to empty. The node is added to both ( p k U , s k U , Shard id U , 0, 0, Unlocked , - , - ) U and ( p k U , Shard id U ) C , and ( p k U , s k U ) are returned to A . If no, then the oracle returns ⊥.
Corru
pt ( p k U , Shard id U ) : Corrupts a node to give A the node’s secret key and control over it. The oracle first checks whether the node is in the master list of users U and whether | C | + 1 | U \ T | < 1 3 . If yes, it then returns p k U ’s corresponding secret s k U and ( p k U , s k U , Shard id U ) C . If not, then the oracle returns ⊥.
Down
( p k U , Shard id U ) : Takes a node temporarily offline so that the node will miss the next transaction or collection request, simulating the node missing the next round of network validation. The oracle first checks whether the node is in the master list of users U and whether | C | + 1 | U \ T | < 1 3 . If yes, then the oracle is successful and ( p k U , Shard id U ) T , and it returns 1. Otherwise, the oracle fails and returns 0.
Build
Tx ( ( p k U A , s k U A , Shard id U A ) , ( p k U B , Shard id U B ) , amnt ) : Creates a transaction request to send amnt from a corrupted node U A to another node, U B . First, the oracle confirms both that the user exists, and that amnt Balance U A . If neither is true, then the oracle rejects. Otherwise, the oracle creates the corresponding Tx and Tx U A U B Request , and returns a Tx U A U B Request message to the adversary and adds Tx L T x .
TxAu
thorize ( Tx U B U A Request ) R : Returns the responses of all nodes U U \ ( T C ) to the transaction request. First, the oracle does the following for each online non-corrupted node: it confirms that each of the users exist, that U B . Status is Unlocked , that amnt Balance U B , that | PJ U A | < max PJ , and it verifies the signature. The node then updates its node list. If a node accepts the transaction request as valid, it will return a Tx U B U A Authorized message (see Figure 5) with b = 1 , and will set U B . Status = Locked . Otherwise, the node sets b = 0 and sends Tx U B U A Authorized . We describe how this oracle handles nodes that were previously offline in Appendix B.
TxFine
alize ( R , R A ) : Creates the message Tx U B U A Finalize (see Figure 5) with the list of responses R R A , computes the final processing fee from the suggested fees by ordering the suggested fees in increasing order, and then takes the median of the first two thirds. It then returns the completed message to the adversary.
TxCom
plete ( Tx U B U A Finalize ) : Completes the transaction. Each node processes Tx U B U A Finalize by first checking if each response in R R A is from an existing node by checking its own node list. If not, then that response is discarded. Next, they verify the signatures of the nodes they know of, and confirms if over two-thirds of the responses, relative to their node list, in R R A , accepted the transaction. If yes, then the node computes the next block B in U B ’s chain, updates U B ’s balance by subtracting the amount request and the fee calculated, updating the transaction ID, sets U B . Status to Unlocked , and adds the transaction to U A ’s penny jar to be collected later. Finally, it returns each U i ’s response to the adversary Tx U B U A Finalized , i , b = 0 if they are rejected and b = 1 if accepted. T is emptied.
Abort
Tx ( Tx ) : Creates an abort transaction request for transaction Tx . The oracle first checks whether Tx L T x ; if not, then the oracle returns rejectedCause . Otherwise, the oracle computes and returns Tx U B U A AbortRequest ; see Figure 7.
Abort
Confirmation ( Tx U B U A AbortRequest ) : Returns the responses of all nodes U U \ ( T C ) to the abort transaction requests. Each node reviews the transaction Tx and checks whether the transaction is still in U A ’s penny jar and not in U B ’s chain, and verifies the signature. If true, then the node sets b = 1 , and U i creates the response Tx U B U A AbortAuthorized (see Figure 7) with b = 1 . Otherwise, it sets b = 0 , and creates Tx U B U A AbortAuthorized accordingly. All the responses are collected in the set P and returned to the adversary.
Abort
Finalize ( P , P A ) : Creates the abort finalize message Tx U B U A AbortFinalize (see Figure 7) under response set P P A , where P A are the responses the adversary inputs themselves for the corrupted nodes they control, and returns the completed message to the adversary. Tx U B U A AbortFinalize is then returned.
Abort
Complete ( Tx U B U A AbortFinalize ) : Completes the abort request. Each node is given a copy of Tx U B U A AbortFinalize , and first checks if each response in P P A is from an existing node by checking its own node list. If not, then that response is discarded. Next, they verify the signatures of the nodes they know of and confirm if over two-thirds of the responses, relative to their node list in P P A , accepted the abort. If U B i accepts, then the transaction is aborted, removed from node U A ’s penny jar PJ U A , U B . Status is set to Unlocked and the balance is updated, and the message b = 1 is outputted by the node. Otherwise, the node U i does nothing but output b = 0 . The collection of responses is outputted to the adversary.
Reque
stPennyJar ( p k U A , Tx # Ω U A ) : Creates a penny jar request for node U A . The oracle first checks whether the node exists (if not, then the oracle returns rejectedCause ) and if Tx # Ω U A is U A ’s transaction ID on B Ω U A . Otherwise, the oracle returns to the adversary PJ Request U A ; see Figure 9.
SendP
ennyJar ( PJ Request U A ) : Returns the penny jar that every available node has for node U A . Each node first attempts to verify the signature. If the signature is valid, it outputs PJ i U A ; see Figure 9. Additionally, the node sends the corresponding PennyHash for each penny. Otherwise, it returns rejectedCause . The responses are collected in the collection P and returned to the adversary.
Order
Pennies ( P ) : Returns U A ’s ordered list of pennies according to the node P ^ from all collected penny jars, along with the corresponding hash of the penny. The order is determined by the U A s. The oracle then returns CollectPennies to the adversary; see Figure 9.
Collec
tPennies ( P ^ , σ o p , p k U A ) : Sends the ordered list of pennies to the other nodes to redeem all pennies. First, it verifies the signature σ o p . If the signature verifies, then U i updates U A ’s chain by hashing U A ’s preceding block along with the corresponding block from the sender’s chain for the penny (using the blocker header to find the correct block) and creating the next block for U A . This is repeated for each penny, and during each iteration, U A ’s balance and transaction ID are updated appropriately. Then, U i empties U A ’s penny jar PJ U A . We describe how this oracle handles nodes that were previously offline in Appendix B.
TxHis
tory ( p k U A , Shard id U A , U A , i ) : Returns the i-th transaction Tx for node ( p k U A , Shard id U A ) by searching the node’s chain. If there is no such transaction, the oracle returns .
Block
History ( p k U A , Shard id U A , U A , i ) : Returns the i-th block in node U A ’s chain. If there is no such block, then the oracle returns .
Hash ( - )
Returns H ( m ) .

4.2. Security

In addition to resistance to double-spending attacks, we now provide a list of security properties for the Dandelion protocol. We first provide an informal description of the various properties that have been, we believe, necessary for practical use for the Dandelion protocol, in addition to resistance to double-spending attacks. We then capture these with notions in a formal setting, along with security experiments in which the adversary is given access to the above oracles and must achieve some related goal.
Correctness: 
If max PJ = , then all requests that were honestly created will be authorized by honest nodes in the network.
Fault 
Tolerance: An adversary, with some number of corrupted nodes, should not have monopolistic control over the approval of transactions or the processing of abort transaction requests.
Decidability: 
All transaction requests must either be completed or rejected.
Unforgeable 
Transactions: An adversary, with some number of corrupted nodes, cannot issue transaction requests that can become finalized on behalf of non-corrupted nodes.
Non-repudiation: 
An adversary, with some number of corrupted nodes, cannot issue abort transaction requests that are able to become finalized on behalf of non-corrupted nodes.
Unforgeable 
Collection: An adversary, with some number of corrupted nodes, cannot issue a request for the penny jar of honest nodes that causes honest nodes to return the corresponding penny jar.
Immutability: 
An adversary, with some number of corrupted nodes, cannot modify an existing users’ chain.
Quantum 
Resistance: The above properties must hold in the presence of an adversary with quantum computing capabilities.
We call the first three properties the functionality properties, as they ensure a basic level of the usability of the Dandelion protocol. Correctness ensures that honest attempts by potential users should be accepted by others executing the protocol correctly. An honest transaction should be only be rejected if the receiver’s penny jar is full. Thus, we must prove that if the penny jar limit was infinite and these messages were well-formed and valid, then they will always be accepted.
Fault tolerance is a necessary property for basic functionality, as Dandelion is to be a distributed decentralized network, where malicious nodes may attempt to collude and influence the network at large. As such, we must determine the fault-tolerance threshold of Dandelion, the point at which the network is effectively controlled by adversaries.
The final functionality property is that of decidability. Each request must be processed by the other nodes in the network before responding. If there existed a transaction that could not be decided upon, then, by the definition of Dandelion, the requester’s account would become locked. Moreover, the requester must then create an abort transaction message to unlock the node. Thus, we must prove that all transactions are either accepted, rejected, or can be aborted successfully.
The remaining five properties will be referred to as the security properties of Dandelion. We will use the traditional security experiment framework of Setup, Query, Challenge, and Finalize to formalize the first four security proprieties. Regarding quantum resistance, we will make it explicit that we will be considering a probabilistic poly-time adversary with quantum-computing capabilities, and that are capable of performing Hash queries in superposition. While the following security experiments and the subsequent proofs can be downgraded to consider classic adversaries, we consider it prudent to focus on quantum-capable adversaries as the default, given the impending standardization of quantum-resistant algorithms and the increasing probability of scaleable quantum computers during the intended lifetime of Dandelion.
We first begin with the security experiment for unforgeable transaction requests.
Definition 4 (Unforgeability of Transactions).
Let κ be a security parameter, C be the challenger of this experiment, Σ be a signature scheme, and H a hash function, and let A be an adversary interacting with Dandelion via the queries defined in Section 4.1 within the following security experiment Expt D a n d e l i o n U n F T x ( A ) :
Setup. 
The challenger generates all the public and private information of all users in the Dandelion network according to the Dandelion protocol. This includes generating the public and secret key for Σ with security parameter κ. The challenger then simulates the network operating by uniformly creating, at random, interactions between nodes (i.e., simulating transaction requests, processing transactions, collecting pennies on arbitrary nodes, etc). After many polynomial transactions, the challenger outputs all public information to the adversary A and initializes C = T = L T x = ;
Query. 
The adversary A receives the generated public information and may query any of the oracles: Add , Corrupt , Down , BuildTx , TxAuthorize , TxFinalize , TxComplete , AbortTx , AbortConfirmation , AbortFinalize , AbortComplete , RequestPennyJar , SendPennyJar , CollectPennies , TxHistory , Hash , BlockHistory .
Challenge. 
At some point, A stops and requests a challenge from C . C then uniformly and at random selects a node, U * , from U \ ( C T ) , whose status is set to unlocked, and gives A the public information of that node. If no such nodes exist, then C selects a node at random and generates the transaction abort request on behalf of the node. It then processes this request on behalf of all honest nodes. The adversary is then given back access to their oracles, but is forbidden from corrupting U * ;
Finalize. 
The adversary eventually stops and outputs a transaction Tx * L T x , a request message Tx U B U A Request , and a response list R A for any number of nodes in C . C accepts these inputs and computes the complete Dandelion transaction request protocol on Tx * and uses R A as well as the response of honest nodes to compute Tx U B U A Finalize . After completing, the protocol C returns 1 if the transaction was accepted and finalized, and 0 otherwise.
We say that A wins the game if C returns 1 and loses otherwise. We say D a n d e l i o n provides U n F T x -security if, for all adversaries, A , the advantage function below is negligible in the security parameter:
Adv D a n d e l i o n U n F T x ( A ) = Pr Expt D a n d e l i o n U n F T x ( A ) 1 .
We note here that the remaining security experiments have identical Setup and Query phases to Definition 4, and we will omit their description from the remaining definitions for space considerations.
Definition 5 (Non-repudiation of Transactions).
Let κ be a security parameter, C be the challenger of this experiment, Σ be a signature scheme, and H a hash function, and let A be an adversary interacting with Dandelion via the queries defined in Section 4.1 within the following security experiment Expt D a n d e l i o n N o n R e p ( A ) :
Challenge. 
At some point, A stops and requests a challenge from C . C then uniformly and at random selects a node, U * , from U \ ( C T ) . If this node has a pending transaction Tx * that has not yet been finalized, the challenger then sends U * ’s public information, along with Tx * . Otherwise, if the node is set to unlocked, C generates a random valid transaction request from U * to another node, U , in U \ ( C T ) , and sends the request to all other honest nodes. The challenger then forwards U * ’s public information and the transaction Tx * to A . The adversary is then given back access to their oracles, but is forbidden from corrupting U * ;
Finalize. 
The adversary eventually stops and outputs an abort transaction request Tx U B U A AbortRequest and a response list P A for any number of nodes in C . C accepts these inputs and computes the complete Dandelion abort transaction request protocol on Tx * , Tx U B U A AbortRequest , and uses P A as well as the response of honest nodes to compute Tx U B U A AbortFinalize . After completing, the protocol C returns 1 if the abort transaction request was accepted and finalized and 0 otherwise.
We say that A wins the game if C returns 1 and loses otherwise. We say D a n d e l i o n provides N o n R e p -security if, for all adversaries, A , the advantage function below is negligible in the security parameter:
Adv D a n d e l i o n N o n R e p ( A ) = Pr Expt D a n d e l i o n N o n R e p ( A ) 1 .
Definition 6 (Unforgeable Collection Transactions).
Let κ be a security parameter, C be the challenger of this experiment, Σ be a signature scheme, and H a hash function, and let A be an adversary interacting with Dandelion via the queries defined in Section 4.1 within the following security experiment Expt D a n d e l i o n U n C o l ( A ) :
Challenge. 
At some point, A stops and requests a challenge from C . C then uniformly and at random selects a node, U * , from U \ ( C T ) and confirms that U * has uncollected pennies in their jar. If there are no such pennies, C selects another node U in U \ ( C T ) that is unlocked, and then generates a valid transaction from U to U * and completes the Dandelion transaction request protocol to add a penny to U * ’s penny jar. C then sends U * ’s public information to A , as well as the transaction ID from the last block in U * ’s chain, Tx # Ω U * . The adversary is then given back access to their oracles, but is forbidden from corrupting U * ;
Finalize. 
The adversary eventually stops, then outputs PJ Request U * . C accepts the message and completes the Dandelion request penny jar protocol and returns 1 if the abort was accepted and finalized, and 0 otherwise.
We say that A wins the game if C returns 1 and loses otherwise. We say D a n d e l i o n provides U n C o l -security if, for all adversaries, A , the advantage function below is negligible in the security parameter:
Adv D a n d e l i o n U n C o l ( A ) = Pr Expt D a n d e l i o n U n C o l ( A ) 1 .
Definition 7 (Immutability of Chains).
Let κ be a security parameter, C be the challenger of this experiment, Σ be a signature scheme, and H a hash function, and let A be an adversary interacting with Dandelion via the queries defined in Section 4.1 within the following security experiment Expt D a n d e l i o n I m m u t a b l e ( A ) :
Challenge. 
At some point, A stops and selects a node U * with a chain Chain of length l > 1 . The adversary then submits the node U * and its chain, Chain * , to the challenger, along with a transaction, Tx * , and index 1 i l 1 ;
Finalize. 
The challenger accepts ( U * , Chain * , Tx * , i ) and first confirms the node exists and that Chain * is the current state of the user’s chain. If not, C returns 0 and A has lost the security experiment. Otherwise, C then computes the hash H ( Tx * , B U i * ) and compares it with the Hash i + 1 from block i + 1 of U * ’s chain. If H ( Tx * , B U i * ) = h a s h i + 1 , then C returns 1, and 0 otherwise.
We say that A wins the game if C returns 1 and loses otherwise. We say D a n d e l i o n provides I m m u t a b l e -security if, for all adversaries, A , the advantage function below is negligible in the security parameter:
Adv D a n d e l i o n I m m u t a b l e ( A ) = Pr Expt D a n d e l i o n I m m u t a b l e ( A ) 1 .

5. Proof of Security

In this section, we prove the security of the Dandelion protocol in our model. We first demonstrate that Dandelion satisfies the three functionality properties before moving on to the security properties and, finally, to double-spending attacks. We begin with correctness.
Theorem 1.
Dandelion is correct.
Proof. 
We first assume that max PJ = ; this represents receivers still having space available in their penny jar. Next, recall the following: the Dandelion protocol has two request messages, a transaction request, Tx U B U A Request , and an abort request, Tx U B U A AbortRequest . In both requests, the sender must provide the following information: Tx = ( Shard id U B , p k U B , TxID U B , amnt , and Shard id U A , p k U A ) . Each request also contains a corresponding “requestTx” or “abortTx”, a signature over the transaction details, and one of the two messages. In either situation, an honest user will include valid details of the transaction, including public account information. Thus, nodes will receive valid inputs, confirm that the transaction details are valid, and verify the signature attached. That is, the nodes will confirm that both accounts exist, that the transaction ID is correct (or update it accordingly), and that the amount is no more than the sender’s balance. Since there is no limit to the number of transactions that the sender can have in their penny jar, the honest request would not be rejected. Thus, Dandelion is correct. □
Theorem 2.
The fault-tolerance threshold of Dandelion is N 3 .
Proof. 
Recall that, in order for a transaction or an abort to be finalized, the nodes must first receive a Tx U B U A Finalize or Tx U B U A AbortFinalize message, containing a list of responses signed by other nodes in the network. The node confirms the existence of the other nodes and verifies the corresponding response and signature from said node. The request is finalized if over two-thirds of the responses in the request authorized the transaction. Each request is intended to be sent across the network to all active nodes, N. This implies that a transaction requires greater than N 3 + 1 nodes to authorize the transaction. Now, let f denote the number of nodes an adversary controls. If f N 3 + 1 , then clearly the adversary has complete control over all requests. However, this is also true for f N 3 , as the adversary is able to act as a tie-breaker to authorize a transaction or to force users to abort transactions as they would be unable to reach a consensus from the network, giving the adversary effective control of the network instead of complete control. Thus, we have that the fault-tolerance threshold is N 3 . Alternatively, we have that 3 f < N , where N is the number of active online nodes, and f is the number of nodes the adversary controls. □
Corollary 1.
Dandelion is decidable.
Proof. 
Let N denote the number of active online nodes in the network, and let A be an adversary that controls f < N 3 nodes of the network. By Theorem 1, we have that Dandelion is correct, and so all requests that are honestly generated, and well-formed requests will be authorized by honest nodes, provided the receiver has space available in their penny jar. By the assumption that A controls fewer nodes than the fault-tolerance threshold, and by Theorem 2, it does not have enough control over the network to solely decide which requests are authorized. Moreover, there does exist a sufficient number of honest nodes to either authorize valid transactions or reject invalid transactions. □
We now establish the security properties of Dandelion through a series of security reductions.
Theorem 3.
Let Σ be a signature algorithm that is EUF - CMA -secure against quantum-computing-capable PPT adversaries, H be a hash function that is collision-free against quantum-computing-capable PPT adversaries, and A be a quantum-computing-capable PPT adversary that controls less than 1 3 of the Dandelion network. Then, except with negligible probability, the Dandelion protocol satisfies the unforgeability of transaction property.
Proof. 
To prove the security against forged transaction requests, we will demonstrate that an adversary capable of doing so can be used as an oracle algorithm to win the EUF - CMA -security game (see Definition 2) against Σ . Let B be a quantum-computing-capable adversary against the EUF - CMA -security of Σ . We then consider B while it is in the EUF - CMA -security experiment, as described in Figure 1; that is, it is given a public key p k * and oracle Sign * programmed with the corresponding secret key s k * . Now, assume that there exists a quantum-computing-capable PPT adversary A that can win the U n F T x -security of Dandelion by outputting a new transaction request Tx U B U A Request and response list R A that results in the transaction being finalized with non-negligible probability.
B is able to use A to win the EUF - CMA -security game as follows. First it picks a suitable collision-free hash function H, initializes the following lists— U , T , C , generates Σ keys for N 1 other nodes, defines the distribution D, and uses p k * as the public key for the N-th node. B then simulates the Dandelion protocol for some polynomial amount of time. This includes generating shard IDs for nodes as it adds them to the list of nodes, assigning account balances, arbitrarily deciding on transactions between random users, and keeps track of all user data, both, private and public. It uses its Sign * oracle to produce signatures on behalf of the account represented with public key p k * . B then simulates A and the Expt D a n d e l i o n U n F T x ( A ) and acts as the challenger. As B generated all but one node’s public key, it is able to answer all but one of the oracle queries A may make, including Add and Corrupt queries, ensuring A does not surpass the fault-tolerance threshold. The only exception is for a Corrupt query on ( p k * , Shard id p k * ) . Thus, the simulation is perfect to A through both the Setup and Query phases until A queries Corrupt on p k * .
We let E denote the event that A queries Corrupt on the account with public key p k * , and let q c and q a denote the number of Corrupt and Add queries made, respectively, by A . During the simulation of A by B , we define an abort and restart condition if E happens, and we wish to bound the probability of this. First, we know that it must hold that q c + q a < N 3 . Thus, the maximum number of Corrupt queries A may make is N 3 1 . We can then upper-bound the probability of E by using a hyper-geometric distribution. There are N total nodes, N 3 1 accounts are drawn, and there is only a single success that is p k * . Thus, we have:
Pr [ E ] = 1 1 ( N 1 N 3 1 1 ) ( N N 3 1 ) = 1 3 1 N .
Therefore, we have an upper bound of Pr [ E ] < 1 3 for N > 3 , and B will be forced to restart its simulation with probability 1 3 . When E does not occur, then B will select the node with public key p k * as the challenge for A , instead of a truly random non- A -controlled node. B continues the simulation until A outputs a Tx U B U A Request . B then parses the Tx U B U A Request message and forwards Tx requestTx, σ r to their own challenger. By assumption, we have that A can successfully produce a Tx U B U A Request and response list that will be accepted by the Dandelion network, which includes a valid signature for a node whose secret keys it does not have knowledge of. Thus, if Tx U B U A Request is accepted by the network, then B will have provided a successful forgery under p k * . We can then conclude that:
Adv D a n d e l i o n U n F T x ( A ) 3 · Adv Σ EUF - CMA ( B ) ,
where the factor of 3 is to account for the probability of A querying Corrupt on B ’s challenge public key. □
Theorem 4.
Let Σ be a signature algorithm that is EUF - CMA -secure against quantum-computing-capable PPT adversaries, H be a hash function that is collision-free against quantum-computing-capable PPT adversaries, and A be a quantum-computing-capable PPT adversary that controls less than 1 3 of the Dandelion network. Then, except with negligible probability, the Dandelion protocol satisfies the non-repudiation of transactions property.
Proof. 
We employ a similar strategy to the one used in Theorem 3. We consider a quantum-computing-capable PPT adversary B attempting to win the EUF - CMA -security experiment on the signature scheme Σ . We also assume that there exists a quantum-computing-capable PPT adversary A that is able to win the Expt D a n d e l i o n N o n R e p ( A ) experiment, as in Definition 5, with non-negligible probability. We will demonstrate a reduction that B may employ to use A as an oracle algorithm to win their experiment.
We have B set up a Dandelion network identically to the way described in Theorem 3. It generates a signing key and account information for N nodes, using its challenge public key, p k * , as part of the network. It also generates the distribution D. It then simulates Dandelion for polynomial time, making arbitrary valid transactions between nodes before stopping and beginning to simulate A in the N o n R e p security experiment over the simulated network.
This simulation is perfect up to A querying Corrupt on p k * , and the probability of this occurring is upper-bounded by 1 3 . If A does not perform this query, and eventually requests a challenge, B forwards the account information associated with p k * to A , along with a challenge transaction Tx * (that B may or may not need to generate itself). A is given back access to its oracles and eventually outputs a Tx U B U A AbortRequest message and response list P A , which B parses and forwards to its own challenger Tx * abortRequest, σ a r . Again, by assumption, A is able to win the Expt D a n d e l i o n N o n R e p ( A ) with non-negligible probability, and so it must have produced a valid signature under a public key for which it does not know the secret key. Thus, if A would win the Expt D a n d e l i o n N o n R e p ( A ) by having the network accept the abort request as legitimate with that output, then B will win the EUF - CMA experiment.
We conclude that:
Adv D a n d e l i o n N o n R e p ( A ) 3 · Adv Σ EUF - CMA ( B ) ,
where the factor of 3 is to account for the probability of A querying Corrupt on B ’s challenge public key. □
Theorem 5.
Let Σ be a signature algorithm that is EUF - CMA -secure against quantum-computing-capable PPT adversaries, H be a hash function that is collision-free against quantum-computing-capable PPT adversaries, and A be a quantum-computing-capable PPT adversary that controls less than 1 3 of the Dandelion network. Then, except with negligible probability, the Dandelion protocol satisfies the unforgeable collection of transactions property.
Proof. 
We consider a quantum-computing-capable PPT adversary B against the EUF - CMA -security of Σ . We also assume that there exists another quantum-computing-capable PPT adversary A that can win the Expt D a n d e l i o n U n C o l ( A ) , as in Definition 5, with non-negligible probability. B sets up a simulation of the Dandelion network and includes its challenge public key p k * as one of the nodes in the network. It also generates the distribution D. It runs the simulation for polynomial time before stopping. B then begins to simulate A in the U n C o l -security experiment.
Once again, the simulation is perfect until A queries Corrupt on p k * , which occurs with probability bounded above 1 3 . If A does not perform this query, and eventually requests a challenge, B forwards the account information associated with p k * to A , along with Tx # Ω U * . B may need to generate a transaction to add a penny to the corresponding node’s penny jar. A is given back oracle access, and eventually outputs a RequestPennyJar message. B then takes this message and submits it to its own challenger. By assumption, A is able to win the U n C o l -security experiment with a non-negligible advantage, and so it must produce a valid signature for a node it does not control. Thus, if A had won in the U n C o l -security experiment, B would have submitted a successful forgery in the EUF - CMA -security experiment.
We conclude that:
Adv D a n d e l i o n U n C o l ( A ) 3 · Adv Σ EUF - CMA ( B ) ,
where the factor of 3 is to account for the probability of A querying Corrupt on B ’s challenge public key. □
Theorem 6.
Let Σ be a signature algorithm that is EUF - CMA -secure against quantum-computing-capable PPT adversaries, H be a hash function that is collision-free against quantum-computing-capable PPT adversaries, and A be a quantum-computing-capable PPT adversary that controls less than 1 3 of the Dandelion network. Then, except with negligible probability, the Dandelion protocol satisfies the immutability of chains property.
Proof. 
We once again use a similar approach to those used in the previous Theorems, except we do not consider a quantum-computing-capable PPT adversary, B , against the EUF - CMA -security of Σ , but against the collision-free security experiment in Figure 3. We also assume that there exists a quantum-computing-capable PPT adversary, A , that can win Expt D a n d e l i o n I m m u t a b l e ( A ) -security experiment in Definition 7.
As before, B simulates the Dandelion network, but this time it generates all nodes’ signing keys and distributions D. This means that there is no Corrupt query that the adversary can make that will cause B to restart the simulation. As a result, B can perfectly simulate the I m m u t a b l e -security experiment by using its own hash oracle to answer hash queries, and answer all other queries itself. Eventually, A submits a node U * , its chain Chain * , an index i, and transaction Tx * to B . B then parses the input and does the following: B searches U * ’s chain for block i, B i , and the transaction information from block i + 1 for the transaction:
Tx ˜ = ( Shard id send , p k send , TxID U A , amnt , Shard id receive , p k receive ) .
It then submits the following messages to its own oracle— m 0 = Tx * , B i , and m 1 = Tx ˜ , B i . By assumption, A wins the real I m m u t a b l e -security experiment with non-negligible probability by producing a collision between H ( Tx * , B i ) and the hash value used in the next block. We can, then, conclude that:
Adv D a n d e l i o n I m m u t a b l e ( A ) Adv H collision ( B ) .
Thus, if A has successfully produced a collision, then B will also have submitted a collision as well. □
We now, finally, cover the double-spend attack.
Theorem 7.
Malicious parties cannot double-spend in Dandelion.
Proof. 
Let B denote a quantum-computing-capable PPT adversary that controls less than 1 3 of the Dandelion network, Balance * be the balance of a single account that B tries to double-spend from, and Tx 1 and Tx 2 denote the two transactions attempting to double-spend.
Then, without loss of generality, if B attempts to collect authorizations for Tx 1 first, it sends the corresponding (valid) transaction request Tx U B U A Request 1 . Any honest nodes that receive the request will set B . Status to Locked and, thus, will not authorize the transaction request Tx U B U A Request 2 for Tx 2 . Likewise, any honest nodes that receive Tx U B U A Request 2 first will set B . Status to Locked and, thus, will not authorize the transaction request Tx U B U A Request 1 .
Thus, B will have partitioned the network into two sets, M 1 and M 2 , based on which request the node received first. In order for both transactions to be authorized, and successfully double-spend, it must be that M 1 , M 2 > 2 N 3 . However, M 1 + M 2 = N and so only one of M i > 2 N 3 where i = 1 or 2. Consequently, B cannot authorize both transaction simultaneously. □

6. Conclusions

In this work, we develop an oracle-based security model for the peer-to-peer blockchain transaction protocol Dandelion.
Our framework provides an oracle model for adversaries to interact with the Dandelion network, allowing for adaptive corruptions, network additions, and take-downs of nodes in the network to simulate a dynamic and asynchronous network. We then define formal security experiments for the ideas of unforgeability, non-repudiation, and immutability for the Dandelion protocol.
As the main result of our paper, we prove both the functional and security criteria of the Dandelion protocol with tight security reductions to the security of its digital signature algorithm and hash function. We also prove resistance to double-spend attacks. In these proofs, we explicitly consider quantum-capable PPT adversaries in order to reflect potential future attacks against Dandelion as quantum-computing technology becomes more robust, and such attacks become more likely.

Author Contributions

Conceptualization, B.G. and A.M.; methodology, B.G. and A.M.; formal analysis, B.G. and A.M.; resources, A.M.; writing—original draft preparation, B.G.; writing—review and editing, B.G. and A.M.; visualization, B.G.; supervision, A.M.; funding acquisition, A.M. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by Natural Sciences and Engineering Research Council (NSERC) of Canada, Discovery Grant RGPIN-2019-06150, and Mathematics of Information Technology and Complex Systems (MITACS) grant number IT20420.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

Not applicable.

Acknowledgments

The authors would like to thank Dandelion Networks Inc. for the opportunity to review and provide the proofs of security for the Dandelion protocol. The authors would like to particularly thank Paul Chafe for the numerous discussions on the technical details of the Dandelion protocol included in this manuscript.

Conflicts of Interest

The authors declare no conflict of interest. The funding agencies had no role in the design of the study, in the analyses, in the writing of the manuscript, or in the decision to publish the results.

Appendix A

In this appendix, we include a description of how each message in the Dandelion protocol is handled by either the client or a generic node in the network.
Figure A1. The verification of a transaction request Tx U B U A Request by a Dandelion node U i .
Figure A1. The verification of a transaction request Tx U B U A Request by a Dandelion node U i .
Mathematics 10 01054 g0a1
Figure A2. The process for how U B responds to the authorization answers, Tx U B U A Authorized , from the network.
Figure A2. The process for how U B responds to the authorization answers, Tx U B U A Authorized , from the network.
Mathematics 10 01054 g0a2
Figure A3. The verification of TxFinalize by nodes in Dandelion.
Figure A3. The verification of TxFinalize by nodes in Dandelion.
Mathematics 10 01054 g0a3
Figure A4. The verification of an abort request Tx U B U A AbortRequest by a Dandelion node U i .
Figure A4. The verification of an abort request Tx U B U A AbortRequest by a Dandelion node U i .
Mathematics 10 01054 g0a4
Figure A5. The process for how U B responds to the authorization answers, Tx U B U A AbortAuthorized , from the network.
Figure A5. The process for how U B responds to the authorization answers, Tx U B U A AbortAuthorized , from the network.
Mathematics 10 01054 g0a5
Figure A6. The verification of Tx U B U A AbortFinalize by nodes in Dandelion.
Figure A6. The verification of Tx U B U A AbortFinalize by nodes in Dandelion.
Mathematics 10 01054 g0a6
Figure A7. The verification of a collect penny request PJ Request U A by a Dandelion node U i .
Figure A7. The verification of a collect penny request PJ Request U A by a Dandelion node U i .
Mathematics 10 01054 g0a7
Figure A8. Ordering of penny jars PJ Request U A from U i by U A .
Figure A8. Ordering of penny jars PJ Request U A from U i by U A .
Mathematics 10 01054 g0a8
Figure A9. Verification of CollectPennies by U i and updating U A ’s chain.
Figure A9. Verification of CollectPennies by U i and updating U A ’s chain.
Mathematics 10 01054 g0a9

Appendix B

We now discuss how nodes, which are out of sync due to being offline, are caught up in our oracle model according to the Dandelion protocol. We note that nodes will only recognize that they have become out-of-sync when either a client begins collecting transaction authorizations, as the client’s transaction ID will differ from the node’s records, or when the client attempts to collect pennies which the node has no record of.
TxAu
thorize ( Tx U B U A Request ) R : If a node was previously offline and, thus, has a different TxID for U B , the node undergoes the updating process by sending the client a signed request for confirmation of their current transaction ID message, “updateTxID”. In response to a verified message, they receive a signed message of U B ’s current TxID . The responses are collected into a list R and returned to A .
Collec
tPennies ( P ^ , σ o p , p k U A ) : If a node was offline for transactions where U A was the recipient and does not have records of these transactions, then they must update their copy U A ’s chain. To do so, the U i and U A do the following: U i determines U A ’s most recent transaction ID, Tx # Ω U A , from the last block in the chain and sends it along with an update chain message that is signed. U A collects the update chain messages and computes the minimum of all transaction IDs, μ . The client tries to verify the signature then sends an “requestChainUpdate” message to the other nodes along with μ that is signed, if successfully verified, and otherwise does nothing. The other nodes then attempt to verify the signature on the request, and if successful, these nodes return a signed message of all blocks { B i } i > μ currently recorded with a transaction ID greater than μ . U A then attempts to verify each response, discarding ones it can not verify, before sending the list of responses as a signed message to the necessary nodes. These nodes update their node lists and attempt to verify U A ’s signature over the message. If successful, they then attempt to verify the signature of each response while discarding those that fail. If U i verifies over two-thirds of the response, relative to the size of their node list, they then add these blocks to U A ’s chain and process each transaction according to the information recorded on the block. This includes adding pennies to the jars of nodes listed as the receiver’s among the new blocks, or removing pennies from U A ’s jar, as the corresponding block is added. Finally, U i sets U A . Status = Unlocked .

References

  1. Nakamoto, S. Bitcoin: A Peer-to-Peer Electronic Cash System. Decentralized Bus. Rev. 2008, 2008, 21260. [Google Scholar]
  2. Buterin, V. Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform. Available online: https://github.com/ethereum/wiki/wiki/White-Paper (accessed on 23 February 2022).
  3. Khosravi, H.; Kitto, K.; Williams, J.J. RiPPLE: A Crowdsourced Adaptive Platform for Recommendation of Learning Activities. arXiv 2019, arXiv:1910.05522. [Google Scholar] [CrossRef] [Green Version]
  4. Sompolinsky, Y.; Zohar, A. PHANTOM: A Scalable BlockDAG Protocol. IACR Cryptol. ePrint Arch. 2018, 2018, 104. [Google Scholar]
  5. Androulaki, E.; Barger, A.; Bortnikov, V.; Cachin, C.; Christidis, K.; De Caro, A.; Enyeart, D.; Ferris, C.; Laventman, G.; Manevich, Y.; et al. Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains. In Proceedings of the Thirteenth EuroSys Conference, Porto, Portugal, 23–26 April 2018; Association for Computing Machinery: New York, NY, USA, 2018. [Google Scholar] [CrossRef] [Green Version]
  6. David, B.; Gaži, P.; Kiayias, A.; Russell, A. Ouroboros Praos: An Adaptively-Secure, Semi-synchronous Proof-of-Stake Blockchain. In Advances in Cryptology—EUROCRYPT 2018; Nielsen, J.B., Rijmen, V., Eds.; Springer International Publishing: Cham, Switzerland, 2018; pp. 66–98. [Google Scholar]
  7. Deloitte. Deloitte’s 2020 Global Blockchain Survay; Deloitte: London, UK, 2020. [Google Scholar]
  8. Yue, X.; Wang, H.; Jin, D.; Li, M.; Jiang, W. Healthcare Data Gateways: Found Healthcare Intelligence on Blockchain with Novel Privacy Risk Control. J. Med. Syst. 2016, 40, 1–8. [Google Scholar] [CrossRef] [PubMed]
  9. Azaria, A.; Ekblaw, A.; Vieira, T.; Lippman, A. Medrec: Using blockchain for medical data access and permission management. In Proceedings of the 2016 2nd International Conference on Open and Big Data (OBD), Vienna, Austria, 22–24 August 2016; pp. 25–30. [Google Scholar]
  10. Song, J.M.; Sung, J.; Park, T. Applications of Blockchain to Improve Supply Chain Traceability; Elsvier: Amsterdam, The Netherlands, 2019; Volume 162, pp. 119–122. [Google Scholar]
  11. Al-Rakhami, M.S.; Al-Mashari, M. A Blockchain-Based Trust Model for the Internet of Things Supply Chain Management. Sensors 2021, 21, 1759. [Google Scholar] [CrossRef] [PubMed]
  12. Liao, D.Y.; Wang, X. Design of a Blockchain-Based Lottery System for Smart Cities Applications. In Proceedings of the 2017 IEEE 3rd International Conference on Collaboration and Internet Computing (CIC), San Jose, CA, USA, 15–17 October 2017; pp. 275–282. [Google Scholar] [CrossRef]
  13. Shor, P. Algorithms for quantum computation: Discrete logarithms and factoring. In Proceedings of the 35th Annual Symposium on Foundations of Computer Science, Santa Fe, NM, USA, 20–22 November 1994; pp. 124–134. [Google Scholar] [CrossRef]
  14. Grover, L.K. A Fast Quantum Mechanical Algorithm for Database Search. In Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing, STOC ’96, Philadelphia, PA, USA, 22–24 May 1996; Association for Computing Machinery: New York, NY, USA, 1996; pp. 212–219. [Google Scholar] [CrossRef] [Green Version]
  15. Chafe, P.; Mashatan, A.; Munro, A.; Goncalves, B.; Cameron, D.; Xu, J. DANDELION WHITEPAPER (v.1). Available online: https://www.dandelionnet.io/ (accessed on 23 February 2022).
  16. Sompolinsky, Y.; Lewenberg, Y.; Zohar, A. SPECTRE: Serialization of Proof-of-Work Events: Confirming Transactions via Recursive Elections. 2017. Available online: https://www.semanticscholar.org/paper/SPECTRE-%3A-Serialization-of-Proof-of-work-Events-%3A-Sompolinsky-Lewenberg/65f1613a4f1b015fc64608b787227de0549f4cec (accessed on 23 February 2022).
  17. Zhou, T.; Li, X.; Zhao, H. DLattice: A Permission-Less Blockchain Based on DPoS-BA-DAG Consensus for Data Tokenization. IEEE Access 2019, 7, 39273–39287. [Google Scholar] [CrossRef]
  18. Chevalier, P.; Kaminski, B.; Hutchison, F.; Ma, Q.; Sharma, S.; Fackler, A.; Buchanan, W.J. Protocol for Asynchronous, Reliable, Secure and Efficient Consensus (PARSEC) Version 2.0. arXiv 2019, arXiv:1907.11445. [Google Scholar] [CrossRef]
  19. Gupta, H.; Ram, D. CDAG: A Serialized blockDAG for Permissioned Blockchain. arXiv 2019, arXiv:1910.08547. [Google Scholar]
  20. Yu, H.; Nikolic, I.; Hou, R.; Saxena, P. OHIE: Blockchain Scaling Made Simple. arXiv 2018, arXiv:1811.12628. [Google Scholar] [CrossRef]
  21. Garay, J.; Kiayias, A.; Leonardos, N. The Bitcoin Backbone Protocol: Analysis and Applications. In Advances in Cryptology—EUROCRYPT 2015; Oswald, E., Fischlin, M., Eds.; Springer: Berlin, Germany, 2015; pp. 281–310. [Google Scholar]
Figure 1. The EUF - CMA security experiments for DSAs.
Figure 1. The EUF - CMA security experiments for DSAs.
Mathematics 10 01054 g001
Figure 2. The collision-resistance security experiments for the hash function family H .
Figure 2. The collision-resistance security experiments for the hash function family H .
Mathematics 10 01054 g002
Figure 3. The structure of blocks, headers, and pennies in Dandelion. We let s denote information associated to a sender, while r denotes receiver’s information, l, if either j or k, depending on which of U A or U B is the sender.
Figure 3. The structure of blocks, headers, and pennies in Dandelion. We let s denote information associated to a sender, while r denotes receiver’s information, l, if either j or k, depending on which of U A or U B is the sender.
Mathematics 10 01054 g003
Figure 4. The Dandelion transaction request message flow.
Figure 4. The Dandelion transaction request message flow.
Mathematics 10 01054 g004
Figure 5. Dandelion transaction message description of senders and the network for a valid transaction Tx . We let the bit b = 0 denote denied, and b = 1 denote accepted, and fee is computed as the median of the lower two-thirds of responses.
Figure 5. Dandelion transaction message description of senders and the network for a valid transaction Tx . We let the bit b = 0 denote denied, and b = 1 denote accepted, and fee is computed as the median of the lower two-thirds of responses.
Mathematics 10 01054 g005
Figure 6. The Dandelion abort transaction message flow.
Figure 6. The Dandelion abort transaction message flow.
Mathematics 10 01054 g006
Figure 7. Dandelion abort message description of senders and the network for a valid transaction Tx . We let the bit b = 0 denote denied, and b = 1 denote accepted.
Figure 7. Dandelion abort message description of senders and the network for a valid transaction Tx . We let the bit b = 0 denote denied, and b = 1 denote accepted.
Mathematics 10 01054 g007
Figure 8. The Dandelion collect pennies protocol.
Figure 8. The Dandelion collect pennies protocol.
Mathematics 10 01054 g008
Figure 9. Dandelion penny jar request description of senders and the network.
Figure 9. Dandelion penny jar request description of senders and the network.
Mathematics 10 01054 g009
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Goncalves, B.; Mashatan, A. On the Security of the Dandelion Protocol. Mathematics 2022, 10, 1054. https://doi.org/10.3390/math10071054

AMA Style

Goncalves B, Mashatan A. On the Security of the Dandelion Protocol. Mathematics. 2022; 10(7):1054. https://doi.org/10.3390/math10071054

Chicago/Turabian Style

Goncalves, Brian, and Atefeh Mashatan. 2022. "On the Security of the Dandelion Protocol" Mathematics 10, no. 7: 1054. https://doi.org/10.3390/math10071054

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop