Long term security can't be funded via transaction fees
Gavin argues that neither small blocks or large blocks will likely result in sufficient tx fees when block rewards run out. Users sending very high value transactions in a world of extremely limited block space will usually have legal relationships with each other, so they won't need to pay high fees for Bitcoin's security. In a world of huge blocks, semi-trusted third parties will likely co-sign transactions to guarantee against double spending, leaving little incentive for including an adequate transaction fee.
Mike Hearn writes that the blockchain is a public good, and that you can't keep freeloaders from using it. Although some miners might reject a transaction that pays too low of a fee, the user only needs one miner to accept the fee. As long as the fee makes up for a miner's marginal cost of processing and including that transaction, he'll include it. It's possible that users will want fast confirmations so much that a fee market exists, but we have no reason to be confident of it.
Mike proposes that we could fund security via assurance contracts. His initial proposal worked more like a donation than an assurance contract, but Tier Nolan has solved this. Miners will continue to mine no-fee transactions in this world, because it increases the value of Bitcoin, which is good for them. See here (search for "miner's would include").
- Even if semi-trusted third parties are co-signing transactions to guarantee against double spending, and even if users don't care much about confirmation speed, users still have an incentive to pay a fee if other users are competing for block space. A miner would refuse to include a transaction in his block that paid just barely enough to cover his marginal cost of processing it, if block space was limited and there were lots of other transactions competing to get into the same block. These arguments assume that block space isn't scarce in order to get their conclusion. But we can set block space to be as scarce as we want.
- Example: Suppose future blocks can hold 200,000 txns. Suppose there are 50,000 txns that would pay up to 10 cents, 100,000 txns that would pay up to 5 cents, and 400,000 txns that would pay up to 3 cents. Everyone must pay at least 3 cents to get into the block, otherwise someone else will take their spot. There is no free rider problem because a tx that pays less than 3 cents will be kicked out of the block in favor of one that does.
- Assurance contracts do involve a public goods problem, because in this case users really can free ride on others. Only agents large enough to be able to significantly affect the chance of the assurance contract being fulfilled would pay. In a world with lots of small agents, it's unclear that any contracts would get funded unless there was a significant component of altruism driving payments to miners.
- Whether or not miners process free transactions for the good of the Bitcoin economy is also a legitimate public goods problem. Any given miner without a huge fraction of the mining power would not want to process a given free txn -- he'd rather let one of his competitors process it during the next block because he'd get all the benefits (free txns still working, so Bitcoin's value being high) and his competitor would bear most of the costs.