Bitcoin Forum
May 05, 2024, 02:13:26 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Why do people pay fees? Why are free transactions accepted by miners?  (Read 2340 times)
misterbigg (OP)
Legendary
*
Offline Offline

Activity: 1064
Merit: 1001



View Profile
February 15, 2013, 11:30:47 PM
 #1

Why do people include transaction fees, if miners accept free transactions?

Why do miners include free transactions in blocks? It seems there is no incentive to do so.

Furthermore, since blocks are not full, why is there any incentive to pay fees at all?
1714875206
Hero Member
*
Offline Offline

Posts: 1714875206

View Profile Personal Message (Offline)

Ignore
1714875206
Reply with quote  #2

1714875206
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714875206
Hero Member
*
Offline Offline

Posts: 1714875206

View Profile Personal Message (Offline)

Ignore
1714875206
Reply with quote  #2

1714875206
Report to moderator
1714875206
Hero Member
*
Offline Offline

Posts: 1714875206

View Profile Personal Message (Offline)

Ignore
1714875206
Reply with quote  #2

1714875206
Report to moderator
Gavin Andresen
Legendary
*
qt
Offline Offline

Activity: 1652
Merit: 2216


Chief Scientist


View Profile WWW
February 15, 2013, 11:52:21 PM
 #2

Why do people include transaction fees?

Assuming the miner hasn't tweaked the reference code's parameters, the rules are:

Create at most a 250,000 byte block:
+ 27 kilobytes of space is set aside for the highest-priority transactions, regardless of fee.
+ 223k of space left for fee-paying transactions.

Transactions with a small number of inputs/outputs, transferring a large number of bitcoins, that weren't recently received are the highest priority and are included first.

If you send a low-priority transaction without a fee you can end up waiting a very long time for it to get confirmed (and it may never be confirmed).

Why do miners include free transactions?

Either they're too lazy to change the default rules, or they believe that allowing free, high-priority transactions will help make Bitcoin more popular and will, therefore, increase the value of their coins.

Why is there any incentive to pay fees at all?

You'll notice that pretty much every block nowadays is bigger than 27k, so there IS competition for that free space. But if you've got 10 bitcoins that have been sitting in your wallet for a week or three, you'll still have no problem spending them without a fee (they'll have a much higher priority than somebody playing SatoshiDice 100 times a day).


How often do you get the chance to work on a potentially world-changing project?
farlack
Legendary
*
Offline Offline

Activity: 1311
Merit: 1000



View Profile
February 15, 2013, 11:59:25 PM
 #3

Paying a few cents to get my transaction faster is worthwhile. that's why I pay fees  Grin
sublime5447
Legendary
*
Offline Offline

Activity: 966
Merit: 1000



View Profile
February 16, 2013, 12:03:54 AM
 #4

I pay the fee for my customers. Who cares .0005 is nothing (right now). If they by a coin to sign up for a web site- nzbsrus I just give them them extra .005. Again who cares?  Fee on one coin .0135 usd I think I can live with that.
misterbigg (OP)
Legendary
*
Offline Offline

Activity: 1064
Merit: 1001



View Profile
February 16, 2013, 12:43:58 AM
 #5

Create at most a 250,000 byte block:

I thought that the maximum block size was one megabyte? It's about 250KB?

Quote
+ 27 kilobytes of space is set aside for the highest-priority transactions, regardless of fee.

Shouldn't the default mining implementation fill the block with transactions paying the highest fee per kilobyte: sort all pending transactions by fee per kilobyte, descending, and take as many from the top that fit?

Isn't this the logical end-game for miners to maximize their return on block rewards? If mining clients don't already do this, won't they tend towards this model?

Quote
Transactions with a small number of inputs/outputs, transferring a large number of bitcoins, that weren't recently received are the highest priority and are included first.

How does prioritizing transactions based on the number of inputs and outputs or coin age help miners? It seems it's only this way because it's how the original code was written but won't that change as soon as miner's decide they want to maximize the return on block rewards?

I ask these questions because they are related to the problem of maximum block size.
grue
Legendary
*
Offline Offline

Activity: 2058
Merit: 1431



View Profile
February 16, 2013, 02:12:07 AM
 #6

I thought that the maximum block size was one megabyte? It's about 250KB?
it can be bigger, but fees end up exponentially bigger as the blocks size increases.
Shouldn't the default mining implementation fill the block with transactions paying the highest fee per kilobyte: sort all pending transactions by fee per kilobyte, descending, and take as many from the top that fit?

Isn't this the logical end-game for miners to maximize their return on block rewards? If mining clients don't already do this, won't they tend towards this model?
it's trivial to include another transaction, and there's less of a chance that a transaction that has been sitting around for a long time is spammy, so old transactions also get high priority.

It is pitch black. You are likely to be eaten by a grue.

Adblock for annoying signature ads | Enhanced Merit UI
misterbigg (OP)
Legendary
*
Offline Offline

Activity: 1064
Merit: 1001



View Profile
February 16, 2013, 02:54:13 AM
 #7

fees end up exponentially bigger as the blocks size increases.

I don't follow. How does the fee per transaction increase with increasing block size? Sure, the total fees would increase (since there are more transactions) but how is this an exponential increase and how does the per-transaction fee go up?

it's trivial to include another transaction

Not when the available space in the block is smaller than the total size of all pending transactions.

there's less of a chance that a transaction that has been sitting around for a long time is spammy, so old transactions also get high priority.

Actually the best measure of whether or not a transaction is spammy would be the fees per kilobyte. But you didn't answer the question. Why would a miner NOT use the optimum strategy of including transactions with the highest fees per kilobyte (i.e. include in a block the subset of pending transactions which maximizes fees)? Excluding the obvious answer that they didn't bother to change the default implementation.
solex
Legendary
*
Offline Offline

Activity: 1078
Merit: 1002


100 satoshis -> ISO code


View Profile
February 16, 2013, 03:54:49 AM
Last edit: February 16, 2013, 04:05:42 AM by solex
 #8

misterbigg, we learned (in the max block size thread) that Gavin has introduced a temporary 250kb limit to see how the miners, and the network, behave when bumping against a block size limit in order to acquire real-world metrics. These metrics can be used when deciding how to overcome the 1MB limit by replacing it with an algorithm.

... Right now, miners that use the reference implementation and don't change any settings will produce blocks no larger than 250Kbytes big.

So we're finding out right now how miners collectively react to bumping up against a block size limit. I'd like to let that experiment run for at least a few months before arguing that we do or do not need to eliminate the 1MB hard limit, and start arguing about what the default rules for acceptable block size should be.


I think it is encouraging that miners are happy to use default settings, and not ignore zero-fee transactions. This helps bitcoin gain traction by appealing to new users who might not want to pay transaction fees initially, but may well pay for later transactions after seeing how good bitcoin is as a currency.

zvs
Legendary
*
Offline Offline

Activity: 1680
Merit: 1000


https://web.archive.org/web/*/nogleg.com


View Profile WWW
February 16, 2013, 08:04:24 AM
 #9

i pay 0.00051, to put it ahead of all those 0.0005 ...  wouldnt want to have to wait an extra block or two  Wink


if you pay nothing, and it's not a priority transaction and you aren't mining it yourself, there's a good chance it won't go through.

if you pay 0.0001 and have modified your source to accept that, then other nodes should relay it, you'd just have to wait until a run of blocks to clear out the transaction queue since yours would be dead last (though at the moment that probably wouldnt take very long)
Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526
Merit: 1129


View Profile
February 16, 2013, 11:48:42 AM
 #10

There's another reason Gavin didn't touch on. Anyone who uses software based on bitcoinj does not have a proper fee solver or implementation of the rules, because I didn't write one yet. Always attaching the minimum fee regardless of need is a common workaround.
jgarzik
Legendary
*
qt
Offline Offline

Activity: 1596
Merit: 1091


View Profile
February 17, 2013, 06:01:13 PM
 #11

Miners include free transactions because there is an incentive to encourage bitcoin use in general.  The fees alone do not yet support the network, so even fee-paying transactions are below-cost.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
grau
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1021


bits of proof


View Profile WWW
February 17, 2013, 06:15:27 PM
 #12

Miners include free transactions because there is an incentive to encourage bitcoin use in general.  The fees alone do not yet support the network, so even fee-paying transactions are below-cost.

Considering that the network pays a bounty of 25 BTC for a block containing 300 tx nowadays, that is a cost of 0.08 BTC per transaction.
The typical fee is a magnitude below that, no wonder miner does not currently care much of the fee.
Boussac
Legendary
*
Offline Offline

Activity: 1220
Merit: 1015


e-ducat.fr


View Profile WWW
February 18, 2013, 04:40:26 PM
 #13

Why are free transactions accepted by miners ?
The value of bitcoins is backed by the remarkable ability of the bitcoin network to process internet transactions.
By definition, a transaction is deemed "processed" when the receiver is in a position to spend the bitcoins sent to him.
If miners did not include transactions (based on zero or insufficient fees), the value of their bitcoin reward would drop as a result of transactions taking forever to confirm.
If and when the network gets clogged with zillions of transactions while the block reward has shrunk over time, fees may become a stronger requirement.



Peter Todd
Legendary
*
expert
Offline Offline

Activity: 1120
Merit: 1150


View Profile
February 18, 2013, 05:11:52 PM
 #14

Considering that the network pays a bounty of 25 BTC for a block containing 300 tx nowadays, that is a cost of 0.08 BTC per transaction.
The typical fee is a magnitude below that, no wonder miner does not currently care much of the fee.

This.

Like it or not, we have to pay for network security somehow. People constantly complain about transactions fees but the real cost is inflation; $120k USD worth of it every day. Only because of the huge number of people adopting Bitcoin and investing in it have we been able to ignore the inflationary cost of mining.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!