Author

Topic: Mining fees need to be lowered if Bitcoin is to go mainstream. (Read 1621 times)

donator
Activity: 1218
Merit: 1079
Gerald Davis
DeathandTaxes thanks for the explanations. It was very informative and helpful. When do you think the fees will actually be 0.01mBTC (I know technically they are now but in practice they arent) or in other words when will the critical mass updatte the clients so I can take advantage of this new fee structure..

Kinda hard to predict.  You can create a tx with a 0.01 mBTC fee per KB right now using createrawtransaction API call.  Any tx with a 0.01 mBTC per KB fee will be dropped by v0.8x nodes and relayed by v0.9x nodes.  https://getaddr.bitnodes.io/dashboard/  Acording to this ~40% of nodes are running v0.9x so it is very likely any tx sent w/ lower fee will get a miner.  You can also compile a custom version of the client which adds that support now.

There probably will be sufficient coverage for the next version of the client to support the lower fees in new transactions although the core client isn't updated that often (usually 3 to 6 months).
sr. member
Activity: 1078
Merit: 254
DeathandTaxes thanks for the explanations. It was very informative and helpful. When do you think the fees will actually be 0.01mBTC (I know technically they are now but in practice they arent) or in other words when will the critical mass updatte the clients so I can take advantage of this new fee structure..
donator
Activity: 1218
Merit: 1079
Gerald Davis
Fees are not required by the protocol, so they can easily change over time. When the exchange rate goes up 1000x, the fees expected by most miners will adjust accordingly.

Did you read DeathAndTaxes' explanations about the orphan cost?

The protocol is currently very inefficient when it comes to block messages.  As indicated with a relatively simple change the block message and thus orphan cost could be reduced by 95% or more.   Understand the orphan cost isn't "part of the protocol" it is just a reality of the economics of mining.  The cost will vary significantly from miner to miner depending on their connectivity to the rest of the network and their available bandwidth.   There isn't even a strong agreement on a specific quantifiable cost.   Lastly many miners are future thinking and they understand that it is better to include some "marginal" transactions and thus increase the overall value of the network and indirectly the purchasing power of the coins that they are paid in.  The other good news is that the subsidy is slowly declining and ever time it halves so does the orphan cost (which is a product of the "free" 25BTC).

Since Bitcoin started the fee in BTC terms has fallen from 10 mBTC per KB to 0.01 mBTC per KB.  In dollar terms baring some brief periods after a price increase and before the clients were updated the fee has remained relatively constant between $0.01 and $0.10 per KB.  Roughly 20% (last time I checked) of recent txs were unpaid.  By the pure economics of orphan costs they are simply lost revenue yet miners still include them.  How much is debatable but if including a tx increases your orphan risk by x% where x is not zero and the gained revenue is 0 then it can only be a net reduction in revenue.  So please don't selectively read and go "fees will skyrocket and Bitcoin is doomed because of orphan costs".  That isn't correct and it wasn't my point.  My point is that Bitcoin (and xyzCoin) will NEVER be suitable for on blockchain micro transactions.   It just won't.  The public cost of the public ledger ensures that it won't.  I know that is a bitter pill to swallow for some but it is a reality.    The devs could drop all fee enforcement from the clients (and open the network to massive and cheap denial of service) and at some point miners aren't going to include more essentially free transactions just to get less revenue.  It isn't going to happen.   So fees will always be constrained by the REAL WORLD COST of creating and maintaining the blockchain.  How much those fees are is subject to debate but it isn't zero and the value of your tx is roughly zero it isn't going to work on a network with non zero costs.

So if you are hoping to flood the network with $0.01 transactions you are bound to be disappointed.   On the other hand lets look at a $5 steam game.  At $0.30 + 2.9% CC tx the fees are $0.44.  Bitcoin is about $0.04 or 90% cheaper!   Then you have to consider the non-zero rate of fraud.  Even at 0.25% chargeback rate and $35 fee per chargeback that is an average $0.09 per tx in avoided fraud cost.  Online CC fraud for digital goods can be as much as 10%.  Throw in other related fees, CC fraud prevention licensing (not cheap), the human capital costs of holding and investigating "suspicious" transactions, and realistically Bitcoin is now closer to 95% cheaper (possibly 99% cheaper with some protocol enhancements).  Are you saying that a network which is 99% cheaper than CC for small but not micro transactions has no value?



legendary
Activity: 1036
Merit: 1005
Fees are not required by the protocol, so they can easily change over time. When the exchange rate goes up 1000x, the fees expected by most miners will adjust accordingly.

Did you read DeathAndTaxes' explanations about the orphan cost?
legendary
Activity: 3878
Merit: 1193
So the fee structure is not
compatible with a price increase to say 1000x the actual value, because 40$ fees will be unacceptable
for users but also unavoidable for miners. Did I get that right?

Fees are not required by the protocol, so they can easily change over time. When the exchange rate goes up 1000x, the fees expected by most miners will adjust accordingly.
legendary
Activity: 1036
Merit: 1005
Thanks for all these explanations! Much of this was new for me..
I have a question that bugs me now: The orphan cost for a miner seems to be determined
by the mining competition (if I'm mining alone, the orphan cost is 0, if I have much competition, it's higher)
and the block reward (if block reward halves, orphan costs halve).
In particular, within a period with constant block reward, orphan cost will usually not decrease.

This is somehow incompatible with a rising BTC price. If BTC value doubles, the value of the fees will double.
I thought the way out is that miners will accept smaller fees as they are more "valuable". But this is not
the case, as the orphan cost is not influenced by BTC/USD exchange rate. So the fee structure is not
compatible with a price increase to say 1000x the actual value, because 40$ fees will be unacceptable
for users but also unavoidable for miners. Did I get that right?
donator
Activity: 1218
Merit: 1079
Gerald Davis
Ok point taken, how do we get the core developers to realize the problem

I don't speak for them but I doubt any of them see it is as a problem.   This topic has come up hundreds of times (usually started by new users).  Bitcoin (or any public ledger system) is not well suited for micro transactions.  That being said fees are low and potentially could be lower.

The average tx size is 600 bytes.  Currently most clients round that up to the nearest KB and thus require 0.1 mBTC.  They shouldn't, they should instead require 0.06 mBTC.   That is a 40% reduction in average fee right there.  Hopefully that will change in the future.  Once v0.9 is sufficiently deployed the min fee to relay will drop to 0.01 mBTC per KB.  It remains to be seen if miners will accept txs with a fee that low but this will probably be the start of the "fee economy".  One way to reduce fees is to reduce the orphan cost.   Block messages currently contain the full tx.  They could instead contain just the tx hash.  That would be a ~95% reduction in the transmission size (and thus orphan cost) of blocks. 

Still even with all those improvements public ledgers are just not well suited for micro transactions.  The cost of every transaction is paid for by every node and may potentially need to be stored forever.  Still in your $1 example currently most tx would be under 1 KB which would be ~$0.04 in fees.   How else can you send $1 digitally for <$0.04?

donator
Activity: 1218
Merit: 1079
Gerald Davis
I thought you had a choice of whether or not to pay a transaction fee, just like a miner has a choice whether or not to pick up your transaction?  The transaction fee is there to incentivize miners to pick them up and work on them.

From the wiki:

Quote
Transaction fees are voluntary on the part of the person making the bitcoin transaction, as the person attempting to make a transaction can include any fee or none at all in the transaction. On the other hand, nobody mining new bitcoins necessarily needs to accept the transactions and include them in the new block being created. The transaction fee is therefore an incentive on the part of the bitcoin user to make sure that a particular transaction will get included into the next block which is generated.

It is slightly more complicated.  Fees serve a denial of service prevention mechanism.  As such nodes (aka peers or clients) will not relay tx which are "low priority" unless they have sufficient fee.  The node doesn't get the fee but checking for the fee prevents an attacker from disrupting or degrading the network with little or no cost.

Today the nodes require a fee in order to relay the tx if is >1KB in size or has a priority less than 57.6 million.
https://en.bitcoin.it/wiki/Transaction_fees

Priority is slightly complex but 57.6 million is "one bitcoin day".  If you receive 1 BTC and wait 1 day you can send it without a fee.  If you receive 0.1 BTC and wait 10 days you can send it without a fee.  Now just because it will be relayed to a miner without a fee doesn't mean it will be included in the next block.  Most (all?) miners limit the amount of space they reserve for free transactions.  Some miners allocate no space for free transactions.  If there are a lot of higher priority tx waiting you could wait a significant amount of time before the tx is included.  For this reason I pay a fee on all transactions even those that might qualify for free.

If the tx doesn't qualify for free relaying then the node checks if the fee is sufficient.
For v0.8x the min fee to relay on "low priority txs" is 0.1 mBTC per KB
For v0.9x the min fee to relay on "low priority txs" is 0.01 mBTC per KB.

A client will also prevent the creation of a tx (this can be overriden by using raw transactions) that it would not relay itself.  So a v0.8 node won't create a low priority tx with a fee below 0.1 mBTC per KB because it knows that other nodes will drop that tx just like it would if it was relayed a tx from another node.

v0.9.0 (and v0.9.1) are slightly different.  Anytime the fee is reduced there is a chicken or egg problem.  If v0.9 allowed creating tx w/ a fee of 0.01 mBTC per KB what happens if all the other nodes are running v0.8x?  They would drop it because from their point of view it does not have sufficient fee.   So as it has occured in the past the fee to RELAY is reduced first and once a sufficient portion of the network is upgraded then a new version is released which allows CREATING and RELAYING txs at that reduced fee level.

So the quote saying "fees are optional" is at best incomplete and is somewhat misleading.  Yes fees are optional on low priority txs if you create a custom tx bypassing the default client rules and then are willing to accept the risk that all your peers will simply drop the tx meaning it remains not just unconfirmed but unknown to most of the network for an extended and possibly infinite period of time.

I would recommend most users (especially those building services and products using Bitcoin) accept for that most cases the min fee (0.01 mBTC per KB) will be required.  I wish the network imposed the min fee on all transaction even those high priority, because as a merchant who accepts Bitcoins the number one issue is issues with insufficient fees.  User sends payment w/ insufficient fee, it is dropped by other nodes, we (and most of the network) never sees the tx).  User is sure he paid, we have no record, and eventually (could be hours, or days, or even weeks) it will be included in a block.  It gets even more fun when the user tries to fix things by "deleting" the tx and making a second payment only to have the original payment eventually get confirmed in a block.  It just creates a lot of customer support nightmare edge cases.  Now we can advise users to include a fee on all transactions but there is always some % who don't (or their web wallet doesn't even give them the choice).

  
donator
Activity: 1218
Merit: 1079
Gerald Davis
Whoever is in power of setting the fees, the main purpose was to reward miners (if I'm not wrong?).

No at least not today.   Fees could be zero and miners will make roughly the same amount of revenue.   Fees serve the purpose of prevent denial of service attacks on the network.  There is also a cost to miners for including a transaction and that is the orphan cost.  Larger blocks propagate slower and there is a low but non zero chance that while a block propagates a competing miner will find a block resulting in the original miner losing not just the tx fees but the massive 25 BTC subsidy as well.  There is some disagreement about how large this orphan cost is but lets look at the low end.  If we assume the cost works out to 0.05 mBTC per KB then a miner accepting tx less than 0.05 mBTC in fees actually loses money.  The block becomes worth slightly more but the risk of the block being orphaned increases by a higher rate and thus the net revenue after orphaned blocks declines.

For the record v0.9 of the client drops the fee requirement for relaying tx to 0.01 mBTC (~0.4 US cents).  The developers have routinely dropped the min fee for relaying low priority txs (high priority tx can always be relayed for free) to be between ~0.5 US cents and 5 US cents in value.  The v0.9 client doesn't allow sending low priority tx with a fee that low (although you can force it with raw transactions) but this is a just a temporary measure.   Remember Bitcoin isn't one version of software but a collection of independent nodes.  If v0.9 allowed lower fees txs but all your peers were running older software your tx would get dropped.   So you lower the relay requirement FIRST and then once there is a sufficient critical mass of nodes accepting those lower fees a future version of the client allows creating tx with those lower fees.

Still even once 0.01 mBTC per KB becomes standard there is no guarantee that miners will accept tx with fees that low.  It will be up to each individual miner (well technically the pool operator) and most pool operators are not going to accept tx which lower their overall revenue.   If their self computed orphan cost is say 0.02 mBTC they may just limit tx to those above that limit.





sr. member
Activity: 1078
Merit: 254
My issue is not with miners profits its about the fact that transaction fees limit bitcoins usage for micro transactions, if the profit is inconsequential to miners they should lower those transaction fees.

Also this has nothing to do with miner's decisions, the choice of transaction fee is based on the default bitcoin client which is set by the core bitcoin developers.

Ok point taken, how do we get the core developers to realize the problem
legendary
Activity: 1344
Merit: 1024
Mine at Jonny's Pool
I thought you had a choice of whether or not to pay a transaction fee, just like a miner has a choice whether or not to pick up your transaction?  The transaction fee is there to incentivize miners to pick them up and work on them.

From the wiki:

Quote
Transaction fees are voluntary on the part of the person making the bitcoin transaction, as the person attempting to make a transaction can include any fee or none at all in the transaction. On the other hand, nobody mining new bitcoins necessarily needs to accept the transactions and include them in the new block being created. The transaction fee is therefore an incentive on the part of the bitcoin user to make sure that a particular transaction will get included into the next block which is generated.

legendary
Activity: 1036
Merit: 1005
Whoever is in power of setting the fees, the main purpose was to reward miners (if I'm not wrong?). So, if the profit
is inconsequential to miners, whoever can should lower those fees for the benefit of mass adoption.

I think another reason for fees (besides rewarding miners) is to discourage "spam transactions" of a few satoshis, which would
choke up the network. I think, at this point in time, the more immanent threat is failing mass adoption and not an overcrowded
network, though..
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
My issue is not with miners profits its about the fact that transaction fees limit bitcoins usage for micro transactions, if the profit is inconsequential to miners they should lower those transaction fees.

Also this has nothing to do with miner's decisions, the choice of transaction fee is based on the default bitcoin client which is set by the core bitcoin developers.
hero member
Activity: 658
Merit: 500
When bitcoin value appreciates, transaction fees will be adjusted accordingly as it did in the past. Fees are at a reasonable level at the moment.
sr. member
Activity: 1078
Merit: 254
Because than its not bitcoin its coinbase coin. Lets drop the ideology for a second, now people have to develop service specifically with coinbase in mind. Thats ok now but in the future there will be many coinbases (or trust pools as I call them) that will compete, it will result in lack of innovation and increased production cost. eventually the stregnth of trust pools may replace bitcoin (there is no reason to have money in bitcoin if you trust the credit of trust pools). If miners were smart the would realize this today and wait to collect fees until bitcoin is the focal point of transactions. Right now I want to build a service but will end up going with a coinbase model because bitcoin cant fufill my requirements, and thats a shame
legendary
Activity: 910
Merit: 1000
My issue is not with miners profits its about the fact that transaction fees limit bitcoins usage for micro transactions, if the profit is inconsequential to miners they should lower those transaction fees.

What about using off-chain transaction (eg. on coinbase) for micropayments?
sr. member
Activity: 1078
Merit: 254
My issue is not with miners profits its about the fact that transaction fees limit bitcoins usage for micro transactions, if the profit is inconsequential to miners they should lower those transaction fees.
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
Miners make almost nothing from transaction fees. You're getting ahead of yourself. The transaction fees won't likely be significant income to miners for a few years yet. Also this has nothing to do with miner's decisions, the choice of transaction fee is based on the default bitcoin client which is set by the core bitcoin developers who mostly only loosely have anything to do with mining.
sr. member
Activity: 1078
Merit: 254
I thought they were 0.1mBTC so you are right its like 4 cents. They can afford to do it for free now, once mining profitability depends on fees they can bring it back. We are sacrificing adoption otherwise. It is an economical trade to sacrifice transaction fees in exchange for the coins miners receive having a higher dollar value.
donator
Activity: 1218
Merit: 1079
Gerald Davis
No cryptocurrency is suited to microtransactions.  The public ledger concept has real costs, costs which need to be paid for.  That being said $1 isn't a micro transaction and tx fees aren't $0.10.  Not sure where you came up with those numbers from.
sr. member
Activity: 1078
Merit: 254
Bitcoin is not fit for microtransactions. I want to use Bitcoin in a business that facilitates microtransactions, unfortunatley I will have to use my own accounting mechanism cause the miners eat up to much of the my users money (I myself dont take a cut). This problem is larger than me, it stunts bitcoin usage for micro transactions in general. If you send a dollar and miners eat 10 cents thats 10% no matter how you slice it. If it cant be used for microtransactions other things will fufill this void. How do we fix this?
Jump to: