The blockchain works by supply and demand, and supply is made by the miners themselves, not by some dumb hardcoded limit.
You assume that miner can effectively control supply. This in absence of a block size limit is only the case if they are building cartels, that artificially limit the supply.
Is that you really prefer instead of an algorithmic decision?
Remember Bitcoin's promise is to operate without the need of cartels and authorities.
oh but you can.
the miners decide which transactions are valid and which are not.
you can make your own rules about which fees to accept and which fees not to accept. You can even ban individual transactions or addresses if you want.
I'm pretty sure there's also a way to make your own limits to the size of the block you want to solve, as long as it's not bigger than the hard-coded limit.
As long as your block is considered "valid" by the rest of the network you decide the rules about which transactions you accept and which you dont accept.
If you have sufficient power as a miner, you can have a pretty big influence on the fees. And any miner who's not stupid will ask for at least a small fee. Or like make something like a 250KB limit for 'free transactions' and reserve the rest of the block for transactions with fee, the more fee the more priority, something like that.
be creative...
just because there's the POSSIBILITY of 20MB doesnt mean you HAVE TO use it.
There's not even a need for cartels, but each miner/pool will set their own limits based on some calculations.
Do i really need to do all your thinking for you?
Calculations would be roughly based on
- how much electricity does mining cost for me?
- how much $/kWh in my area?
- how much transactions are in an average block lately?
- how many blocks do i solve (or more likely does your pool solve) per hour
- how much of a % do i influence the pool?
- how much is the block reward if any? (and how much does it cover the cost of mining?)
- how long does this mining equipment stay competive
- how much did my equipment cost and how much will i need to profit to invest in new one
- overhead costs
weight all those factors against each other and you can make a rough estimate on how much fees you should ask for an average transaction.
now let's suppose we're far into the future and we rely mostly on fees as opposed to block rewards.
lets also assume there's (for simplicity sake) 8 large pools controlling a majority of the mining. (not to say this will happen but just to keep the calculations easy).
Pool A asks for a fee of 1 bitcoin minimum. and controls 25% of the network
Pool B asks for a fee of 0.001 bitcoin minimum and controls 5% of the network
Pool C asks for a fee of 0.005 bitcoin and controls 10% of the network
Pool D asks for a fee of 0.003 bitcoin and controls 10% of the network
pool E asks for a fee of 0.5 bitcoin and controls 15% of the network
pool F asks for a fee of 1 satoshi and controls 10% of the network
Pool G asks for a fee of 0.01 bitcoin and controls 15% of the network
Pool H asks for a fee of 0.025 bitcoin and remains the remaining 10%
now if i would want to sent a transaction and be absolutely sure it gets confirmed 6 times within the next 6 blocks (which should take about an hour) I should add a fee of 1 bitcoin.
However, if i'm satisfied with a 75% chance of waiting for a block i just add a fee of 0.5 instead.
If i am satisfied with a chance of 60% to have to wait a block, i'd add a fee of 0.025 and so on.
Of course as the user I don't know exactly what the miners ask in fees, so it's a bit of trial and error. But most users will add a fee that proved to work for them in the past.
Many large transactions or transactions that NEED to be processed fast will likely have a higher fee to ENSURE a fast transaction (some miners only accept large fees) smaller transactions (which will be more plentiful) will add lower fees, risk waiting a little bit longer.
The miners who accept smaller fees will process more transactions and the sheer volume of transactions may actually add up. But the few big transactions that the other pools sometimes pick up may also bring in some large chunks of fees from time to time.
There's no need for a hard-coded limit, fees will come in anyway, and you can make your own rules.