Consider in a block-withholding attack (aka selfish mining attack), attacker after creating a new block decides to broadcast this new block only to a fraction of network, such that eventually only a part of nodes will receive this new block and the rest of network will not receive it.

In my opinion, it will not be possible, because when attacker sends new block to one or some of host nodes, they eventually broadcast this block to whole of network, meaning that eventually all honest nodes will receive this new block. Am I right? or this attacker is able to prevent a fraction of honest nodes from receiving this new block?

1 Answer 1


This will generally not work, because as you said, if an honest node receives the block, it will propagate it to all of its peers, who will do the same, and so on.

Even if the attacker controls a large number of nodes on the network, he/she will have to ban every honest node to have a guarantee of them not receiving the block. If that is done, the attack is basically operating on their own fork of the chain.

The fork may very well be valid, and if broadcasted to the rest of the network later on with more work, it will become the canonical chain. Such attacks of withholding and then broadcasting have been used in the past, usually as part of a double spend attack (like on the Bitcoin Gold chain recently).

If you want to prevent broadcast to a subset of honest nodes, but still broadcast to some honest nodes, you would likely have to use techniques such as BGP rerouting. In short, an attacker reroutes BGP such that two different real world networks cannot communicate. This results in all nodes in each network failing to talk to all nodes in the other one, regardless of if they are honest or not. This will then result in a chain split, since each section of the network will continue functioning as if it is the only version of the network.

  • Thank you, just i think your sentence: "on their own fork of the" is not complete. Thanks
    – Questioner
    Jul 26, 2018 at 21:11
  • Thank you, And do you mean even using BGP rerouting attacker is not able to withhold the block only for a subset of network? Thanks
    – Questioner
    Jul 26, 2018 at 21:54
  • 1
    You could theoretically perform a BGP routing attack that can cut off specific nodes from the network, in which case you would effectively withhold the block, at least until BGP is fixed. Jul 26, 2018 at 22:19
  • Thank you, exactly my question is that "why theoretically" ? and why not "in practice" ? Thanks
    – Questioner
    Jul 26, 2018 at 22:22
  • 1
    BGP rerouting at that scale for any significant amount of time is not practical, you will be detected and shut down. Jul 26, 2018 at 22:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.