David Rabahy:
I generally try not to think in dollar terms about the economic issues in Bitcoin. If there is a feedback system such that block rewards from tx fees tends towards 1BTC / block, the blocks could potentially be quite large; 100MB/block, or with your estimates 179,000 transaction, at a cost of 5.5 uBTC per tx. More transactions trying to fit into a 100MB block will tend to push up the per tx fee, which would to expand the max block size to say 110MB, which pushes the fees per tx back down such that the new 110MB blocks are just about full of txs at a 5.4 uBTC / tx fee, still earning 1BTC per block.
trout:
I address this in my initial post and go into detail below.
2112:
I've thought about the same set of changes, and have decided that it's probably too much of a change to practically push through into Bitcoin. Something where the miner of block n gets 1/2 the tx fees, and the miner of block n+10 gets the other half would both incent inclusion of high-fee transactions, as well as eliminate the risk that miners would pay fees to themselves. Such a fundamental change however is probably impractical, as it would be dismissed by many as "not Bitcoin". Integrating something like p2pool is also quite complex and will be viewed as too risky.
NewLiberty:
I wasn't clear enough about this in my post, but I meant that the new epoch's block size to be a function of the previous one, just like the difficulty adjustments. Difficulty adjustments don't actually care about hash rate, just the time taken for the 2016 block epoch, and a relative difficulty adjustment is made based on the divergence from the two week target. Similarly, I agree that max block size should use transaction fees as a relative adjustment factor. I mention bounds of this adjustment below.
-
Simply using median transaction fees per block over the past epoch is hopefully simple and straightforward enough to be accepted by people, and does not have significant incentive problems.
There are two ways this can be 'gamed' by miners. The way that is most dangerous to the non-mining users of the network would be for miners to artificially limit block sized to a small value, in the hopes that they would profit from high transaction fees. Doing this requires malicious collusion among miners (in excess of that in a proof-of-idle system which I've written about) and in a situation where most of the miners are trying to harm bitcoin, we're already in much bigger trouble. In practice miners will grab all the fees they can fit into a block, especially if they know the next miner will do the same.
The more problematic way a malicious miner can 'game' this is by paying fees to itself. Using thresholds, or the median instead of mean, or some other mathematical way to cut out the outliers may be helpful. I like using the median block reward -- it's really quite simple and would prevent anyone with <50% of the hash power from accomplishing much. And the assumption in all of this is that there is no >50% miner.
If I miner did somehow push the fees and blocksize up, that miner could then publish large blocks in an attempt to spam / DoS the network. That's the only real threat, and it could be very costly and slow for the miner to accomplish. Unlike the difficulty adjustment, which is bounded at 0.25X to 4X, the max block size adjustment could have a much tighter bound, like 10%, so that it would take months to double the max block size.
I think this is simple and straightforward enough that miners, developers, and bitcoin users can read it, understand it, and be OK with it. I also think that it's safe long-term, and doesn't require human intervention once set up, regardless of how computer technology evolves (or fails to) over the next few decades.
Thanks to everyone who's read and commented on this; I actually thought of this a few years ago and mentioned it to people but never had gotten any attention. My personal opinion is that Gavin's idea of just increase blocks based on a guess of continuance of Moore's law would probably work fine... but I like my idea a little better
Thanks for the comments.