The network would dynamically determine the max block size as the network evolves by expressing the size of the blocks they will accept with the drop-down menu on their client.
So
is this a good idea? If there are no obvious "gotchas" then perhaps we should write up a BIP.
I like the principle of the idea, however the idea of voting by non-miners is subject to Sybil attack - someone spinning up many fake nodes to skew the results. There have been posts on the mailing list about various voting schemes.
Going one better than simple user voting is proof-of-stake voting:
Proof-of-stake voting could be combined with miner voting (like BIP-100) to get a balance between mining power and investors/holders.
https://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg02323.htmlA drop down box, which would need supporting on the many wallet providers, then allows people to vote depending upon their coin balance. A non-vote is a "vote" for no change.
Except, the problem with proof-of-stake voting is summarized by Alan Reiner (Armory developer) in the responses to this proposal:
One major problem I see with this, no matter how well-thought-out it is,
it's unlikely that those with money will participate. Those with the
most stake, likely have their private keys behind super-secure
accessibility barriers, and are not likely to go through the effort just
to sign votes. Not only that, but it would require them to reveal their
public key, which while isn't technically so terrible, large amounts of
money intended to be kept in storage for 10+ years will prefer to avoid
any exposure at all, in the oft-chance that QCs come around a lot
earlier than we expected. Sure, the actual risk should be pretty much
non-existent, but some of the most paranoid folks are probably the same
ones who have a lot of funds and want 100.00% of the security that is
possible. They will see this as wildly inconvenient.
Alan is quite right about that. forget POS voting.
i also disagree with you about the Sybil attacks by spinning up full nodes. first off, it's not a trivial expense even today to run a full node, so there is a cost to trying to manipulate the system. and you'd have to run them for "longish" periods of time before you'd get miners to react with bigger blocks. and, as larger blocks come into being, those full node costs will rise making the attack even more expensive. and really, for what point? it's always been possible to spin up nodes but no one's bothered to do it. as more users enter the system, honest merchants will start spinning up their full nodes in numbers that should make Sybil attacks very difficult. finally, while running this attack, they are actually helping the network validate and relay tx's and decentralize it. i'd think there are better ways to attack the network.