Coin Network Clients Maintenance – Code Checkpoints – 51% attack
February 3, 2019 at 5:55 pm #625
Clients maintenance – checkpoints
Checkpoints which have been hard coded into the client are used only to prevent Denial of Service attacks against nodes which are initially syncing the chain. They prevent DoS attacks from nodes flooding unusable chains and attacks involving isolating nodes and giving them fake chains.
They prevent 51% attack on coin network.
The checkpoints are hard coded into the standard client. This enables it to verify its checkpoints against the copy of the block chain it has downloaded, ensuring that block chain has not been retroactively rewritten in a 51% attack. The concept is, that the standard client will accept all transactions up to the checkpoint as valid and irreversible. If anyone tries to fork the blockchain starting from a block before the checkpoint, the client will not accept the fork. This makes those blocks “set in stone”.
So every node maintains a list of checkpoints hardcoded into client. checkpoint must be hash of some legit block from blockchain, hardcoded same on every client.
This means that as the block chain grows, client software has to be updated to store new checkpoints within its code. This leaves clients that have not been updated for a long time vulnerable to attacks on the block chain.
So, checkpoints is block hash hardcoded into coin source code.
Let’s imagine a scenario where one organization controls more than 50% of hashing power in the network.
To understand this, we must understand how a 51% attack works.
Let’s imagine to have a huge house full of ASIC miners. Now we keep all this computers disconnected from the Internet and we install on them the coin protocol, launching the genesis block. All the ASIC miners begin to solve blocks and to produce coins, and obviously we are the owner of all the coins that exist on this parallel coin network. When our private blockchain becomes longer than the public one, we connect our machines to the Internet. At this point, two coin blockchain exist on the Internet but the coin protocol “sees” that our blockchain is longer, so it discards the public blockchain and we become the owners of all the coins.
Is it possible such a scenario?
In fact to do this thing we have to replay all the blockchain, and so each block of our private blockchain will have a different hash of the same block of the public blockchain.
But, because the hashes of this old blocks are hardcoded in coin software (checkpoints), the coin protocol will discard our fake blocks.
You must be logged in to reply to this topic.