Bitcoin Forum
December 08, 2016, 10:17:44 AM *
News: To be able to use the next phase of the beta forum software, please ensure that your email address is correct/functional.
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Block size limit / fee problem  (Read 681 times)
Oli11
Newbie
*
Offline Offline

Activity: 4


View Profile
July 10, 2011, 09:49:39 AM
 #1

I found this discussion quite interesting:

http://forum.bitcoin.org/index.php?topic=1865.msg116300#msg116300

Quote
Visa handles around 8,000 transactions per second during holiday shopping and has burst capacity up to 10,000tps.

Of course MasterCard also handles quite a bit. I don't have figures for them but I guess it'd be in the same ballpark.

I don't believe artificial scarcity is a good plan nor necessary in the long run, so requiring end-user software to enforce these sorts of rules makes me nervous. I don't plan on adding max size checks to BitCoinJ at least, they aren't even enforceable as in future SPV clients probably won't request full blocks.

It seems to be a nontrivial question how to handle as many transactions as needed but still keep fees high enough to make mining profitable. I think it could work without any kind of block size limit, neither fixed nor automatically adjusted:

For miners to store a transaction permanently on disk costs a certain amount of money. They can choose which transactions to accept and which to reject. Usually they will accept transactions with fees high enough to compensate the cost of storing the transaction permanently. Note that under the assumption that prices for storage memory continue to decrease exponentially over time, the cost of storing a transaction forever is finite.

The desirable equilibrium transaction fee (economic efficiency) is reached when to the fee for a transaction is equal the sum of costs it causes for all miners together to store this transaction. The problem with the current method is that is causes a social dilemma in the way that for each miner it is already efficient to include a transaction in a block if the transaction fee compensates only his own cost, not all the cost for the other miners also.

An approach would be to not spill all of the transaction fees of the transactions in the block directly to the miner who generated the block, but is dispensed over a number of blocks n in the future (excluding the block in which the transaction is confirmed first). This means a the miner of block x receives the nth part of the fees of all the transactions in the blocks from x-n to x-1. n just needs to be sufficiently large that the probability that one miner generates n consecutive blocks faster than the rest of the network is rather small (maybe n=2 is sufficient).

Which effect would this have on the incentive for a miner to accept a transaction in a block? Assume the miner in average mines a fraction 1/q of all blocks. It would be efficient for him to include the transaction, if his own storage cost for this transaction is < fee/q as the probability for him to get the 1/n of the fee is n/q.

Of course q is different for each miner. This means mining is only profitable if your q is sufficiently small, or in other words your computing power is high enough. But this problem exists in any situation where storage cost becomes an issue.

As a nice side effect, it would reduce the desire to not continue the longest chain, but to reject the latest block, because there are many transaction fees inside you want to have for yourself. The decision for miners if the accept of reject a block would be purely based on if the transactions in it are 'social', in the sense that the amount of fees stands in a reasonable relation to the cost for the network to store the data. If n would be made large enough, the fees per block would change very smoothly over time, which would also contribute to this effect.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1481192264
Hero Member
*
Offline Offline

Posts: 1481192264

View Profile Personal Message (Offline)

Ignore
1481192264
Reply with quote  #2

1481192264
Report to moderator
1481192264
Hero Member
*
Offline Offline

Posts: 1481192264

View Profile Personal Message (Offline)

Ignore
1481192264
Reply with quote  #2

1481192264
Report to moderator
1481192264
Hero Member
*
Offline Offline

Posts: 1481192264

View Profile Personal Message (Offline)

Ignore
1481192264
Reply with quote  #2

1481192264
Report to moderator
incognegro
Newbie
*
Offline Offline

Activity: 23


View Profile
July 10, 2011, 10:07:28 AM
 #2

If miners were allowed to reject blocks in any sort of way it would undermine the entire system because it would allow some chance that a block would not be processed and the whole chain would grind to a halt.
The bigger question is how the fee schedule will scale in the future, far future actually.
JoelKatz
Legendary
*
Offline Offline

Activity: 1386


Democracy is vulnerable to a 51% attack.


View Profile WWW
July 10, 2011, 10:24:24 AM
 #3

If miners were allowed to reject blocks in any sort of way it would undermine the entire system because it would allow some chance that a block would not be processed and the whole chain would grind to a halt.
Well then we're screwed, since miners are currently allowed to reject any blocks for any reason they like. They may attempt to continue any chain they please.

Of course, if they continue invalid chains, any blocks they mine will never get into the public chain. And if they continue chains that aren't the longest, any blocks they mine are very unlikely to ever get into the public chain. But a miner is quite welcome to attempt to build a longer chain that "steals" transactions fees from someone else's blocks. They'll just need to find at least two blocks in less time than the rest of the network needs to fine one. If they can do that, more power to them.

I am an employee of Ripple.
1Joe1Katzci1rFcsr9HH7SLuHVnDy2aihZ BM-NBM3FRExVJSJJamV9ccgyWvQfratUHgN
Oli11
Newbie
*
Offline Offline

Activity: 4


View Profile
July 10, 2011, 01:09:11 PM
 #4

Of course, if they continue invalid chains, any blocks they mine will never get into the public chain. And if they continue chains that aren't the longest, any blocks they mine are very unlikely to ever get into the public chain. But a miner is quite welcome to attempt to build a longer chain that "steals" transactions fees from someone else's blocks. They'll just need to find at least two blocks in less time than the rest of the network needs to fine one. If they can do that, more power to them.

I could imagine in the future this gets more likely as it is today. Building larger mining facilities will be more profitable, especially if storage costs are an issue. So all small miners will be put out of business and only a few large ones survive. If you own maybe 10 percent of the overall mining computing power, it could be efficient to try to create 2 blocks faster than the rest, especially if the last one (you reject) contains a transaction with a big fee (much larger than the one you get for just continuing the last block).

Also when miners start to reject blocks for economic/political reasons, wouldn't it be very tempting to play tactical games? If the majority of computing power is not stoically extending the longest chain anymore, everyone knows it's quite possible that the currently longest chain is not continued, so it is not necessarily the best choice to do so. I admit I don't see through this problem completely. The objective for a commercial miner would be to create a block that

a. results in as much fees as possible for himself
b. is likely to be continued

Maybe I just confuse myself, but isn't it possible that if everyone thinks that way, not continuing the longest chain might often be more profitable? Would be interested in a game-theoretical proof of what the most efficient tactic would be then...
JoelKatz
Legendary
*
Offline Offline

Activity: 1386


Democracy is vulnerable to a 51% attack.


View Profile WWW
July 10, 2011, 01:22:49 PM
 #5

I could imagine in the future this gets more likely as it is today. Building larger mining facilities will be more profitable, especially if storage costs are an issue. So all small miners will be put out of business and only a few large ones survive. If you own maybe 10 percent of the overall mining computing power, it could be efficient to try to create 2 blocks faster than the rest, especially if the last one (you reject) contains a transaction with a big fee (much larger than the one you get for just continuing the last block).
Say you have fraction n of the hashing power. And say a block comes through with x BTC in fees. You now have two choices, you can accept that block or reject that block.

If you accept that block, your expected income is 50/n. Your chance of mining the next block is n, and you will get 50 BTC for it. If you ignore that block, your expected income is (50+x)/n^2. Your chance of mining two blocks in a row is 1/n^2 and your revenue is (50+x).

Let's set these equal to find the breakeven point, you get:
X = 50(n-1)
So if you have 1/10th the hashing power, you'd need a transaction with fees of more than 450BTC. Not very likely. Even with 3/10 of the hashing power, you'd need 100 BTC in fees.

However, there's the proof that there's no point --even with 50% of the hashing power, you'd need 50 BTC in fees to make it worth it. With more than 50% of the hashing power, you can do anything. So this attack is not worth worrying about. (Unless we ever see fees of over 50 BTC.)

I am an employee of Ripple.
1Joe1Katzci1rFcsr9HH7SLuHVnDy2aihZ BM-NBM3FRExVJSJJamV9ccgyWvQfratUHgN
Oli11
Newbie
*
Offline Offline

Activity: 4


View Profile
July 10, 2011, 03:33:30 PM
 #6

So this attack is not worth worrying about. (Unless we ever see fees of over 50 BTC.)

Ehm, okay, what I had in mind (and was the thread above also talking about) was the situation in the future, when awards for mining new blocks become neglectable, and miners' income is for the largest part from fees. Sorry for the confusion. I should have made this more clear.

I agree that right now the system is stabilized by the fact that typically awards >> fees. But when this is no longer true?

A scenario that came to my mind after my last post is:

Assume the last block was published just during the last second and it contains all transactions worth including, published up to this time. Further assume that upcoming fees from new transactions are uniformly distributed over time and the block before that one was created 10 minutes ago (as on average). Now you want to mine a new block. What kind of block do you try to find for the first 10 minutes since the last block?

- If you continue the chain the fees you would receive for the new block are less than the ones for the last block.
- If you fork one block before the last and include all profitable transaction up to now, it is very unsure that your branch will be the one continued
- But if you fork one block before the last and include in your new block only transactions that were also in the last block, but not quite all of them, then you receive fees somewhat less than contained in the last block. This would be more than you would get for continuing from the last block. Other miners would have to decide now whether to continue after your new block or after the last one. Both chains have identical length, so are equally likely to persist, but as you took somewhat less fees than the other block, it means more fees for them to continue your one.

And this seems not the end of the story, as one has to analyze what the most profitable decision for other miners would be now. Which I must admit, gives me a headache...
kjj
Legendary
*
Offline Offline

Activity: 1302



View Profile
July 10, 2011, 04:03:18 PM
 #7

The odds of successfully switching the chain are quite low, even if you have a huge amount of hashing power.  Unless there is a block with unusually high fees, it will never be profitable to try working on any block other than the current one.

p2pcoin: a USB/CD/PXE p2pool miner - 1N8ZXx2cuMzqBYSK72X4DAy1UdDbZQNPLf - todo
I routinely ignore posters with paid advertising in their sigs.  You should too.
JoelKatz
Legendary
*
Offline Offline

Activity: 1386


Democracy is vulnerable to a 51% attack.


View Profile WWW
July 10, 2011, 04:22:52 PM
 #8

A scenario that came to my mind after my last post is:

Assume the last block was published just during the last second and it contains all transactions worth including, published up to this time. Further assume that upcoming fees from new transactions are uniformly distributed over time and the block before that one was created 10 minutes ago (as on average). Now you want to mine a new block. What kind of block do you try to find for the first 10 minutes since the last block?
You are quite right. When the fees exceed the base, this 'attack' becomes practical and sensible. I still don't think it much matters, but it might mean people might want to allow one or two extra confirmations to pass.

I am an employee of Ripple.
1Joe1Katzci1rFcsr9HH7SLuHVnDy2aihZ BM-NBM3FRExVJSJJamV9ccgyWvQfratUHgN
Oli11
Newbie
*
Offline Offline

Activity: 4


View Profile
July 10, 2011, 04:48:32 PM
 #9

You are quite right. When the fees exceed the base, this 'attack' becomes practical and sensible. I still don't think it much matters, but it might mean people might want to allow one or two extra confirmations to pass.

Could be that would solve it. As long as there is a non-neglectable amount of computing power in the hands of idealistic miners who just continue the longest chain, the system might be stable.

But to me it's quite a curious fact, that there is no good reason to continue the longest chain, except if one believes that everyone else will do so. So it's a self-fulfilling prophesy. And this might tip if there is a good reason (like a financial one) to do otherwise...
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!