Closed aistrych closed 5 years ago
1 - the issue im thinking is that by exposing the checkpoint values you lower the difficulty for someone to fork the network with their own chosen checkpoints.
Of course they could just compile their own binaries, but this is slightly more difficult/
When the values are hardcoded in the source, there is an implicit authentication by merit of it being auditable on github.
Checkpoints are ultimately a centralized mechanism. If you need a centralized mechanism its good to authenticate it, and luckily we have a cryptosystem can strong authenticate things :smiley: I wonder if the checkpoint list could be pink signed by like, a large wallet it also lends itself to the stake model, where a large wallet is staking check points incentive alignment You can hardcode the public keys as a root of trust for checkpoints now, but you could build a system that queried the chain for ultimate trust anchor
Caligo's opinion:
Configurable checkpoints are not dangerous because they are localized and not broadcast to the network. It makes it easier to create your own fork, but not fork the network - if you try to fork the network with them the network will block you unless your fork somehow manages to generate a greater chaintrust than the main chain which would be the case anyway without checkpoints.
The reason hardcoded checkpoints and live checkpoints need to be validated is because they are enforced by every client network wide.
You're essentially directing your own wallets behavior on the network. But the network wont follow you if you choose to fork, or create a hundred nodes that choose to fork with you, because that's not how the network determines which chain to trust;)
Checkpoints are only useful historically. You can't plan your checkpoints in advance.
It's important to realize that on the live network, local checkpoints don't do anything to keep people in sync with the network. That's what the live checkpoints system does. The purpose of local checkpoints is to assist someone in syncing to the correct chain after they have already forked or when there is risk of syncing to a forked chain.
Sounds good to me. Caligo has outlined their use and clarified it would not permit predetermined checkpoint attacks. Lets merge it!
Adds new configuration option placed in
pinkconf.txt
/pinkcoin.conf
file as well as on command line. Allows extending hardcoded checkpoints list with new ones passed as a wallet configuration. Overwrites of hardcoded checkpoints are ignored.Example usage in case of issues with syncing to the proper (best) chain:
Can be also useful in syncing on testnet (which doesn't have hardcoded checkpoints).