Feathercoin has announced advanced checkpointing in its block chain to protect against 51% attacks. The advanced checkpointing (ACP) feature will remove the need for changes to client software by publishing a feed of checkpoints, via a central node.
Checkpointing is a lesser known part of cryptocurrencies. It's a way to maintain the integrity of the block chain by recording blocks out of it. In bitcoin, checkpoints are stored in the code of the 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.
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.
The Feathercoin team has sought to solve this problem by separating the checkpoint record from the client software. The team have created a "master node" and updated its client software to version 0.6.4.3, which will publish the series of checkpoints for Feathercoin clients to check against.
While it would be difficult for a 51% attack to be carried out against a network as large as bitcoin's, Feathercoin has already suffered a 51% attack. The basic checkpoint system that was in place at the time fortunately helped prevent long term damage to the currency.
"I am trying to make a safe environment for miners and merchants. We had some large scale attacks when our hash power was much less than we see now. During that time, miners had a large number of blocks orphaned. Some lost days worth of mining," said Feathercoin founder, Peter Bushnell. "This is unacceptable and considering the scale of these attacks I think it is absolutely important to make sure that the attackers are not able to take control of the network like this again."
He wants ACP to be distributed as this would provide an effective solution that is closer to Satoshi's original idea that bitcoin has to remain decentralised. "However, there are trade offs even in bitcoin – there are checkpoints in the bitcoin client which are defined by the developers. No one else can put checkpoints in bitcoin other than the devs."
He went on to say:
"For it to be decentralised they would need to hold their own copy of the block chain and would checkpoint independently. The block that gets checkpointed would be the one that the majority of the nodes agree upon. So a node in the UK and Australia might have checkpointed different blocks, it is up to the rest of the world to choose between them by which blocks turn up in the nodes block chain.
"What we would have to do is find trusted nodes. It would make sense that this belongs to the miners. So all the major pools should be nodes as this is where the miners are. Currently the difficulty is too high to solo mine, the only person solo mining are the attackers. These are future plans but right now there is only one node checkpointing and I am the only person with access to the node."
In answer to concerns that Bushnell himself could exploit the system, he pointed out that no one can roll back the chain with ACP.
He said he was once asked what he would do if someone said they would chop his fingers off if he didn't roll back or join a chain of their choosing. "That would be a very unfortunate misunderstanding and I would lose all my fingers!" He said.