I have been running a full node for little less than a year and I am following the discussion around blocksize increase. I am for it.

Who actually can make a decision whether the blocksize increase gets committed to the bt core? Is a majority vote from core devs required? Obviously Gavin Andersen, an outspoken core developer is trying to convince someone with his blog posts. Whom?

Also how can the public coordinate their desire for blocksize increase? Everyone posting in their blogs is not going to cut it, or?

  • Everyone. :) You choose by what software you run.
    – morsecoder
    Jun 1 '15 at 19:03

Who actually can make a decision whether the blocksize increase gets committed to the bt core?

Any person who has rights to commit changes to github.com/bitcoin.org

Also how can the public coordinate their desire for blocksize increase?

The only way is voting by hashpower. Have a look to BIP-16

  • That is kind of obvious answer, the person with commit access. So Gavin or any other dev can just commit the larger blocksize, with other devs possibly reverting it?
    – Dmitrii I.
    Jun 1 '15 at 19:51
  • 2
    technically speaking, yes
    – amaclin
    Jun 1 '15 at 20:51
  • I actually thought this is what the question was getting at also Jun 1 '15 at 23:20

This situation is unprecedented in the software world. In other peer-to-peer systems (think Skype or Bittorrent or whatever), software updates fix bugs or add new features, and if the user doesn't update their software the worst that can happen is that their program will run with some problems.

In Bitcoin the situation is drastically different because the system is entirely based on reaching consensus on something. Bittorrent or Skype don't really need to reach consensus on anything. Sure there's still a protocol that clients should follow for the system to work as expected, but even if these rules are slightly different from client to client, overall the system still functions.

With Bitcoin, consensus is what makes the whole system possible. The rules behind how to reach consensus are embedded (actually hardcoded) inside the client/node that all the people are running. Now, if there's some clients that have different rules than others regarding the consensus, then the whole system branches into different versions creating effectively different versions of Bitcoin.

In fact, one can go ahead and say that Bitcoin is exactly the set of rules (the actual algorithm) to reach consensus. If you're not using those rules, you're not using Bitcoin, you're using something else (Bitcoin 2.0, Litecoin 2.0, whatever...).

Now you understand why this is really an unprecedented situation in the software world (perhaps apart from the fork of 2013). If you change the rules then you're effectively creating a new version of Bitcoin and you must make everyone move onto your new version - and I'm not talking about only miners here; all people that are running clients on their phones, or on their computers; all the web wallets; all the exchanges. They all must update their code otherwise you've essentially created another system which is not Bitcoin.

So to answer your question about "who makes the decision about the rules", it's the actual people running the bitcoin software that decide at the end of the day.

EDIT as was noted in the comments, regarding the specific block size issue, SPV clients don't actually need to be updated because they don't check the size of the blocks - they trust the miners will do the checking for them.

  • 2
    It's incorrect to say that everyone must update. SPV clients don't verify the block size, so they don't need to update. The only software that needs to update are full nodes (because they verify block size). (To actually make bigger blocks, some mining software may also need to be updated.) Jun 1 '15 at 19:21
  • 1
    This is true specifically for block size, but not for other rules of consensus which is the main point I was trying to make (will update my answer to be more clear). Jun 1 '15 at 19:57
  • The only parallel I can think of is Python 3.x not being back compatible with 2.x Jun 1 '15 at 23:18
  • Since you argue the counterpoint to @amaclin, it would be interesting to read why you think it is not mining that decides, but the people running the software. Perhaps you could elaborate on that point, since it is the main issue of the question.
    – Murch
    Jun 2 '15 at 15:50
  • @Murch many clients, not just miners, rely on independently verifying the blockchain. I would argue that there are many more of these clients than there are miners. Even if all the miners change to a new version, all the clients that haven't changed to the same version with the same rules will not accept the new blocks being mined. So it's not just the miners that decide. Jun 2 '15 at 21:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.