Showing posts with label selfish mining. Show all posts
Showing posts with label selfish mining. Show all posts

Monday, 16 May 2016

Preventing Selfish Mining In The Blockchain

The principle of the blockchain is that a "miner" is rewarded for being the first to solve a mathematical problem.  If you're new to Bitcoin I suggest you spend some time watching this video. One of problems with the principle is that it assumes everyone who solves the problem first, actually provides the block that they have in order to continue to build the blockchain.  If a node in the network acts "selfishly" (ie it withholds the block) it can delay transactions and/or waste computing power elsewhere in the network.  It has been an open question as to how one prevents this.

Simply delaying a transaction or making the network work harder wouldn't seem to be much of an attack but it matters for several reasons:

  1. The blockchain already has a relatively slow update frequency and so if it is to compete with other transaction systems it has to be sure of being as fast as it can be, and free from possible malicious slowing effects.
  2. The problem in the protocol is designed to become progressively harder to solve as time progresses so anything that adds to the computational power required in the network can only make it less economically for people to act as miners.
  3. If someone can disrupt your financial transaction engine, albeit just a delay, it will erode trust in the robustness of the system.