Probability Analysis

These graphs show the probability of a successful fork.

The top shows the probability of an attacker catching up to some chain given two parameters: the amount of mining power possessed by the attacker, and the amount of blocks by which the honest chain is ahead.

The bottom graph is a mirrored image, as it shows the probability that a transaction is safe after some k number of confirmations.

Let’s look at the top graph first.

The blue line represents the probability of an attacker with 10 percent of the network hashrate successfully producing a chain of equal length to the honest network.

Even just catching up to one block is only a 20 percent chance, and it tapers towards zero quickly.

The curves generally look like an inverse exponential curve, in that the probability starts off high but then quickly drops towards zero.

The exception is mainly with the 50 percent model.

As you can see, the 50 percent model has a probability of 1 no matter what.

In other words, an attacker with 50 percent of the network hashrate has a 100 percent chance of creating a chain of equal length to the honest chain.

There’s a lot of fancy statistics to get to these exact values, but we’ll save that for readings.

To quickly comment on the second graph, you’ll notice that it’s a flipped over version of the top graph.

This is because there’s only two possibilities that we’re considering with any transaction: its chain is the longest chain, or it’s invalidated by a longer chain.

Because of this, the probability of one event is 1 minus the probability of the other.

In addition, this leads us to the following conclusion: if the attacker has 50% of the network hashrate, then we have a 0 percent probability that our transaction is ever safe.

At any time, the 50% attacker can produce a chain that will catch up with the rest of the honest network.

With more than 50%, say 51%, I will always be able to double spend.

I will always be in full control of which blocks are included within the history of transactions.

Goldfinger Attack