For Bitcoin and the rest of the cryptocurrencies, security is a critical, fundamental point. These networks are designed to handle millions of dollars of investors and users around the world, so measures are needed to ensure their proper functioning. Such measures include the creation of checkpoints.
In this exclusive article of CryptoNews, we will tell you what they are, how they work and other details about these elements that work within the protocol of several cryptocurrencies of the ecosystem, including Bitcoin, where Satoshi Nakamoto himself placed certain lines of code to establish this type of control.
What is a checkpoint?
When we talk about a checkpoint, we mean a line of code that seeks to protect the chain of blocks against block reorganization attacks. The idea is that there is a way in which honest network members, mainly node operators, can recognize the well-formed blocks, the most current state of the network and the chain with the most proof of work.
Whether it is a block retention, with the secret mining of an alternative chain to the one backed up in the most current blockchain, or a 51% attack, where an entity owns more than half of the network hash rate, deciding which blocks are included at will, checkpoints seek to minimize the chances of these attacks being successful.
This means that all transactions up to the checkpoint will be taken as valid and irreversible. Taking a block before the checkpoint to branch the chain will be useless: the nodes will not accept the branch. The registration of the blockchain is assured since the control point establishes a limit for the nodes to verify the blocks.
How do checkpoints work?
Checkpoints set limits so that honest nodes have a reference to recognize the correct blockchain. This line of code complies with the registry receipt, making any string that does not contain the mark to be ignored. It is usually a line that specifies a specific block from which the network nodes should be synchronized.
Developers select the block height (X) from which the string should be recognized. Besides, developers add signed and centrally issued checkpoints to the client software. This line of code indicates that the X block has been validated as part of the honest chain so that it can be taken as a reference.
Checkpoints prevent denial of service attacks from causing nodes to be isolated or flooded with fake chain blocks. According to some Bitcoin developers such as Peter Todd, we are talking about a feature that is especially useful for the initial blockchain download.
Some examples of checkpoints
Even the Bitcoin protocol has checkpoints in its protocol. Although these types of code lines have ceased to be added since 2014, Bitcoin’s reference client, Bitcoin Core, has several older checkpoints, although any other client implementation is free to add more or remove existing ones.
It is worth noting that Bitcoin has 13 encoded checkpoints, but they do not change the security model the way the issued checkpoints do. The last checkpoint was added to Bitcoin Core 0.9.3 and is found in block 295.000, created on April 9, 2014. These old checkpoints allow an increase in performance (omitting signature verification) by initially synchronizing the historical blockchain.
Jameson Lopp, CTO, CasaHODL
The BTC fork, Bitcoin Cash (BCH) also has checkpoints, although in this case, it was a measure to prevent Bitcoin Satoshi Vision (BSV) supporters from manipulating their records. The team decided to go for checkpoints when hostilities between Bitcoin ABC (the main people responsible for the BCH reference client), and BSV supporters and miners threatened their network.
The code was added in November 2018, just before BSV bifurcated to increase the size of the blocks and added other modifications to the Bitcoin ABC reference client. This decision generated many controversies, especially as the developers added the code without announcing it. Checkpoints are signed every ten blocks, automatically, by the node software.
The network focused on digital cash, Dash, also has its own checkpoint scheme, although in the case of this project, the checkpoints are called ChainLocks, and operate on the masternodes of the network, which operate with a stake of 1,000 DASH, which is equivalent to about USD 92,000 if we consider current market prices.
In this case, checkpoints consist of votes between masternode operators, which also work with a new quorum mechanism between this type of nodes called Long Living Masternode Quorums (LLMQs), a new system for recording and blocking transactions. The idea is that there is a verifiable vote among the masternodes of the network on the approval of the blocks that are added and propagated to the rest of the nodes. The consensus of these operators creates the control point. The ChainLocks must be evaluated by the masternodes every six blocks, although the time in which the blocks must be signed to establish the checkpoint is not specified. In DIP8, where it was proposed, it is read “periodically.”
Criticism against checkpoints
While such controls reduce the likelihood of attacks, they also imply some confidence in the goodwill of the development team, because as users, we assume that control points are genuinely valid, even though they depend on the work and approval of programmers. We take for granted the good faith of developers when applying checkpoints.
Besides, this type of control decisions could generate a considerable decrease in the insurability of transactions, adding the possibility that developers collude with other network users (especially miners and operators of nodes or masternodes) to add the transactions they decide at their discretion.
In both cases, the criticism is centered on the reduction of decentralization brought about by the addition of such controls.
As we have seen, checkpoints are an issue that accompanies Bitcoin from its early stage, and even Satoshi Nakamoto himself added several to the Bitcoin reference protocol. Its goal is to increase the security of the registry in the chain of blocks, although improving in this area also has a cost in terms of centralization.