What are the different type of attacks on a blockchain network?


I was trying to consolidate a list of different types of attacks on a blockchain network and these are some of them I could find. How can each of these be defined and How are they all connected to each other?

51% attack / Double spend attack: A 51% attack, also known as the majority attack, is a widely known attack in the blockchain ecosystem. This attack involves the attacker being able to control >50% of the hash power of the network. Using this attack, the miner can double spend transactions to any number of confirmations. More confirmations do make this attack more expensive but cannot prevent it.

Blockchain reorg attack: During a 51% attack, the miner has more hashpower than the rest of the network. This means that the miner is able to create blocks of the same difficulty as the network at a rate faster than the rest of the network. This makes him able to trigger blockchain reorganizations at will.

Selfish/Stealth mining attack: In selfish mining, the miner does not follow the standard procedure for creating/adding a new block to the blockchain. The selfish miner instead mines the block continuously maintaining its track and fails to publish it to the network. The attacker only publishes the chain of the transaction to increase the amount of revenue earned and cause forking. The key idea behind Selfish Mining is for a pool to keep its discovered blocks private, thereby intentionally forking the chain. The honest nodes continue to mine on the public chain, while the pool mines on its own private branch. If the pool discovers more blocks, it develops a longer lead on the public chain and continues to keep these new blocks private. When the public branch approaches the pool’s private branch in length, the selfish miners
reveal blocks from their private chain to the public.


Great set of starting definitions.

The way I interpret selfish mining is as you have described it, a chain which is mined privately with the hope of creating a longer chain than that which is public. Once the privately mined chain has more than a single block lead, the selfish miner can release this longer chain and cause a chain re-organisation with other nodes switching from their fork to the newly published chain.

Blocks which were previously thought complete are no longer valid and any exchange who had processed transactions for it’s users based on those now invalid blocks will have to wear a potential loss and accept the new longer chain.

If you were following our proof-of-work study session, you’ll remember that we went over a paper detailing a selfish mining strategy, with a claim that selfish miners will be more profitable when executing the strategy, and other miners in the network would be incentivised to join to share in the profits.

I’m skeptical of the feasibility of this attack, and raised this with Ermin who still stands by his original view: https://twitter.com/el33th4xor/status/1080365380172947456?s=21

Interested to hear what others think about selfish mining attacks, are there examples of where this has occurred?