Gustav Simonsson
May 26, 2018 · 1 min read

You make a good point but the conclusion is too narrow — even with checkpoints anyone could always run an archive node and verify everything from the genesis block.

Checkpoints are fully compatible with the “Don’t trust, Verify” philosophy — the first checkpoint is verified by running full verification from the genesis block. The second checkpoint is verified by running full verification from the first checkpoint, etc. This effectively forms an inductive verification all the way back to the genesis block, and it’s extremely hard to after-the-fact try to fool everyone on the Internet to manipulate a past checkpoint.

The trust in a past checkpoint is no different than the trust in a specific installation of a specific blockchain client implementation. How do you trust that your Bitcoin client is correctly executing the protocol? You have trust in your download (or compile, in which case your download of the source code) which is trust in centralized parties.

When you go down the rabbit hole of verification, you always end up trusting something, and trusting a checkpoint is fundamentally not different from trusting that the code running in my Bitcoin client is of a specific version.

    Gustav Simonsson

    Written by