Pages:
Author

Topic: What will keep transaction fees up? - page 2. (Read 15432 times)

legendary
Activity: 1222
Merit: 1016
Live and Let Live
November 22, 2010, 04:01:45 PM
#66
I was under a misunderstanding on how bitcoin worked Angry, It still doesn't stop the network for ignoring blocks that include to-many new low fee transaction as a whole, just makes the process a little less elegant.
administrator
Activity: 5222
Merit: 13032
November 22, 2010, 03:03:12 PM
#65
Are you sure?

Yes. The data covered by the hash includes the Merkle root, which is (basically) a hash of all of the transactions in your block. Adding a transaction changes the Merkle root, which changes the header, which makes you hash invalid.

People might very well hold their generation power until after some high-fee transactions have accumulated, but they'll have to start from scratch.
legendary
Activity: 1708
Merit: 1010
November 22, 2010, 01:58:25 PM
#64
The network will evolve into a big game of ‘transaction fee hash chicken’ where a few (or a single) generators will have found a valid hash before the time they announce it.  They will keep it secret until a certain amount of transaction fees has accumulated, at that point they will announce it.

Adding transactions invalidates your block hash.

Are you sure?  I may be wrong, but my understanding was that the hashing of a block is the previous block's headers & transactions, not the transactions that you are putting into your block.  This way the transaction queue can pile up while you are trying to hash the previous set without interuptions.

Hmm, there might be problems with that as well, so I'm probably wrong about that, as that might permit a malicious node to strip the block owner's own address from the reward transaction and replace it with his own, in the hopes of spreading around his altered block faster than your's.
legendary
Activity: 1708
Merit: 1010
November 22, 2010, 01:53:17 PM
#63
Close to 100%. You will get few generators who selflessly sacrifice their own profits to keep prices up for their competitors.

I’ll try and explain it more formally. (The entire system is quite complex, but I’ll give it a go).
  

That's seems to be a long proof to show that future generators purely motivated by profit would modify their clients to jump in & out of the game based on the presence of unserviced transaction fees in the transaction queue, while ignoring transactions that don't meet their own minimum fee, once the block reward drops low enough that it is not enough on it's own.  This is pretty much by design, as that is when we will hit a balanced difficulty level.  Yet, even if there are profit seeking generators that would benefit by stopping and starting, it is unreasonable to assume that there will not be significant generation motivated by rational self interest other than profit.  For example, some future generators might be motivated to maintain a minimum level of security for defense of their own balances; or a future version of a bitcoin credit union might be motivated to process transactions for free.  Even if free transaction generators were selective in who they accept transactions from, they are likely to have agreements with other such institutions to process one anothers' mermbers' transactions.

And if I can think of ways around it now, I'm sure that there will be other forces influencing the pricing when the market actually comes to that point.  This is way to complex to predict.
administrator
Activity: 5222
Merit: 13032
November 22, 2010, 11:08:49 AM
#62
The network will evolve into a big game of ‘transaction fee hash chicken’ where a few (or a single) generators will have found a valid hash before the time they announce it.  They will keep it secret until a certain amount of transaction fees has accumulated, at that point they will announce it.

Adding transactions invalidates your block hash.
legendary
Activity: 1222
Merit: 1016
Live and Let Live
November 22, 2010, 10:33:18 AM
#61
I agree with db on this. The issue can be put simply like this: the generator which accepts the lowest fees, makes the most profit. given any two generators with the same capacity.

I don't quite understand da2ce7's post, but he seems to be implying that it's profitable "in the long run" to accept higher fees only. This seems flawed, because in the short run, such a generator will be the first to go out of business.

Ok long post, I think that I’ll re-write it when I’m less tired.  Hopefully people can see what I’ve been saying, that the network as it is now will self-balance and maintain the transaction fees.

Edit: I have some parts of bitcoin's structure wrong Sad, instead of 'keeping the block secret', the network will just 'wait until there is a block they like.'  Once a block is generated no more changes can be made to it inc. adding new transactions.


It is true that any generator that accepts the lowest fees will make the most profit/work done, in the short run.   This is half of the story tho.  I have done a very poor job of explain the other half: why any given generator will decide not to undercut the others (much).  It takes a little bit of market and game theory, but hey that stuff is fun isn’t it?!

Firstly, when the value gained from transactions is much larger than new coins, the divergence between the networks average hashing rate and maximum will be much larger.  The network will evolve into a big game of ‘transaction fee hash chicken’ where a few (or a single) generators will have found a valid hash before the time they announce it.  They will keep it secret until a certain amount of transaction fees has accumulated, at that point they will announce it.  Generally if a block is announced before any other it will be the winning bock.

Over the course of the 2016 blocks there will average close to 10min per winning block, stabilizing the difficulty.  When the transaction fees go up, the incentive to ‘jump in earlier’ will increase, thus increasing the difficulty.  Even on this case alone, even if every generator accepted ever transaction, this is enough to push the transaction fees up. (But that is a side point, and in reality will be a very small proportion of the reason that transaction fees will be maintained)

The earlier that a generator ‘jump in’ on average more of the other generators will have not found their block, whenever a generator finds a block before jumping in, it automatically moves to the next block, increasing the chance of winning two in a row.

After a generator ‘jumps in’ the others generators that have generated the block will announce their blocks straight after.

The rest of the generators will need to decide who they support for the next block.  They will generally go with the block that has the highest threshold for transaction fees (for new transactions, low fee older transactions will be always included).

All the generators, whom jump in together, will need to decide to give up and generate for the block that has the highest threshold for transaction fees, or gamble and hope their head start will beat the rest of the network to the next transaction.

If none of the blocks are attractive to move to (accept too low fee transactions), the rest of the generation will wait for a block that accepts only higher fees.

If the next block is generated and announced before anyone else, and it is reasonable, it is automatically accepted and everyone moves to the next block.  If many jump in, then the one that accepts the least low fees wins again. And so on.

One can see that the other generators won’t pick the generators that undercut them.  This is self-balancing, as if the difficulty goes too high, the generators will all accept as many transactions as they can, lowering the transaction fee, lowing the incentive to generate, lowering the difficulty.  Thus the incentive to wait and ‘jump in later’ will increase… and so on.
hero member
Activity: 527
Merit: 500
November 22, 2010, 06:51:03 AM
#60
Let's drop the analogies then and go straight at the problem.

The maximum block size is big, having room for all or most transactions.
Therefore, transaction fees are (close to) zero.
Therefore, total block transaction fees are also (close to) zero.
Therefore, all for-profit block generation ceases.
Therefore, difficulty drops.

If for-profit block generation was the only generation going on then difficulty would be very low and double spending very easy. The only thing that can save the system is people generating at a loss.

Now we have a lot of bitcoin holders that would lose greatly if payments become unreliable and confidence in the system drops. Will they contribute to their common good? If they do it will not be out of self interest. If you contribute to the system reliability you lose your contribution and benefit very little because the benefit is shared with everyone. If you use the system without contributing you benefit from everyone elses contributions anyway.

The usual sad result is that everyone tries to live off of everyone elses contributions, very little is actually contributed and everyone loses.

Classic tragedy of the commons.


I agree with db on this. The issue can be put simply like this: the generator which accepts the lowest fees, makes the most profit. given any two generators with the same capacity.

I don't quite understand da2ce7's post, but he seems to be implying that it's profitable "in the long run" to accept higher fees only. This seems flawed, because in the short run, such a generator will be the first to go out of business.

I want to start thinking about solutions.

One avenue might be to impose some sort of protocol restriction on the fee distribution of transactions in a block. In such a way that generators can't just include every little transaction in a block or else the network will reject it. For example, for a block to be valid, no more than half of the transactions in the block can have fees below the average fee for that block. So, if 10 transactions have a fee of 1BTC and 10 more have a fee of 0.5BTC the average is 0.75. Now half the fees are already below this so an additional transaction with a 0.5BTC fee cannot be accepted, but a 0.8BTC fee is okay. That's just an example, I'm not sure if it would actually work.
legendary
Activity: 1222
Merit: 1016
Live and Let Live
November 22, 2010, 02:22:58 AM
#59
Close to 100%. You will get few generators who selflessly sacrifice their own profits to keep prices up for their competitors.

I’ll try and explain it more formally. (The entire system is quite complex, but I’ll give it a go).

Limited and Unlimited domains:
Demand: Number of transactions. (Limited)
Demand Restriction: Amount that the bitcoin community is willing to spend on transactions. (Limited)
Demand Modifier:  Priority to record transaction in block chain. (Choice)
Supply: Recording transactions in block chain. (Unlimited or limited, depending on block size, variable of interest.)
Supply Restriction: Cost of generating block. (Variable, Limited)
Supply Restriction, Restriction: Number of block generated / time. (Fixed, Limited)

Now, supply and demand would dictate that an unlimited resource (space in block chain) with a limited demand (Number of transactions) will tend towards no cost.  This is the entire basis of the argument to limit the size of the block, to create a ‘market’ to be included in such block.  I’ll explain later (another post, this is already getting long) that this effectively is an artificial tax on the entire bitcoin community, and will diminish the performance of the economy.

The main fallacy is that happening is that the real cost isn’t just resource cost (dictated by supply and demand):
 
Resource Cost = Demand (transactions) / Resource Supply (space in block chain)
Supply Cost = Supply Restriction (Generation cost) * Supply Amount (Number of Transactions)
Cost = Resource Cost + Supply Cost + Profit

Even if the resource cost is 0, there still is a supply cost.  This can is because of the restricted supply domain. (A restriction on supply is the inverse of supply)

But why doesn’t the Supply Cost tend to zero also, through competition? This is a slightly less obvious, it depends on the time Doman: (number of block generated / time) fixed at around 1/10 bock per minute.

There is an unlimited supply of block in the timeless domain; this would normally push the price down to 0, making no incentive to produce blocks.  However there is a restriction in the time domain: the number blocks generated per time.

Therefore the calculations can be summarized as the first partial derivative, in respect to time.

See Attachment eq1 and eq2.


Where c = cost, d = demand, s = supply, t = time.

you can see for any time period (t), the demand and supply can be non zero. (eq2) as s, and d are for the prescribed t.

So simply, a selfish generator will always be better off by charging the real cost of transactions.  (In the time domain).  That means that the selfish thing in the long run is to not accept low fee transactions.

Hope this heps.  It is a bit of an over simplification, but I think it gets the basic message across.

Edit: Note, this is a simplification of supply and demand that works in percentage changed, and therefore limits and trends can be gleaned from it... It is _NOT_ useful in predicting absolute price.  
legendary
Activity: 1246
Merit: 1016
Strength in numbers
November 22, 2010, 12:56:22 AM
#58
In the future we will have generators that will _not generate_ until there is a certain amount of high fee blocks waiting, and then they will automaticity turn on their massive generation capacity and quickly generate the block.  This leaves the average difficulty relatively low, and makes a strong incentive to include larger fees.  These generators plainly won’t include any low fee blocks, low fee blocks will have to wait around for a charity block.

How will the fees build up if the smaller generators are constantly processing them. there isn't going to be a sudden influx of high fee transactions... The large generators will simply be leaving all the profit to competitors. And if the competitors are snapping up any transaction no matter how small the fee, there is little incentive to pay a high fee in the first place.

There is a lot of guessing going in this thread, for we seem to have all fallen victim to the idea that we can guess the nature of a market that doesn't yet exist.  As it is now, there is no incentive to pay a transaction fee at all, as the fee structure that currently exists is intended to limit spamming without prohibiting legitimately non-conforming transactions; not offer a profit motive to generators decades away.  The fee structure can be altered without much difficulty on a technical level, but the future political issues are as difficult to predict as the market is.  Yet many seem to get blinded by the profit motive as the only motive for generation, which can easily be shown to not be the case presently, and I have seen no compelling reason as to why it must become the only reason in the future. 

This is a good point.

While I wouldn't be real excited if, for example, transaction fees didn't even exist and the plan was that people would donate cycles since they wanted it to work, I can't even be sure that would fail. As the system is, I think the incentive scheme is good, but can't tell quite what the ultimate drivers of difficulty will be and to what extent, but one way or another I think it will be huge. People buy lottery tickets that are -EV all the time, millions of them daily. Well, when 100 million people are using bitcoin a 12.5+fees win might be pretty huge. People might buy that ticket way way more often than would be rational.
legendary
Activity: 1596
Merit: 1100
November 22, 2010, 12:14:12 AM
#57
Ironically, the spamming has created an incentive to pay at least a 0.01 TX fee (the Bitcoin Faucet does this now).
legendary
Activity: 1708
Merit: 1010
November 22, 2010, 12:08:39 AM
#56
In the future we will have generators that will _not generate_ until there is a certain amount of high fee blocks waiting, and then they will automaticity turn on their massive generation capacity and quickly generate the block.  This leaves the average difficulty relatively low, and makes a strong incentive to include larger fees.  These generators plainly won’t include any low fee blocks, low fee blocks will have to wait around for a charity block.

How will the fees build up if the smaller generators are constantly processing them. there isn't going to be a sudden influx of high fee transactions... The large generators will simply be leaving all the profit to competitors. And if the competitors are snapping up any transaction no matter how small the fee, there is little incentive to pay a high fee in the first place.

There is a lot of guessing going in this thread, for we seem to have all fallen victim to the idea that we can guess the nature of a market that doesn't yet exist.  As it is now, there is no incentive to pay a transaction fee at all, as the fee structure that currently exists is intended to limit spamming without prohibiting legitimately non-conforming transactions; not offer a profit motive to generators decades away.  The fee structure can be altered without much difficulty on a technical level, but the future political issues are as difficult to predict as the market is.  Yet many seem to get blinded by the profit motive as the only motive for generation, which can easily be shown to not be the case presently, and I have seen no compelling reason as to why it must become the only reason in the future. 
hero member
Activity: 527
Merit: 500
November 21, 2010, 11:51:07 PM
#55
In the future we will have generators that will _not generate_ until there is a certain amount of high fee blocks waiting, and then they will automaticity turn on their massive generation capacity and quickly generate the block.  This leaves the average difficulty relatively low, and makes a strong incentive to include larger fees.  These generators plainly won’t include any low fee blocks, low fee blocks will have to wait around for a charity block.

How will the fees build up if the smaller generators are constantly processing them. there isn't going to be a sudden influx of high fee transactions... The large generators will simply be leaving all the profit to competitors. And if the competitors are snapping up any transaction no matter how small the fee, there is little incentive to pay a high fee in the first place.
db
sr. member
Activity: 279
Merit: 261
November 21, 2010, 07:33:50 PM
#54
The problem is that there isn’t an unlimited supply, in this case of time.  The generator that accepts every transaction is not going to be 100% of the blocks generated, therefore there will be transactions that don’t’ get accepted in every block (i.e. low fee ones).  What people are paying for isn’t ‘to be included’ (where they are included anyway in the long run), but rather to be included more reliably in the next block(s).

Close to 100%. You will get few generators who selflessly sacrifice their own profits to keep prices up for their competitors.
legendary
Activity: 980
Merit: 1020
November 21, 2010, 07:09:59 PM
#53
This should be moved to Economics.
legendary
Activity: 1222
Merit: 1016
Live and Let Live
November 21, 2010, 07:02:19 PM
#52
Accepting every transaction is the selfish thing. Every batch from the oven yields an unlimited amount of bread. And there is a thousand people who offer to pay very little. Will the baker decline to take the money, throw away the bread and let the competitors make the sales instead?

The problem is that there isn’t an unlimited supply, in this case of time.  The generator that accepts every transaction is not going to be 100% of the blocks generated, therefore there will be transactions that don’t’ get accepted in every block (i.e. low fee ones).  What people are paying for isn’t ‘to be included’ (where they are included anyway in the long run), but rather to be included more reliably in the next block(s).
legendary
Activity: 1222
Merit: 1016
Live and Let Live
November 21, 2010, 06:55:37 PM
#51
The bread story is not so good because almost everyone prefers the morning bread and won't wait just for a discount.

This point just confirms the bread analogy; people who like to buy bread in the morning are akin to the people who want to be included in the block chain quickly; they pay a price for this privilege.

The bakery analogy is very correct, including low fee transactions is like making bread at cost/low profit, one can do it, however selfish thing IN THE LONG RUN is to make only as much bread that people will buy at a price that MAXIMIZES profit.

In the future we will have generators that will _not generate_ until there is a certain amount of high fee blocks waiting, and then they will automaticity turn on their massive generation capacity and quickly generate the block.  This leaves the average difficulty relatively low, and makes a strong incentive to include larger fees.  These generators plainly won’t include any low fee blocks, low fee blocks will have to wait around for a charity block.

There will be bank generators that generate regularly, however charge high fees for ANY transaction from the competition. (Just like ATM fees).

The large generators that do this will have a larger percentage of the high fees; they will also not waste electricity on nothing.
legendary
Activity: 1708
Merit: 1010
November 21, 2010, 06:55:00 PM
#50


We need more debate on this issue. This is a serious economic flaw.

This is not a flaw, economicly or otherwise.
hero member
Activity: 527
Merit: 500
November 21, 2010, 06:14:36 PM
#49
I think there is an important difference. When one generator is faced with deciding to take tiny fees and fill up the block or leave them will compare the immediate gain of fees to his future loss via the general reduction of fees. But unless he has significant market share this general influence will affect other generators more than himself.



I was thinking that he should ignore the influence on other generators and simply calculate how much on average he expects fees to rise by keeping the cheapest fees out of his blocks and see if it is worth it. But then I realized that he actually benefits from reducing fees because they will remove marginal generators and decrease difficulty resulting in him generating blocks more quickly. And he will keep these particular small fees from going to a competitor as well.

I still can't say for sure, but I think the best strategy will be to accept all fees.

The bread story is not so good because almost everyone prefers the morning bread and won't wait just for a discount.

This is the problem: there is NO incentive to NOT accept every fee paying transaction, unless the fee is extremely small (ie. it costs more for the ram + cpu time than the value of the fee). Fundamentally, I think there has to be a built in cost for generators to process a fee and this cost must scale with economic activity.

Adjusting the block size automatically is fine, if you can find a function that scales appropriately. This creates an artificial scarcity for transactions, so generators prioritize higher fees.

We need more debate on this issue. This is a serious economic flaw.
legendary
Activity: 1246
Merit: 1016
Strength in numbers
November 21, 2010, 12:27:53 PM
#48
@da2c7

Why would a generator refuse a transaction with any amount of fee if s/he can still add it to the block?

A bank doesn't need to mind with transactions the way you suggest. All transactions in between its clients don't need to be real bitcoin transactions, they can be just updates in the bank database. The bank would only need to send transactions to the chain when transferring from/to an "outsider" address.


Some will, that is charitable, but most aren’t that charitable (and this is a good thing).  I think that an analogy is in order.

A man runs a bakery; he bakes a certain amount of goods early each morning, and sells them throughout the day, when he has leftovers he may reduce the price to flog the bread off, or may take it home for his chooks to eat.

The fallacy that this entire discussion has been trapped into is the assumption that the ‘selfish’ thing is to accept every transaction, no matter how small the fee is, rather that is ‘altruistic.’ The real selfish thing is to accept whoever pays into the block.

See most that run bakeries know that most people buy the bread anyway, cheap or not.  They just wait until the end of the day when it is on sale. That is why it is (more) profitable to take the bread home for you chooks.

Both bakeries and generators work on the lovely formula:  Average Price = (Total Cost + Profit) / Average Sales.

On banks, banks will allow members free or cheap transactions for personal use, if they report the transaction to the bank.


I think there is an important difference. When one generator is faced with deciding to take tiny fees and fill up the block or leave them will compare the immediate gain of fees to his future loss via the general reduction of fees. But unless he has significant market share this general influence will affect other generators more than himself.



I was thinking that he should ignore the influence on other generators and simply calculate how much on average he expects fees to rise by keeping the cheapest fees out of his blocks and see if it is worth it. But then I realized that he actually benefits from reducing fees because they will remove marginal generators and decrease difficulty resulting in him generating blocks more quickly. And he will keep these particular small fees from going to a competitor as well.

I still can't say for sure, but I think the best strategy will be to accept all fees.

The bread story is not so good because almost everyone prefers the morning bread and won't wait just for a discount.
db
sr. member
Activity: 279
Merit: 261
November 21, 2010, 12:23:15 PM
#47
But don't you need to accept a price?

How do you mean?
Pages:
Jump to: