Majority is not Enough: Bitcoin Mining is Vulnerable



Yüklə 0,67 Mb.
Pdf görüntüsü
səhifə4/7
tarix15.10.2018
ölçüsü0,67 Mb.
#74179
1   2   3   4   5   6   7

When the public branch is longer than the private branch, the selfish mining

pool is behind the public branch. Because of the power differential between the

selfish miners and the others, the chances of the selfish miners mining on their

own private branch and overtaking the main branch are small. Consequently, the

selfish miner pool simply adopts the main branch whenever its private branch

falls behind. As others find new blocks and publish them, the pool updates and

mines at the current public head.

When the selfish miner pool finds a block, it is in an advantageous position

with a single block lead on the public branch on which the honest miners operate.

Instead of naively publishing this private block and notifying the rest of the

miners of the newly discovered block, selfish miners keep this block private to

the pool. There are two outcomes possible at this point: either the honest miners

discover a new block on the public branch, nullifying the pool’s lead, or else the

pool mines a second block and extends its lead on the honest miners.

In the first scenario where the honest nodes succeed in finding a block on the

public branch, nullifying the selfish pool’s lead, the pool immediately publishes

its private branch (of length 1). This yields a toss-up where either branch may

win. The selfish miners unanimously adopt and extend the previously private

branch, while the honest miners will choose to mine on either branch, depending

on the propagation of the notifications. If the selfish pool manages to mine

a subsequent block ahead of the honest miners that did not adopt the pool’s

recently revealed block, it publishes immediately to enjoy the revenue of both

the first and the second blocks of its branch. If the honest miners mine a block

after the pool’s revealed block, the pool enjoys the revenue of its block, while

the others get the revenue from their block. Finally, if the honest miners mine

a block after their own block, they enjoy the revenue of their two blocks while

the pool gets nothing.

In the second scenario, where the selfish pool succeeds in finding a second

block, it develops a comfortable lead of two blocks that provide it with some

cushion against discoveries by the honest miners. Once the pool reaches this

point, it continues to mine at the head of its private branch. It publishes one

block from its private branch for every block the others find. Since the selfish pool

is a minority, its lead will, with high probability, eventually reduce to a single

block. At this point, the pool publishes its private branch. Since the private

branch is longer than the public branch by one block, it is adopted by all miners

as the main branch, and the pool enjoys the revenue of all its blocks. This brings

the system back to a state where there is just a single branch until the pool

bifurcates it again.

4

Analysis


We can now analyze the expected rewards for a system where the selfish pool

has mining power of α and the others of (1 − α).

Figure

1

illustrates the progress of the system as a state machine. The states



of the system represent the lead of the selfish pool; that is, the difference between


Fig. 1: State machine with transition frequencies.

the number of unpublished blocks in the pool’s private branch and the length

of the public branch. Zero lead is separated to states 0 and 0’. State 0 is the

state where there are no branches; that is, there is only a single, global, public

longest chain. State 0’ is the state where there are two public branches of length

one: the main branch, and the branch that was private to the selfish miners, and

published to match the main branch. The transitions in the figure correspond

to mining events, either by the selfish pool or by the others. Recall that these

events occur at exponential intervals with an average frequency of α and (1 − α),

respectively.

We can analyze the expected rewards from selfish mining by taking into ac-

count the frequencies associated with each state transition of the state machine,

and calculating the corresponding rewards. Let us go through the various cases

and describe the associated events that trigger state transitions.

If the pool has a private branch of length 1 and the others mine one block,

the pool publishes its branch immediately, which results in two public branches

of length 1. Miners in the selfish pool all mine on the pool’s branch, because a

subsequent block discovery on this branch will yield a reward for the pool. The

honest miners, following the standard Bitcoin protocol implementation, mine on

the branch they heard of first. We denote by γ the ratio of honest miners that

choose to mine on the pool’s block, and the other (1 − γ) of the non-pool miners

mine on the other branch.

For state s = 0, 1, 2, . . . , with frequency α, the pool mines a block and the

lead increases by one to s + 1. In states s = 3, 4, . . . , with frequency (1 − α),

the honest miners mine a block and the lead decreases by one to s − 1. If the

others mine a block when the lead is two, the pool publishes its private branch,

and the system drops to a lead of 0. If the others mine a block with the lead

is 1, we arrive at the aforementioned state 0’. From 0’, there are three possible

transitions, all leading to state 0 with total frequency 1: (1) the pool mines a

block on its previously private branch (frequency α), (2) the others mine a block

on the previously private branch (frequency γ(1 − α)), and (3) the others mine

a block on the public branch (frequency (1 − γ)(1 − α)).




Yüklə 0,67 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə