Author

Topic: Bitcoin code has checkpoints, controlled by centralized small group of people. (Read 1534 times)

newbie
Activity: 28
Merit: 0
You are misunderstanding what this solves. Believe me, if some easy solution would have existed, it would be there already.

So, what does it solve?

Essentially a fork before such checkpoints would destroy the network. Although the probability is low, this is a very non-trivial effect. Checkpoints eliminate the possibility.

If somebody has huge computing power - it can ruin bitcoin in many ways. Checkpoints eliminate only one of ways, but it still can be destroy in many other ways with such computation power.
Let say, there 32 ways to destroy Bitcoin using high computing power, checkpoints eliminates only 1 of 32. But there still 31 other ways to use this power - so, really checkpoints do not bring anything except compromised credibility of decentralization.
member
Activity: 70
Merit: 10
You are misunderstanding what this solves. Believe me, if some easy solution would have existed, it would be there already. Essentially a fork before such checkpoints would destroy the network. Although the probability is low, this is a very non-trivial effect. Checkpoints eliminate the possibility. Yes, the pure algorithm in the paper and reality can diverge rather strongly. The downsides of this approach are in a way trivial, as long as enough people ensure the codebase is not corrupted. Centralization is a problem, but it is not at all binary. And yes, Bitcoin as an ecosystem is much more central than one could hope for. But there are very good reasons for that, and changing this is an extremely hard problem.
newbie
Activity: 28
Merit: 0
Well, it is quite likely than these issues have been raised before and thought of by smart people. This is consensus by authority I guess. Improving the system is a very hard problem.

https://bitcointalksearch.org/topic/bitcoin-032-released-437
https://bitcointalksearch.org/topic/bitcoin-is-not-as-advertised-1647

Thanks for links - it just shows that many peoples have similar view that creditability is compromised by checkpoints, and checkpoints solves really tiny problem, which is not an issue at all.
On the other side developers still did not removed checkpoints since 2010 (congrats, nice decentralization, and consensus!) because they afraid of something, or have some strange interests to destroy Bitcoin credibility.

Bitcoin advertised decentralization as the main feature. I think people should know that it is not as decentralized as advertised.
member
Activity: 70
Merit: 10
Well, it is quite likely than these issues have been raised before and thought of by smart people. This is consensus by authority I guess. Improving the system is a very hard problem.

https://bitcointalksearch.org/topic/bitcoin-032-released-437
https://bitcointalksearch.org/topic/bitcoin-is-not-as-advertised-1647
newbie
Activity: 28
Merit: 0
You should discuss this topic in Development & Technical Discussion section only. In Newbie section this duscussion is useless, no dev reading here I bet.

I agree, we should move to https://bitcointalk.org/index.php?topic=194078.40 (now I can post to it).
If anyone feels that this is important issue - please, post a couple of sentences here - https://bitcointalk.org/index.php?topic=194078.40 , in order to show attention/importance.
hero member
Activity: 770
Merit: 500
Bitcoin is probabilistic. The scenario you mentioned does not make much sense, because nobody would waste his resources in that way. There are other ways to break consensus, namely through Alt-Coins. If you have developed a far superior mechanism people would flock to that.

I agree that this scenario is highly unlikely. But I am more concerned by decentralization credibility issues.
Checkpoints set by small group of people - hurt faith in Bitcoin decentralization, which is the main advantage over other currencies.

On the other side - checkpoints solve very little and rare problems, which do not worth losing decentralization credibility. Moreover such problems can be solved in other ways.

You should discuss this topic in Development & Technical Discussion section only. In Newbie section this duscussion is useless, no dev reading here I bet.
newbie
Activity: 28
Merit: 0
Bitcoin is probabilistic. The scenario you mentioned does not make much sense, because nobody would waste his resources in that way. There are other ways to break consensus, namely through Alt-Coins. If you have developed a far superior mechanism people would flock to that.

I agree that this scenario is highly unlikely. But I am more concerned by decentralization credibility issues.
Checkpoints set by small group of people - hurt faith in Bitcoin decentralization, which is the main advantage over other currencies.

On the other side - checkpoints solve very little and rare problems, which do not worth losing decentralization credibility. Moreover such problems can be solved in other ways.
newbie
Activity: 28
Merit: 0
But what will happen if anyone will have such high hashing speed being able to create new blockchain since beggining with bigger work amount than the one we are using? Bitcoin would become immediatelly dead because no transaction in current blockchain would be valid and the attacker would have all the Bitcoins

Yes - this is nature of Bitcoin Proof-by-Work, decision of majority is determined by computing power. It has both advantages and disadvantages.
If there is stronger power than computation capacity (checkpoints), which belongs to small group of people - then Bitcoin is centralized currency. You should either accept centralization (and then do not call Bitcoin decentralized) or vote by computing power.

Moreover, if somebody has such computer power he could ruin bitcoin in other ways even with checkpoints. Having such computing power it is possible to reject all new transactions, and produce only empty blocks - checkpoints do not protect from this.
Checkpoints help only in very small number of rare cases, but same purpose can be achieved by other approaches ( https://bitcointalksearch.org/topic/m.3008155 ).
member
Activity: 70
Merit: 10
There is not other block-chain with bigger combined work amount, so checkpoints in Bitcoin-qt are correct ones

How do you know that there is no other block-chain with bigger work amount?
Perhaps fork started right from genesis block, and was mined all the time at private cluster at super high-speeds (now on cluster of asics).

Bitcoin is probabilistic. The scenario you mentioned does not make much sense, because nobody would waste his resources in that way. There are other ways to break consensus, namely through Alt-Coins. If you have developed a far superior mechanism people would flock to that.
member
Activity: 70
Merit: 10
Very important observation and issue. I agree that Bitcoin as an algorithm is much more integrated with the developers, the community, etc. than most want to believe. So a lot of trust is required for some very few individuals to run the network. There is very little awareness of these issues. The comment in the sourcecode reads

    // What makes a good checkpoint block?
    // + Is surrounded by blocks with reasonable timestamps
    // (no blocks before with a timestamp after, none after with
    // timestamp before)
    // + Contains no strange transactions


The vote by computing power / economic majority is something very different from consensus of users and consensus of developers.  

In the end you are always free to improve the ecosystem (algorithm + mechanisms). Indeed here lie some major weakness in terms of the pure P2P aspect. "contains no strange transactions" is not exactly a principle one can rely on.
sr. member
Activity: 552
Merit: 250
But what will happen if anyone will have such high hashing speed being able to create new blockchain since beggining with bigger work amount than the one we are using? Bitcoin would become immediatelly dead because no transaction in current blockchain would be valid and the attacker would have all the Bitcoins
newbie
Activity: 28
Merit: 0
There is not other block-chain with bigger combined work amount, so checkpoints in Bitcoin-qt are correct ones

How do you know that there is no other block-chain with bigger work amount?
Perhaps fork started right from genesis block, and was mined all the time at private cluster at super high-speeds (now on cluster of asics).

How we would select right chain? Well, Bitcoin is decentralized. And no small group of people should decide which branch is correct and which is not.
Checkpoints hardcoded in code were selected by small group of people.
But if Bitcoin is still claimed to be decentralized, not controlled by government, small group of people (which can be blackmailed, or forced by thermo-rectal cryptanalysis) - then only majority of users should have right to make decision.

Users should vote on which branch is correct and which is not. Bitcoin already has such voting mechanism - vote by computing power.


Of course hidden fork crunched in shadow is unlikely, and maybe checkpoints do not harm due low probability of such fork.
But they harm in other way - they compromise Bitcoin decentralization, which is in my opinion is the biggest attractive feature of Bitcoin.
Today they add checkpoints, tomorrow they could freeze BTC on your address, by adding small tweaks to validation routine (just like checkpoints validation).
sr. member
Activity: 315
Merit: 250
You can use different Bitcoin client, so far Bitcoin-qt is fair and dont misuse the checkpoints

It is not just change of button color or font size, it is protocol specification change.
If one fork has checkpoints and other does not - then they do not have consensus on how to select main blockchain, and this could lead to blockchain fork (at least theoretically).
Bitcoin already has consensus mechanism, and it is the foundation - block-chain with bigger combined work amount is the winner, period.

There is not other block-chain with bigger combined work amount, so checkpoints in Bitcoin-qt are the correct ones
newbie
Activity: 56
Merit: 0
Wow, great piece of information. I have never known about it
newbie
Activity: 28
Merit: 0
You can use different Bitcoin client, so far Bitcoin-qt is fair and dont misuse the checkpoints

It is not just change of button color or font size, it is protocol specification change.
If one fork has checkpoints and other does not - then they do not have consensus on how to select main blockchain, and this could lead to blockchain fork (at least theoretically).
Bitcoin already has consensus mechanism, and it is the foundation - block-chain with bigger combined work amount is the winner, period.
sr. member
Activity: 315
Merit: 250
You can use different Bitcoin client, so far Bitcoin-qt is fair and dont misuse the checkpoints
newbie
Activity: 28
Merit: 0
In a same way as we have checkpoints now, it is possible to freeze BTC on particular address - tune a bit validation rountine (just like checkpoints validation), wait for update of majority of clients - and vu à la. I bet, governments would love this feature, keep going!
Any kind of such validation is poison to trust for the most important of Bitcoin features - decentralization.
newbie
Activity: 28
Merit: 0
It is follow-up of https://bitcointalk.org/index.php?topic=194078.40 (I can't post reply on that topic).

Proof-of-Work for maintaining "distributed consistency" in DECENTRALIZED PEER-TO-PEER network is the most innovative part of original Bitcoin paper.
Block-chain with bigger combined work amount is the winner, period. No single person or group of people should make decisions which branch is legal and which is not - it is against fundamental principles of Bitcoin.
If there is centralized regulation - then do not call it DECENTRALIZED.

Current version of Bitcoin has list of embedded checkpoints - https://github.com/bitcoin/bitcoin/blob/master/src/checkpoints.cpp
As stated in follow-up thread one of purposes of such checkpoints is to help new client initialization to reject potential spam from malefactor.
Same purpose can be achieved via hard-coded MAIN_CHAIN_MIN_POW as TierNolan proposed ( https://bitcointalksearch.org/topic/m.3008155 ) - and this approach does not ruins whole Bitcoin foundation as checkpoints.
Jump to: