[bitcoin-discuss] Block size idea - allow miners to dynamically adjust while disincentivising bloat

Hi all, I've been trying to think of a way to implement a hard fork blocksize increase that will satisfy as much of the community as possible. I wanted to jot down my thinking incase anybody had any improvements and could then look at turning it into a BIP. Handing control of the block size to the miners worries me. I do however see merit in allowing miners to help guide the block size when needed, more dynamically and easily than through hard forks each time. Rather than give miners free reign I think there needs to be a risk to miners in order to justify them making changes to the network, and to disincentivise bloat/spam. I'd like to find a solution that kicks the can as far down the road as possible until other solutions have hopefully resolved many scaling concerns. Any proposal that minimises the need for any unnecessary/additional hard forks is desirable. My basic idea is for miners to vote in each block to increase the block size. A potential annual block size increase of 100% should satisfy those who are concerned about the timescale/ability of offchain solutions to meet demand, and mean that exponential growth on-chain is still possible. This would be achieved by each of the previous 2016 blocks voting to increase the block size by the maximum amount of 2.7% each time. 26 fortnightly increases of 2.7% would result in a block size increase of 99.9% (rounding). We only need to use 3 bits for miners to vote on block size: 000 = not voting 001 = vote no change 011 = vote decrease 2% 101 = vote increase 1.35%, pay 10% of transaction fees to next block 111 = vote increase 2.7%, pay 25% of transaction fees to next block Not including any transactions in a block will waive a miners' right to vote. Each block is a vote, and the block size change could be calculated by averaging out all the votes over 2016 blocks. In order to achieve an increase in block size, the blocks must also have been sufficiently full to justify one. Transactions with no fee and perhaps outliers far from the mean tx fee/kb should perhaps not be included. By asking miners to pay a percentage of their transaction fees to the miner of the next block, you discourage miners from stuffing the blocks with transactions to artificially inflate the block size. If miners are in unanimous agreement that the block size needs to increase, the fees would average out and all miners should still be equally rewarded. Only miners trying to increase the block size when consensus is not there would incur a cost. There should be a limit on the maximum increase, perhaps 8MB. Combined with SegWit this should provide a reasonable balance between satisfying those who are worried about missing out on exponential growth for a few years if LN and other solutions are not as fast or effective as hoped. This is just an idea I've been thinking about to try and buy us as much possible time before we need to hard fork again, and I hope its got potential. Please let me know any thoughts/improvements and whether it might be worth writing a BIP. Regards, John Hardy john at seebitcoin.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-discuss/attachments/20170109/35b3d4f3/attachment.html>