The idea of enabling nodes & miners to set a market block-size is quite reasonable so there is no criticism of the idea. Dont take review of the mechanism as a critique of the idea: for ideas to be deployed we need game-theory reviewed protocols and rigorously tested implementations. Dynamic block-size is actually on the core roadmap and the best proposal I've seen for it is flexcap by GMaxwell & Maaku, with some ideas from Jeff. You can watch a video about flexcap presented at scaling bitcoin HK. Maaku has code for the core parts of it, I believe he was going to publish it, probably online by now.
If we want nodes to dynamically set a blocksize limit, in a way determined by the market, we should use a proposal like BIP100. BIP100 actually allows miners to dynamically set a blocksize limit and agree with each other on a new limit, BU has no system to enable nodes to agree on the limit.
The precursor idea was BIP "100" which Jeff retracted. The BIP "100" proposal is similar but only miners vote. In flexcap both users and miners vote.
I would suggest people interested in the idea of dynamic blocks, learn about BIP "100" and flex-cap and see if they can improve them. There are design considerations that have been refined between 100 and the improvement on it flex-cap.
The bitcoin unlimited project has presented some ideas which do try to automate things. Unfortunately all of the ones so far seem to be defective suffering sybil attack, constant centralisation pressure, dont take account of SPV mining, shared pools, relay network existing practice nor selfish-mining, attacks.
I have not really analysed the idea of validating two chains, but it seems likely to have problems based on intuition, particularly in the area of race-conditions, chain sharding and divergence risk, and in an adversarial environment.
Bear in mind that the consensus mechanism is extremely fragile, it only just works in that there are many design close things that completely fail. Most variants I tried I self-broke fairly immediately. But some of these things take a long time to realise, or require review from GMaxwell or others to disprove. For example selfish mining was not noticed for years. I did spend about 3 - 4 months cooking up analysing mining variants to improve bitcoin mining centralisation (eg I invented ghost, but rejected it as over complex for what it achieved, before the academic paper proposed it and a bunch of other variants), before getting into side-chains.
The idea for users to vote by delaying block relay wont work because most miners are already using the relay network or SPV mining. Over 50% of the network was SPV mining during the 4th july fork. A large portion of miners use the relay network.
Users voting by advertisement wont work because of sybil as others have explained.
You can read flex-cap to see how they combine miner and user voting in a secure, game-theory stable way that defends against all these attacks.
In summary:
1. The use case: dynamic market set block-sizes are interesting.
2. bitcoin unlimited proposals so far seems broken as discussed by multiple people for a whole range of reasons. We didnt have a crisp definition and it seems that some things maybe undecided. That's ok - just keep working on it and make a concrete proposal later and people can analyse it from that.
3. BIP "100" seemed plausible, but was only miner meta-incentive secure. Meaning we would be trusting miners to do the right thing, limited only by their commitment to not do anything too selfish for fear of hurting bitcoin's long term value.
4. flex-cap adds user voting (in transactions) and an economic quadratic feed-back mechanism to create an incentive to right-size blocks (to deter miner zero sum attacks against other miners and curtail the continuous centralisation pressure). Flex-cap also ensures miner fee profit in conditions where otherwise mining fees can be driven to zero by excess capacity in a non-dynamic block-size growth proposals like BIP-103.
[EDIT: I suppose the other thing is it might be better to run experiments on testnet rather than bitcoin or putting clear warnings for users if you have not. People could lose bitcoin running partial implementations of incomplete ideas. Encouraging users arent understanding it is a research project to run experimental code with real Bitcoin under it's control or even on the same machine, would be inadvisable.]
Adam