Author

Topic: Confirmation time vs tx fee: Another reason to keep the blocksize where it is? (Read 2708 times)

legendary
Activity: 1400
Merit: 1013
Just so you know: Lifting the limit entirely and bloating the blockchain past what my 1TB disk can handle for the next 5 years will definitely cause me to lose all faith in Bitcoin and simply move on. And I assure you I'm not the only one.
According to recent polling less than 25% of forum users want the size to remain at 1 MB. Given the amount of user growth we're likely to see this year even if every one of that 25% left they won't even be noticed.

Maybe once they see that higher transaction rates cause the exact opposite of what you predict they'll come back.
legendary
Activity: 1078
Merit: 1003
The only reason to limit the block size is to subsidize non-Bitcoin currencies or to insulate existing miners from future competition.

Precisely!

Any why exactly would we want unconstrained competition between miners? Don't you understand that while yes the fees would always be above their marginal costs only those with the lowest costs would survive driving the costs lower and lower and also driving the fees ever lower? Do you really want to have a handful of big miners have control over the entire mining collecting almost no fees?? Do you really want them to spam the blockchain beyond what a regular users can afford to run a full node on and lose all full nodes and with them the decentralized nature of Bitcoin?? Do you not understand how a limitd block size protects the security of the network from the tragedy of the commons once the subsidy runs out?

The answer is not and never will be unlimited size of blocks.

The answer will be a compromise in the form of a small raise or an automatically adjusting algorithm but only if we also get a light client that can still validate the rules needing only a pruned blockchain.


Just so you know: Lifting the limit entirely and bloating the blockchain past what my 1TB disk can handle for the next 5 years will definitely cause me to lose all faith in Bitcoin and simply move on. And I assure you I'm not the only one.
newbie
Activity: 21
Merit: 0
I think I'm starting to get it. Alice's work gets ignored if Bob solves his block first, regardless of who has the faster hash rate? I had thought both sets of transactions could be merged into the blockchain, but I guess Alice has to include the hash of the newest block if she wants to get a reward+fees.

Well it isn't so much "ignored" as worthless.  How much are losing lottery tickets worth?  Just about as much as Alice hashes which don't solve a block.  I guess because the idea of mining for day, months, years without solving a block is depressing sometimes people have a tough time realizing there is no "progress" towards a block.  You either solve it or you don't.  

If you attempt 1 trillion hashes and none of them solve a block you are no closer to solving a block then before you started.


Still you are right there is no concept of "merging" transactions.  Even if there was Alice would be better served still going for the highest fee tx (no matter how painfully slow she is).  If Bob solves a block, Alice validates the block and removes all the included tx from the memory pool.  Alice then reselects the "best" tx, builds the merkle tree, and starts hashing a new block.  The amount of effort in constructing the blockheader is negligible compared to the trillions upon trillions of hashes (proof of work) it takes on average to solve the block.  It doesn't save Alice any time or energy to NOT include the most profitable txs.



Thanks very much for the explanation. It now makes sense that Alice should include the highest fees that she can, but doesn't she have to trade off waiting for higher fees to appear before she can start hashing? The longer she waits for higher fees to come in, the more likely it is someone else will solve the next block before she does, right? By not waiting for higher fees, she's effectively lowering the range of tx fees she can accept. EDIT: if that's true, it also means Bob can afford to wait for higher fees before he starts work. If Bob solves his block it will contain newer txs with higher fees, while Alice's block contains older txs with lower fees. So it is as though Alice and Bob are competing over different tx fee ranges. The market will still end up pricing confirmation times as I'd hoped, but for different reasons Wink
donator
Activity: 1218
Merit: 1079
Gerald Davis
I think I'm starting to get it. Alice's work gets ignored if Bob solves his block first, regardless of who has the faster hash rate? I had thought both sets of transactions could be merged into the blockchain, but I guess Alice has to include the hash of the newest block if she wants to get a reward+fees.

Well it isn't so much "ignored" as worthless.  How much are losing lottery tickets worth?  Just about as much as Alice hashes which don't solve a block.  I guess because the idea of mining for day, months, years without solving a block is depressing sometimes people have a tough time realizing there is no "progress" towards a block.  You either solve it or you don't.  

If you attempt 1 trillion hashes and none of them solve a block you are no closer to solving a block then before you started.


Still you are right there is no concept of "merging" transactions.  Even if there was Alice would be better served still going for the highest fee tx (no matter how painfully slow she is).  If Bob solves a block, Alice validates the block and removes all the included tx from the memory pool.  Alice then reselects the "best" tx, builds the merkle tree, and starts hashing a new block.  The amount of effort in constructing the blockheader is negligible compared to the trillions upon trillions of hashes (proof of work) it takes on average to solve the block.  It doesn't save Alice any time or energy to NOT include the most profitable txs.

newbie
Activity: 21
Merit: 0
I think I'm starting to get it. Alice's work gets ignored if Bob solves his block first, regardless of who has the faster hash rate? I had thought both sets of transactions could be merged into the blockchain, but I guess Alice has to include the hash of the newest block if she wants to get a reward+fees.
donator
Activity: 1218
Merit: 1079
Gerald Davis
No that is flawed thinking.   As Gavin said there is no such thing as faster (or fastest) miners.  Each hash has an equal (and very small) chance of solving a block.  A miner with a faster hash rate gets more attempts to solve the block but there is no preset time before solving a block.  Each attempt is independent and unique.  A nonce has a random chance of solving a particular block (by producing a hash below the target) that is 1 in (difficulty * 2^32).

The best analogy is a lottery.  Instead of buying lottery tickets miners generate lottery tickets by attempting a solution.  Every hash is a potential winner.  There is no "progress" towards solving a block.  A miner takes a nonce, includes it in the blockheader, hashes it, and checks if the hash is a "winner".  A hash below the block difficulty target wins, all other hashes are completely worthless (although pools collect some of these worthless hashes to determine each miner's share). 

If Bob has 5x the hashing power of Alice then Bob simply gets 5x as many hash tickets per second to the block lottery.   In the short run Bob could go a very long time solving no blocks and Alice could solve a block on the very first hash.  Alice could even potentially solve two blocks in a row before Bob solves any. On average in the long run Bob will win 5/6ths of the blocks and Alice will win 1/6th of the blocks.

For the 1/6th of a time that Alice "wins" the block it makes absolutely no sense for her to include ANYTHING but the highest fee transactions.  To do anything less would simply reduce her revenue.  In the long run she will still only solve about 1/6th of the blocks but by taking lower fee tx over higher fee tx she would earn LESS THAN 1/6th of the global mining revenue.
newbie
Activity: 21
Merit: 0
This is wrong. It makes no sense to take the highest fees if you know you have no chance of getting them, since faster miners will always get there first.
I think you don't understand how mining works-- there is no such thing as a "faster" miner, just miners with more or less chance of creating the next block.


Please correct me, but doesn't it take longer to solve a given block if one has a slower computer? If so, wouldn't the transactions in the block just be older? Hence, confirmation times would scale inversely with tx fees.

wot?

Please explain if this doesn't make sense. Miner Bob is the fastest miner on earth and the blocksize limit has been reached. He collects as many txs sorted from highest to lowest and tries to solve his block. Miner Alice is twice as slow as miner bob. She collects txs with fees sorted from highest to lowest, but she tries not to include fees so high that Bob will be likely to have included them in his block. She begins mining. Bob finishes his block before Alice finishes hers. Bob's block has higher fees in it and they were confirmed faster than Alice's. Hence, those sending tx's with lower fees know that people like Alice are more likely to get them and can expect slightly longer wait times. Again this only happens if Bob has a reason not to include low fees - the blocksize limit forces him to choose only the highest fees. Does that make sense?
member
Activity: 71
Merit: 10
This is wrong. It makes no sense to take the highest fees if you know you have no chance of getting them, since faster miners will always get there first.
I think you don't understand how mining works-- there is no such thing as a "faster" miner, just miners with more or less chance of creating the next block.


Please correct me, but doesn't it take longer to solve a given block if one has a slower computer? If so, wouldn't the transactions in the block just be older? Hence, confirmation times would scale inversely with tx fees.

wot?
newbie
Activity: 21
Merit: 0
This is wrong. It makes no sense to take the highest fees if you know you have no chance of getting them, since faster miners will always get there first.
I think you don't understand how mining works-- there is no such thing as a "faster" miner, just miners with more or less chance of creating the next block.


Please correct me, but doesn't it take longer to solve a given block if one has a slower computer? If so, wouldn't the transactions in the block just be older? Hence, confirmation times would scale inversely with tx fees.
legendary
Activity: 1652
Merit: 2311
Chief Scientist
This is wrong. It makes no sense to take the highest fees if you know you have no chance of getting them, since faster miners will always get there first.
I think you don't understand how mining works-- there is no such thing as a "faster" miner, just miners with more or less chance of creating the next block.
newbie
Activity: 21
Merit: 0
Thanks for the kind replies.

OP you logic doesn't make sense.  The slowest miner is going to take the highest fees.  If a miner solves the block they get the block reward (subsidy + all fees) if they don't then they don't.  There is no scenario where it makes sense to NOT take the highest fees and go for the lowest fees.  From the largest TH/s miners down to the single processor miners, if it is economical to mine it makes no sense to do anything other than take the highest fee tx first.

This is wrong. In a world where we've reached the blocksize limit, it makes no sense to take the highest fees if you know you have no chance of getting them - faster miners will always get there first. It makes more sense for a slower miner to find the maximum fee they can take while still maintaining the highest probability of success. Therefore, slower miners must compete for lower prices if they want to stay in business. This has nothing to do with "protecting" the business model of slower miners any more than raising the block limit protects the business model of faster miners. I'm simply stating that the blocksize gives us something we don't have: reliable confirmation times that scale according to the tx fee. IMO, the only reason this hasn't happened yet is that we haven't reached the blocksize limit. Again, please correct me if this is illogical. Thanks.
sr. member
Activity: 448
Merit: 250
I agree that the block size SHOULDN'T stay where it is. I think no limit would be great but a lot of people are scared of not having a limit. On the other hand, an algorithm (as a compromise) might work OK.

The miners can protect themselves.

So, to OP, no. We're already approaching a time where it could be "too late" to change it - people are saying we need at least a year for a hard fork and who knows how fast bitcoin will grow in the next year. Time to start moving now. Bitcoin is big enough so that we don't need to worry about all the obscure situations where not having a limit or having a larger limit might be an issue. Again, no need to protect miners.
legendary
Activity: 1400
Merit: 1013
But I also think that choosing a larger-but-still-limited block size won't kill Bitcoin (but not raising the block size at all might-- a payment system with a hard seven-transactions-per-second limit is not Satoshi's vision).
In any case it buys time, which has advantages and disadvantages.

I would prefer permanent algorithms that will never need to be changed, such as the difficulty adjustment formula, because making backwards-incompatable changes is dangerous and becomes more so as time goes by.

Presumably Bitcoin is still mostly used and operated by people who more or less believe in the same core principles, but as adoption goes up this is not guaranteed to remain the case. The earlier we make the necessary changes to allow Bitcoin to scale without requiring any more hard forks, the less leverage malicious stakeholders in the future will have when they try to get support for changing Bitcoin into the opposite of what it is.

I described two reasons I think people are opposed to scaling Bitcoin in this post, and I have a lot more sympathy for the latter reason than the former. I just don't see that as a reason to delay or avoid necessary changes. I'd rather make them as soon as practical.
legendary
Activity: 1652
Merit: 2311
Chief Scientist
The only reason to limit the block size is to subsidize non-Bitcoin currencies or to insulate existing miners from future competition.

I think this is exactly right.

But I also think that choosing a larger-but-still-limited block size won't kill Bitcoin (but not raising the block size at all might-- a payment system with a hard seven-transactions-per-second limit is not Satoshi's vision).
legendary
Activity: 1400
Merit: 1013
A state of no (or gradually increasing) block size limits avoids the market mechanism for pricing transaction times.
When did miners become helpless pawns of the greedy users who are forced to include every single transaction in a block unless they are rescued by having the size limited by protocol? Larger blocks increase the miners' hardware and bandwidth costs, and the odds of an orphaned block. The equilibrium price for transaction fees will be higher than miner's marginal cost. The idea that we have to mandate an upper limit on block size in order to have a pricing mechanism is ridiculous.

Transaction processing is a service which gets more valuable per Metcalfe's law as the number of possible transactions increases. Bitcoins emulate a scarce good that are only valuable if the quantity is limited.

The only reason to limit the block size is to subsidize non-Bitcoin currencies or to insulate existing miners from future competition.
donator
Activity: 1218
Merit: 1079
Gerald Davis
OP you logic doesn't make sense.  The slowest miner is going to take the highest fees.  If a miner solves the block they get the block reward (subsidy + all fees) if they don't then they don't.  There is no scenario where it makes sense to NOT take the highest fees and go for the lowest fees.  From the largest TH/s miners down to the single processor miners, if it is economical to mine it makes no sense to do anything other than take the highest fee tx first.
sr. member
Activity: 303
Merit: 251
I am sympathetic to this position. The opposing position comes from a belief that zero to no fees is the primary benefit of bitcoin.

The free market decides the BTC market price and the free market will decide transaction fees (based on desired transaction times). A state of no (or gradually increasing) block size limits avoids the market mechanism for pricing transaction times. It would be similar to letting the market decide the 21 million limit.
newbie
Activity: 21
Merit: 0
I posted this over at r/bitcoin, but I'd like to see more discussion on the topic here.

Right now, the cost of a transaction is arbitrary: you can pay the "recommended fee", a smaller fee, or no fee. Regardless, there's no reliable way of knowing when your transaction will be confirmed. In other words, the market has not yet been able to price confirmation times. I believe this is directly related to the blocksize issue, and that keeping the blocksize where it is should force the market to price transaction times. I would like to know if this reasoning makes sense:

The blocksize provides an artificial scarcity that will eventually force miners to prioritize based on transaction fees. However, slower miners know they can't compete with faster miners for the highest fees. Instead of simply shutting off their machines, a (rational) slower miner should instead optimize for a range of smaller fees that they have a reasonable chance of capturing (using their cheaper equipment). As a consequence, slower miners could stay in business, competing with each other in order to provide value for those who choose to pay less for longer wait times, based on the individual consumer or business' time preference. Competition at all tx price levels would result in a stable tx price as a function of tx time. Raising the limit will postpone the pricing of transaction times until the next limit is reached. Removing the limit entirely will prevent this state from being realized, and we will never know how long it should take to get a tx confirmed.

No other system of exchange has priced transaction times, so it's yet another feature bitcoin would have that others don't. What's more, we would get this feature for free, without having to do a hard fork. Please correct me if my reasoning is flawed or if I've missed some crucial aspect of the protocol that makes this impossible.

tl;dr I argue we should keep the blocksize where it is: the market will respond by pricing transaction times, which is a feature we could all use!
Jump to: