This is the transcription of my latest video, "All About Bitcoin Full Nodes (BTC, BCH, BSV)" which can be seen here:
The Scaling Debate in Bitcoin has always centered around one single issue, the ease of use for an average person to be able to run their own full node.
First we must know what a full node does.
A full node in the Bitcoin network monitors the entire bitcoin network. They are the ‘peers’ in peer-to-peer. They watch for incoming transactions and store them until they are ready to be put into a block. All the nodes are processing these transactions, also known as validating, to make sure all of the transactions follow the same shared ruleset that has been agreed upon by the entire network. Full nodes also broadcast new transactions to the rest of the network, aka to all the other full nodes. They also hold the entire history of the blockchain. So they validate, broadcast, and store transactions.
All full nodes do this, but some nodes are considered mining nodes if they find a block. Of course, this requires hashpower to be pointed at the node. They would then transmit this block to the rest of the network, and the search for the next block begins. There is no fundamental difference between a non-mining and mining node, except a mining node will sometimes find and broadcast a new block.
Right now you see three different versions of Bitcoin that are playing this experiment out. The biggest and most popular is Bitcoin (BTC) who believe everyone should have the ability to run their own node if they so choose, so they keep the blocksize limited at around 1.6MB. On the other end of the spectrum is Bitcoin Satoshi Vision (BSV), who advocate for blocks so large that only a tiny tiny tiny number of people can run full nodes due to bandwidth and storage concerns. They are looking to raise their cap to 2 Gigabytes soon. And then you have the somewhat moderate position of Bitcoin Cash (BCH) whose beliefs lie somewhere in the middle, with a current cap of 32MB.
The small block argument revolves around the desire to give everyone the ability to run a full node if they so choose. When running your own node, you are truly financially sovereign, because you validate all of the transactions to make sure they are follow the rules set by the network. If you don’t run your own node, a different node can theoretically feed you false information about the network, or not transmit your transaction if they so choose.
Some BTC/Core developers even say you’re not using bitcoin without running a full node yourself!
But bitcoin is a game of incentives. Why would a full node provider feed false information or refuse to broadcast a transaction? They can’t steal any money either way, and the node would be ignored extremely quickly for not being reliable. It may cause a minor annoyance, but switching to a different node is trivial. In reality, as long as a small number of nodes in the network are honest, the network functions as normal. Again, there’s no chance at loss of funds and Satoshi even outlined Simple Payment Verification in the whitepaper, which is using a bitcoin wallet without running your own full node, such as on your phone. Long story short, SPV queries nodes to find the chain that has the most valid accumulated proof of work. The only ways SPV doesn’t work is if the the bitcoin network or proof of work itself fails.
There will always be businesses, exchanges, and payment processors that will run honest nodes because their business relies on it. There ARE incentives to an individual to having their own node, such as a merchant running their own for a better 0-conf experience. What I mean by this is that it is simply faster to do everything yourself than by asking somebody else’s node. You do not have to rely on someone else to maintain your quality of service, and searching the blockchain is easier if you maintain a copy yourself.
Plus, if blocks are organically big due to massive transaction volume, bitcoin will be even more popular than it is today, and more people will be incentivized to run nodes.
The node count number really has minimal effect on the security of the network, and is not an accurate representation of decentralization, because it is easy to spin up multiple nodes through things like AWS.
You have BTC as the extreme small blocks, and you have BSV as the extreme big blocks.
BSV’s line is “Bitcoin without limits”. Well, the facts are is that bitcoin’s true bottleneck at this moment simply, bandwidth. Recently, BSV experience a block reorganization due to having massive blocks that took a while to propagate across the network.
Here’s what happened. 3 very big blocks were mined, one being a 128MB block, which were orphaned (aka ignored) by a different chain of 4 blocks, because they did not see these big blocks due to not fast enough bandwidth for the entire block to reach the other miners in time.
The original chain of 3 blocks then orphaned the new chain, as it grew faster.
Succinctly, for a little bit there were two different BSV chains. Luckily, in this case, no transactions were lost. But, if the chain had active economic activity, someone could have lost their transaction due to the differing transactions that were in the different blockchains. Also, when reorgs like this happen, it is easy to do something called a double spend, where you send someone money, and then resend the same money back to yourself, essentially stealing whatever goods, or other cryptos, you bought with the original coins.
Other times, they did a 128MB block or two, but they didn’t broadcast any of the transactions, the miner just loaded his own block with his own transactions without propagating to the rest of the network first. This bypassed the issue of nodes having differing or out-of-sync mempools. Also, if you have few miners and nodes, you can directly connect connect to each other, essentially bypassing the bitcoin network.
And this is the current BSV brand of Bitcoin Maximalism: Bitcoin can do anything, including file storage and running apps all on chain. But for now this storage lies in the op_return field. An op_return is essentially a field of text that can be attached to a standard bitcoin transaction. You can then just paste raw data in it in the form of images and videos. But you would need a 3rd party program to decode it, such as an internet. This is what BSV calls the metanet. A completely decentralized and uncensored internet. While this sounds really cool, it’s expensive. At current prices it’s at 7 cents a megabyte. So to upload any type of video it would be extremely expensive, at $70/GB. That’s like a million times more expensive than a google drive subscription.
Bitcoin was not made to be a storage chain. It was made to be a Peer to Peer Electronic Cash System. The nature of op_return is that it is prunable. As in, node operators do not HAVE to store whatever is in the op_return forever. They can trim the op_return out of their storage because this op_code is not neccesarry tro verify blocks or transactionsl. In other words, you have to rely on somebody to run a node that will always include the type of file that you stored on the chain.
Now, to the middle ground of Bitcoin Cash. There are improvements currently being developed for block propagation, such as xthinner and graphene. They are not quiter live yet, but are in the raodmap.
Bitcoin Cash raised the blocksize to avoid the $50 transaction fees that BTC once had, and will again… unless everyone stops using it. But, Bitcoin Cash developers do not believe in breaking things on mainnet in order to score cool “our blocks are the biggest” marketing points. Bitcoin Cash will not allow their current 32MB cap to be hit and transaction fees to rise with it. Responsible scaling, that doesn’t crash economic nodes by shoving a bowling ball down a garden hose.
While BCH nodes may eventually be more expensive to run than BTC nodes, currently there is more traffic on BTC, which means it’s harder to run a BTC node. When economic activity switches to the fast and cheap bitcoin, yes, BCH nodes may become more expensive. Personally, as a simple user, I do not care to run my own full node, as I have no real incentive to. Simple Payment Verification works great for everything I need bitcoin to do for me. But, this does not mean we should makes nodes only available for the mega rich, or make them so expensive that businesses couldn’t profitably run their own. Extremism is not healthy.
We can see that the full node debate is really the crux of The Scaling Debate, with every talking point seemingly stemming from this. I believe that Bitcoin Cash taking the middle ground is the best way to scale bitcoin. Finding optimizations in the bitcoin protocol, while at the same time not letting the cost to use the network skyrocket