user293: The current fee mechanism is confusing and difficult to implement.
The current fee system uses transaction size and the size of the block the transaction is due to appear in to calculate the fee. If you're writing a Bitcoin client such as a web wallet or android app this is not easy to implement.
Is there any reason we couldn't have a well documented fee mechanism along the following lines ?

Fixed fee, or
% of transaction amount, or
% of transaction amount capped or floored.


user942: Miners can choose any fee schedule they want. However, a fixed fee has proven problematic on scamcoin chains like Solidcoin, when people create huge (data-size) transactions.

user3134: Why can't fees be calculated based on current network activity, so that people wanting cheaper fees will send money at quieter times? This will mean a more even volume of transactions which will enable fewer miners and so increasing their revenue?
I don't know about block size is this the same thing, I still don't totally understand the mechanics of it but it would seem logical to reduce waste in the network, so zero fee payers might only get there transactions processed at quieter times.

user909: We could make the cost related to the current difficulty (of generating a new block) but quite frankly this slightly complex system is just fine. It only kicks in on strange or really small transactions and it's not that high.
Not only that but it's only the default with which the standard Bitcoin client now works. If you think a much lower fee would also suffice, why don't you starting mining including everything with that fee?
There's a clear difference between a profit driven fee and an anti-spam measure. I think this is still solidly in the latter category.

user78: Why set a fee, when the market can very well find it?
How do you know 0.005 BTC is "the right amount"? This is important, because it will become the main incentive to mine, when the block reward drops to zero. It's impossible to predict now what the best amount will be ... too low, and not enough miners will mine, opening the network to double spend. Too high, users suffer.
Practically speaking - for the time being, just use a constant 0.005. APIs will be available in the future to determine a recommended TX fee, based on actual statistics.

user575: The current fee schedule exists to defend against spamming the network. The load on the network has nothing to do with the amount transferred and everything to do with the size of the transaction. The likelihood that a transaction is intended as spam rather than legitimate is influenced by the use of recent coins (since an attacker will rapidly use the same coins again and again).
If you enforce a fee which is independent of those, you'll allow attackers to overload the network by broadcasting rapid, huge transactions and having to pay only 0.005 BTC fee each.
The value 0.005 BTC specifically is a lot for legitimate microtransactions.
In the future the way fees work will be completely different, but nobody knows exactly how.

user323: I was also giving the problem a bit of thought, and here are some conclusions I reached:

It is impossible to set a fixed fee once and for all, as one does not know the volume of transactions that will appear in the future, nor how big an exponent of Bitcoins will be a "common sight" (before Bitcoins became popular, someone paid 10kBTC for a pizza for example). So the fee would need to be adjusted over time, a bit like difficulty.
Percentage of transaction amount would be harming the people owning large amount of Bitcoins in one address, as in order to spend some of their Bitcoins, they need to send the rest back to themselves. This would encourage people to spread their Bitcoins over many addresses, creating an accounting mess at times.
Calculating the fee based on real-world value of 1BTC would be too hard, as it would require a lot of knowledge form outside the network.
Calculating the fee based on current difficulty can be slippery for transactions sent around the difficulty adjustment block.

So in general, the current way of calculating the fee might not be that good, but nobody smart enough has come up with anything better.

293: <p>The current fee mechanism is confusing and difficult to implement.</p>

<p>The current fee system uses transaction size and the size of the block the transaction is due to appear in to calculate the fee. If you're writing a Bitcoin client such as a web wallet or android app this is not easy to implement.</p>

<p>Is there any reason we couldn't have a well documented fee mechanism along the following lines ?</p>

<ul>
<li>Fixed fee, or</li>
<li>% of transaction amount, or</li>
<li>% of transaction amount capped or floored.</li>
</ul>
 942: <p>Miners can choose any fee schedule they want. However, a fixed fee has proven problematic on scamcoin chains like Solidcoin, when people create huge (data-size) transactions.</p>
 3134: <p>Why can't fees be calculated based on current network activity, so that people wanting cheaper fees will send money at quieter times? This will mean a more even volume of transactions which will enable fewer miners and so increasing their revenue?</p>

<p>I don't know about block size is this the same thing, I still don't totally understand the mechanics of it but it would seem logical to reduce waste in the network, so zero fee payers might only get there transactions processed at quieter times.</p>
 909: <p>We could make the cost related to the current difficulty (of generating a new block) but quite frankly this slightly complex system is just fine. It only kicks in on strange or really small transactions and it's not that high.</p>

<p>Not only that but it's only the default with which the standard Bitcoin client now works. If you think a much lower fee would also suffice, why don't you starting mining including everything with that fee?</p>

<p>There's a clear difference between a profit driven fee and an anti-spam measure. I think this is still solidly in the latter category.</p>
 78: <p>Why set a fee, when the market can very well find it?</p>

<p>How do you know 0.005 BTC is "the right amount"? This is important, because it will become the main incentive to mine, when the block reward drops to zero. It's impossible to predict now what the best amount will be ... too low, and not enough miners will mine, opening the network to double spend. Too high, users suffer.</p>

<p>Practically speaking - for the time being, just use a constant 0.005. APIs will be available in the future to determine a recommended TX fee, based on actual statistics.</p>
 575: <p>The current fee schedule exists to defend against spamming the network. The load on the network has nothing to do with the amount transferred and everything to do with the size of the transaction. The likelihood that a transaction is intended as spam rather than legitimate is influenced by the use of recent coins (since an attacker will rapidly use the same coins again and again).</p>

<p>If you enforce a fee which is independent of those, you'll allow attackers to overload the network by broadcasting rapid, huge transactions and having to pay only 0.005 BTC fee each.</p>

<p>The value 0.005 BTC specifically is a lot for legitimate microtransactions.</p>

<p>In the future the way fees work will be completely different, but nobody knows exactly how.</p>
 323: <p>I was also giving the problem a bit of thought, and here are some conclusions I reached:</p>
<ul>
<li>It is impossible to set a fixed fee once and for all, as one does not know the volume of transactions that will appear in the future, nor how big an exponent of Bitcoins will be a &quot;common sight&quot; (before Bitcoins became popular, <a href="http://www.bitcointrading.com/forum/index.php?topic=328.0" rel="noreferrer">someone paid 10kBTC for a pizza for example</a>). So the fee would need to be adjusted over time, a bit like difficulty.</li>
<li>Percentage of transaction amount would be harming the people owning large amount of Bitcoins in one address, as in order to spend some of their Bitcoins, they need to send the rest back to themselves. This would encourage people to spread their Bitcoins over many addresses, creating an accounting mess at times.</li>
<li>Calculating the fee based on real-world value of 1BTC would be too hard, as it would require a lot of knowledge form outside the network.</li>
<li>Calculating the fee based on current difficulty can be slippery for transactions sent around the difficulty adjustment block.</li>
</ul>
<p>So in general, the current way of calculating the fee might not be that good, but nobody smart enough has come up with anything better.</p>
