This, and many other responses, have missed the most important part of my point. If miners are selecting the block size in an attempt to cater to the economic majority, they can iteratively 'prune' the smallest nodes by picking a larger blocksize. It endemically moves the netowrk towards datacenter sized full nodes, at which point you've lost the core value-add of Bitcoin: trustlessness. If I'm trusting 3-5 datacenters to mine correct blocks, because the cost of validating the chain is $1000s per day, this is no better than paypal.Welcome to the forum, @Taek!
Right, but I think you may be assuming that Bitcoin Unlimited forces the miner/node to accept blocks of all sizes and mine on them. It's actually a setting that the user can adjust. This results in an effective emergent blocksize cap, which limits how many times you can do that pruning (probably to very few times, if any).
So I think you may be seeing BU as having a bigger scope than it does. It merely gives miners/nodes a user-friendly menu to adjust some settings so that the network cap emerges dynamically. It is not unlimited in the sense of "everyone must accept giga-blocks." It's unlimited in the sense of unfettered by a development committee's decisions and also able to be adjusted on the fly.
There is an immense problem with setting your own block size limit. If you pick a smaller limit than everyone else, you have consensus risk. A block that is just above your limit is rejected by you but accepted by everyone else - you are forked from the network.
With BU, every node **still has a block size limit**!! That limit, instead of being a hard coded number, is actually just the limit to how many blocks you can process. And if every node is running BU, every node is going to have a **different limit**!!
The collective mining group needs to find the block size that won't be rejected by the global network. But there's no strict definition of what counts as the global network, and the smallest set of players is unlikely to matter to miners.
If everyone is running BU, the slow nodes are going to be pruned. And then a month later, the *new* slow nodes are going to be pruned (though they used to be faster than the slowest 10%, the slowest 10% is now gone so the node suddenly finds itself in the slowest 10%). And the miners have incentive to do this so long as there is more money to be made by getting more fees.
--------
Someone here keeps posting that I'm confusing miners with mining pools, and that this is significant because a small miner can join a pool and then have an orphan rate that is shared with the whole pool.
There are two problems with this. The first is that if the miner has joined a pool, they are no longer in control of the transactions they are mining. Even with GBT, the pool is a centralized source of power, and can always choose to implement something different, forcing the miner to either accept the change or switch pools. And if blocks are larger than you can process quickly, you spend much of your time mining a template that you haven't confirmed or chosen because you are still figuring out the block that you are mining on top of.
The second, and bigger problem, is that miners on pools experience higher orphan rates than miners not on pools. This is because all of the miners inside the pool still have to communicate to the central server, and the central server still needs to communicate to all the connected miners every block, and this takes time. At a single giant datacenter, this isn't the case. Propagation within a datacenter is going to be single digit milliseconds at worst.
The relay network can move blocks around in something like 300ms on the current network. But the average stratum pool does not get the first block template to its miners for something closer to 5 seconds. A massive disparity, and one that means that mining on a pool is significantly slower than mining from the relay network.
Pool mining is inferior to just being a giant datacenter. You cannot assume that large pools will be able to compete with large datacenters. Pools do not exist to reduce orphan rate (and indeed, they increase it), they exist to reduce the variance on payouts (this is a purpose they serve very well).