Post
Topic
Board Development & Technical Discussion
Re: SatoshiDice, lack of remedies, and poor ISP options are pushing me toward "Lite"
by
Meni Rosenfeld
on 02/01/2013, 16:47:10 UTC
First, it's a hard fork.  Every node right now, to my knowledge, will reject any block coming in at over 1MB.  Miners included.  ANY kind of hard fork is going to be really hard to implement due to the size of the network.  But if a hard fork does benefit everyone, or almost everyone, it could be planned in advance and switched to at some date.  As long as most (substantially more than 51%) of nodes switch to the new protocol in a coordinated way, a hard fork change could work. (BTW, has this ever happened?  I haven't heard of it but maybe it has?)
In case it's not clear, the advance planning is done in software. That is, if we decide right now it should be changed, we add the line "if blockheight > 270000 then sizelimit = 10MB" to the upcoming software version. Then anyone who upgrades his client within the next half year will automatically switch when the time comes.

But in the case of removing the 1MB limit, I don't think the agents involved here will agree.  Specifically, the miners.  SatoshiDice would certainly be on board for 1GB blocks, as would BitPay, Gox, and I'd imagine most end users.  But I think miners have incentive to maintain the 1MB limit.  The limit creates an (artificial?) scarcity for what they are providing / selling: inclusion in the block chain.  If there's only room for ~4K transactions per block, thus only ~1M transactions a day, a spot in that blockchain is going to be quite valuable if millions of people want in.  Transaction fees could be quite high, making only large transfers feasible.

A transition to larger block sizes would thus be resisted by miners.  While you might say, "Well, at 10MB / block there's potential for 10X as many transactions, thus 10X the fees" I don't think it would work that way.  But in fact, I don't think this will ever be tested; all you need is miners to resist this change due to uncertainty.  Some miners might like to increase the size limit, but many won't.  Having large groups of miners disagreeing on fundamental protocol aspects sounds like a disaster for bitcoin.  Basically, to me, the network of miners IS bitcoin; they provide the power to run the network, and are compensated to do so.  If the miners aren't 100% for it, it's just not going to happen.
A limit on the data size of a block isn't the only or even the most efficient way to keep demand for transactions high. The marginal cost of handling the tx size is expected to be much lower than the amortized cost of hashing to secure it, so artificial scarcity in the former to sponsor the latter creates perverse incentives.

I favor a structured fee solution that takes into consideration the different costs. A component for storing and broadcasting data (e.g. data size limit); a component for signature verifications (e.g. limit on the number of signatures); and a (much more significant) component for miners' bargaining power in demanding payment for their hashing (e.g. limit on the total amount of bitcoins transferred).


Even in case data size limit remains as a rough approximation to encompass all three: Sure, at some point increasing the supply of transaction room will greatly reduce the price and the total revenue. But miners will also understand that if the limit is too low, the usability of the Bitcoin system at large is reduced, which will harm growth and potential total revenues.

If a majority cartel of miners decides anyway to reject all blocks with increased size limit, despite this being the new protocol agreed by the economic majority, this is none other than a >50% DoS attack. Whatever tools we come up with to handle that (e.g., moving to a block DAG structure) will apply.