How can we trust supply won't be increased by just a few lines of code?
-
9I'd say a bigger worry in 2140 would be the size of the block chain ledger and whether or not there is enough bandwidth to efficiently pass it around the internet. It's already up to 350 GB...– stixCommented Jun 7, 2021 at 21:55
-
There are several arguments that would help quelm this. For starters, not every user on the network has to have a copy of the entire blockchain. They may only require the last $n$ blocks to sync with the network. Not every user must be a full node. The full nodes would store the entire blockchain. Additionally, Moores law states that size should not be an issue in 2140.– Hamish GibsonCommented Jun 9, 2021 at 11:47
-
1Relying on Moore's Law to solve the issue with large chain size is unrealistic, especially given that Moore's Law has slowed significantly in recent years. I like the argument of having lighter nodes for the average user, and have seen plenty of blockchains take this approach.– Matthew LudwigCommented Jun 9, 2021 at 15:47
-
@HamishGibson Moore's law has both been shown to be incorrect in recent years and has nothing to do with internet transfer speeds or the cost of storage space– BitspleaseCommented Jun 9, 2021 at 16:25
3 Answers
The bitcoin network is composed of 'bitcoin full nodes', which are computers located all around the world, each one running independently to verify the state of the network.
Part of that verification includes making sure that the right number of coins are being created with each passing block, such that the total number of coins in existence is known, and predictable.
To change this 'coin issuance schedule', you would have to change the code running on all of those computers, so that they would all independently agree on some new issuance schedule, and could all continue to verify which blocks are valid (or not), in independent consensus. If you could only change the code on some of those computers, then those computers would start to follow blocks which the remaining bitcoin network nodes would consider invalid, effectively creating an altcoin-fork of the network (similar to what happened with 'bitcoin cash').
Anybody, at any point in time, could create some software that changes the issuance schedule. Thats easy. The hard part is convincing everyone that is running a bitcoin full node to switch to this new code, which creates more coins. Nobody has the authority to push such a change onto the network (top-down governance), rather it is the independent choices of all of the network's nodes (bottom-up governance) that defines the network.
So the answer is that you don't have to trust someone to not increase the supply. You just have to run some code that will verify that they haven't.
-
6@Jiminion doing so would simply cause those computers to fork off (creating an altcoin network), & any computers running the original code would just ignore them, and continue on as normal. There is some nuance (ie, how much hashpower each network would have pointed at it), but importantly: even if a majority of nodes try to change the rules, that would not force the remaining nodes to follow suit. You may be confusing this with a majority attack, in which the attacker controls >50% of the hashpower (but such an attacker would not be able to arbitrarily change the network rules either).– chytrikCommented Jun 7, 2021 at 21:19
-
1The thing is that if majority ofplayers are convinced to follow the fork, then the remaining ones in the old network will be screwed. That's another thing though. Commented Jun 8, 2021 at 12:03
-
1"you would have to change the code running on all of those computers" doesn't this happen each time the core codebase is updated for non-backward-compatible changes such as some performance, most bug fixes, the proposed switch to proof-of-stake or other reasons anyway?– MooCommented Jun 9, 2021 at 0:31
-
2There has never (that I'm aware of) been a credible proposal to switch bitcoin to proof of stake. And no, generally speaking new releases of Bitcoin Core do not contain backward-incompatible changes. (That's one of the key differences between Bitcoin and, say, Ethereum.) Commented Jun 9, 2021 at 1:02
-
2There are some technicalities -- old clients can sync the network past major changes like segwit/taproot, but they will not understand or validate scripts from the "new world" -- they will treat them as automatically true. However, they will also never generate addresses of their own which use such scripts, so this does not threaten their own security. Depending on their age, and the address format used, they may or may not be able to send to newer scripts they don't understand. Commented Jun 10, 2021 at 8:09
Well, the title is the only question, how can we trust supply wont be increased by just a few lines of code?
Just don't make any such changes to your code and you will never see an increased supply. You control the code running on your computer. If you never want to see an increased supply, never change your code in that way.
You can, of course, only interoperate with people who also don't want to see an increased supply. So the real issue has nothing to do with changes in code, it has to do with wanting a guarantee that there will still be people who don't want changes in the supply for you to interoperate with.
But you cannot ever force anyone to interoperate with you if they don't want to.
-
2Watching Bitcoin desync because half the world wants to increase supply and half doesn't would be fun.– JoshuaCommented Jun 8, 2021 at 20:37
-
2Great answer that explains in laymans terms the underlying technical details. I especially liked the way the second paragraph is worded and the fact that it doesn't use "fork" or other technical terms. Commented Jun 9, 2021 at 15:58
The bitcoin network is composed of 'bitcoin full nodes'... to change this 'coin issuance schedule', you would have to change the code running on all of those computers
Regardless of how many times this statement is repeated (and upvoted on SE!), it is obviously wrong to anyone willing to spend even a few minutes thinking about it.
Except for a few special ones (like ones that happened to be running at Coinbase and other influential places like that), full nodes have no influence on the block chain whatsoever. Nodes do not create blocks, miners do. It is the code that is running on the miners' machines that matters. And, at some point, incentives will align for the miners to do something to replace revenue from the waning block rewards, and the politics will incentivize the few influential nodes to follow this new chain since it will have the hashpower behind it (continuing to follow an underpowered chain could have disastrous results).
If you still believe that full nodes matter at all, consider this: there are generally 10's of thousands of full nodes on the network at any given moment. I could, sitting here at my desk, easily spin up 100,000 full nodes and get them integrated into the network within the next 24 hours without even maxing out my credit cards. I would then control the vast majority of full nodes. So why don't I do this? (Or more importantly, why doesn't anyone else with more resources than me do it?) Because there is no benefit to controlling any number of non-influential nodes. None. There are only a few dozen nodes on earth that matter, and they are the only ones that matter, and they are controlled by a small number of people who may someday have incentives to allow the increase the supply of bitcoins.
See longer answer here... https://bitcoin.stackexchange.com/a/108202/113175
Note that it is very likely that this answer will be heavily downvoted and will attract comments vehemently scolding me for being an idiot- while never offering any actual rebuttal to my argument. This too is a signal!