Counterfeiting a digital signature on bitcoin’s blockchain is a significantly hard task to execute successfully in terms of processing power. Accordingly, it is almost impossible to change a bitcoin transaction that has been already been signed. Nevertheless, it is still possible to alter the state of a valid transaction via a technique known as “double spend attack” that requires enormous processing power.

Here are the elements of a successful double spend attack:

1- The person performing the double spend attack *A *seeks a product or a service from another person *B*

2- *A *will create two bitcoin transactions; one that include payments for the product or service he seeks from *B* and the other pays the same amount to himself/herself.

3- *A *will broadcast the “*A *to *B” *transaction and then start secretly mining the block that includes the “*A *to *A” *payment. Once he/she successfully mines this block, further blocks will be added to it.

4- *B *will give the service or product to *A*, on seeing the transaction on the public ledger, whether or not the transaction was confirmed, if he/she doesn’t wait for the confirmation to send the products.

5- *A *can be lucky and the attack succeeds , if the fraudulent branch grows longer than the branch that includes the valid transaction when the nodes set up by the attackers broadcast all newly formed blocks to the new branch and all other nodes on the network agree on considering the valid branch the one that includes the fraudulent transaction.

Figure 1: Elements of a Successful Double Spend Attack

**Two Classic Double Spend Attack Models:**

Before delving into the new models, we will shortly outline the basic elements of the classic attack models. There were 2 double spend attack models proposed by S. Nakamoto and M.Rosenfeld. To better understand the models, we shall set the following parameters:

– Quantity *q *∈ [0,1] represents the probability of success of attackers’ nodes to mine a block before the honest nodes given that they both started mining at the same time.

– Quantity *K *∈ N represents a threshold of the number of confirmations needed to validate transactions belonging to a certain block.

– Quantity *T *∈ R_{>0 } represents the time in seconds needed by the mining nodes, both the attacker’s and the honest ones, to successfully mine a block.

– Also, we will use an *N *subscript to point out functions used exclusively in S. Nakamoto’s model and an *R *subscript to point out functions used exclusively in M. Rosenfeld’s attack model

*DS _{N }(q,K)* and

*DS*represent Nakamoto’s and Rosenfeld’s models respectively for measuring the probability of success of an attacker to perform a double spend given that he/she controls

_{R }(q,K)*q*percent of the network’s nodes and the remaining honest nodes have successfully mined the

*K*

^{th }block.

**Two New Double Spend Attack Models:**

Two new double spend attack models were proposed in a research paper that was published a few days ago. The two models were named “The generalized model” and the “Time based model”.

**The Generalized Model:**

This model is a generalization mode of Rosenfeld’s model by adding an extra parameter to the formula that reflects the time advantage serving the attacker i.e. the time spent by the attacker to secretly mine the fraudulent block.

The Attacker potential progress can be represented by the following function:

*P (q, m, n, t)*

This function generalizes the progress of Rosenfeld’s model. Function *P *represents the probability of success of an attacker to mine exactly *n *blocks provided that the honest nodes have successfully mined the *m ^{th }*block (the proceeding block). The added parameter

*t*represents the time advantage serving the attacker’s nodes to produce the block containing the fraudulent transaction.

**The Time Based Model:**

This new model is different from Nakamoto’s and Rosenfeld models. Throughout this attack model, states are setup via determination of lengths of both the valid and fraudulent blockchain branches and the difference between the time needed by the honest and the attacker’s nodes to mine the block in question (block *n*)

The attacker’s progress function can be represented by the following function:

*P _{T} (q, m, n, t)*

The function represents that the probability of the time needed by the attacker’s nodes to mine the *n ^{th}* block is exactly equal to

*t*seconds after the time needed by the honest nodes to mine the proceeding block (the

*m*block).

^{th}**Conclusion:**

Two new double spend attack models were proposed by a group of researchers in a paper that was published a few days ago. The generalization model is a generalization mode of Rosenfeld classic attack model, while the new time based mode is different from both classic models; Nakamoto’s and Rosenfeld’s.

If you could mine 4 blocks faster than all the computers in the world mining the same 4 blocks…. its a bit silly, and building a computer that size would cost billions!… its a bit like saying my theory to brake the 1 billion mile per hour mark, il put one billion cars doing one mile per hour on top of the other and the one at the top will be doing 1 billion miles per hour breaking the speed of light!! sending me back into time… not going to happen anytime soon is it!?