Attack#1: Routing attacks can partition Bitcoin into pieces An attacker can use routing attacks to partition the network into two (or more) disjoint components. By preventing nodes within a component to communicate with nodes outside of it, the attacker forces the creation of parallel blockchains. After the attack stops, all blocks mined within the smaller component will be discarded together with all included transactions and the miners revenue. Attack scenario: Step 0: Nodes of the left and the right side of the network communicate via Bitcoin connections denoted by blue lines. Step 1: The attacker wishes to split the network into two disjoint components: one on the left hand-side and one on the right hand-side. Step 2: The attacker attracts the traffic destined to the left nodes by performing a BGP hijack. Step 3: Soon after the hijack, all traffic sent from the right to the left side is forwarded through the attacker (red lines). Step 4: The attacker cuts these connections, effectively partitioning the network into two pieces. Step 5: During the attack, nodes within each side continue communicating with nodes of the same side. Attack#2: Routing attacks can delay block delivery by 20 minutes An attacker can use routing attacks to delay the delivery of a block to a victim node by 20 minutes while staying completely undetected. During this period the victim is unaware of the most recently mined block and the corresponding transactions. The impact of this attack varies depending on the victim. If the victim is a merchant, it is susceptible to double spending attacks. If it is a miner, the attack wastes its computational power. Finally, if the victim is a regular node, it is unable to contribute to the network by propagating the last version of the blockchain. Attack scenario: Step 0: Nodes A and B advertise the same block to the victim, node C. Step 1: Node C requests the block via a GETDATA from node A. The attacker changes the content of the GETDATA such that it triggers the delivery of an older block from node A. Step 2: The older block is delivered. Step 3: Shortly before 20 minutes after the original block request made by node C, the attacker triggers its delivery by modifying another GETDATA message originated by C. Step 4: The block is delivered just before the 20 minutes timeout. The victim does not disconnect from node A. Источник: https://btc-hijack.ethz.ch/ Публикация: https://btc-hijack.ethz.ch/files/btc_hijack.pdf