 What do you think about the use of checkpoints? This is a question by Harvey and it doesn't come with any other detail What do you think about the use of checkpoints? I'm going to have to use a bit of extrapolation and Kind of interpret what I think this question means and what what it's referring to and what the really The seed of this question is so recently a couple of weeks ago the maintainers and developers of the Bitcoin cash ABC branch BCH ABC added a feature that was a bit controversial, which was a rolling 10 block checkpoint that prevents reorganizations That prevents reorganizations for 10 blocks so that means that you can't present a chain that reorganizes above 10 blocks and this rolling checkpoint is a feature that was intended to protect Bitcoin cash ABC against a specific type of attack Which is an attack that uses what's called secret mining and what secret mining is is where a rival hashing power is mining blocks Without releasing them without broadcasting them on the chain and then once it has enough distance So it mines a longer chain and then once it's achieved a longer chain by a Significant factor it then releases that chain and that chain causes a reorganization on the Victim chain I'm using the terms attack and victim here in computer security terms rather than political terms, so please don't read too much into it, but With secret mining you'd have one chain mining one group of mining power Mining secretly mining a whole blocks a whole set of blocks ahead say ten blocks ahead and then Broadcasting all ten blocks and along their chain in one go Forcing a reorganization of the entire chain and invalidating Say the nine blocks that the rival hashing power has mined already on the other chain and This is intended to cause disruption Primarily or to cause kind of like a hostile takeover a chain Not quite sure how you want to characterize that but that's certainly possible within the within the blockchain Logic now compare this to how Bitcoin works so to date the Bitcoin chain does not have a rolling check point meaning that the algorithm allows for a Reorganization of any length the largest we've seen was back in I believe it was April of 2013 or 2014 I'm not sure when we had a glitch in the version upgrade between 0.7 and 0.8 which caused an unplanned unexpected and Accidental not deliberate divergence of the of the blockchain into two competing chains The diverged for 26 blocks at the highest level and then one chain was selected Which caused the other one to be orphaned and the whole chain reorganized 26 blocks deep that's the deepest reorganization that's happened and on a almost daily basis you have one block reorganizations and Every month or so you have two or three block reorganizations and these happen due to simply The statistical variance in the number of blocks that come out within a ten minute period and how blocks are found in Different parts of the network with differing latency and they're seen by different parts of the network these calls normal Expected network forks where the Nakamoto consensus Temporarily forks where you have two possible Chains that are being seen by different parts of the network and then they reconverge when one of them achieves More hash rate than the other And eventually all of those reconverge and the longest we've seen is 26 Which is a very unusual event, but in any case There's never been a rolling checkpoint Now there's another type of checkpoint Which is a checkpoint which is hard-coded inside the software which? puts a bottom limit and says everything below this Block is considered Established history and cannot change what prohibits reorganizations below that And that kind of chain Checkpoint is different. So that's hard-coding a specific hash in the software and saying this this particular block cannot be reorged away Now And that was used in fact in the in the 26 block checkpoint, I believe so In the 26 block reorganization, I should say So what I think about this well this is a Change in the relative power of two different constituencies within the broader consensus mechanism if you think about and I've talked about this before Consensus is a multi-constituency power meaning that Consensus isn't just minors. It's not just developers. It's not just merchants. It's not just exchanges It's not just wallets. It's Five different groups of consensus with overlapping membership minors developers exchanges wallets merchants or if you like Minors developers and economically important node owners all contribute to Emergent consensus by deciding which rules to follow how to set the rules what software to use and When you put a Change in the algorithm of what can be reorganized and what cannot be reorganized into the software And you circulate that the software such as the rolling checkpoint What it does is it shifts a tiny bit of power away from minors and towards developers So now developers are changing the way the protocol behaves to reorganization. They're preventing certain classes of reorganizations if you put hard-coded checkpoints, that's a more serious and more direct change of power because now Developers are deciding which chain is valid rather than allowing the proof-of-work consensus algorithm to make that decision independently therefore the minors to make that decision together so All of these these types of changes and checkpoints do represent a slight shift in power in the consensus mechanism away from one group and towards another group and then it's really up to you to decide what you think about how Serious this change of power is whether it's a change of power that is justified For example, you might think that in the case of a deliberate secret mining attack Or when someone has actually threatened to do exactly that and has telegraphed that they will do that and spend millions of dollars doing that purely to damage a Chain in a competition between two forks Then is that a reasonable? Is that a reasonable response? To my mining group trying to take more power Is there reasonable response for the developers to take more power by changing the rules of reorganization or take even more power by Setting a hard checkpoint or repeated hard checkpoints in the software to prevent any reorganization again, that's a subjective thing and That's objective thing which is the decisionist whether you think this is a valid change or not is how you express your role in consensus as a valid economic user of the softwares because nodes that have economic power nodes that use The the chain in order to do transactions that generate transaction volume that are generating real truth economic activity merchants exchanges wallets End users big big companies big whales People who are doing a lot of transactions, whatever that may be They choose what software to run and in choosing what software to run That's their contribution to the emergent consensus And so if you see developers making this change you can choose to run the software That you had before you can choose to upgrade to the new software and in choosing you are expressing your own consensus vote