Possible “reasons” for the transaction fee and possible price implications
(1/4) > >>
jonny1000:
The transaction fee in Bitcoin is an area that has always confused me and I am unable to picture all the complexities behind the fee at the same time.  I also fail to understand how the price of the fee could be determined or if a market based fee could work overall.  Please see below a short list of all the possible “reasons” for transaction fees that I can think of, which I have tried to analyse independently of each other.  Please let me know if there are any I missed or some of these should not be here.  I think we need to work out how these “reasons” can be “combined” to determine the price of the transaction fee and if a market based solution could work overall.  Do some of the “reasons” below make others redundant?

1.   To allocate the limited supply of space on the blockchain
The blockchain is a valuable public resource, which many Bitcoin participants need to store and share.  Due to the limitations of storage space, bandwidth and block propagation time which could increase mining centralisation; the system needs to have incentives to limit increases in the level of data and therefore the amount of transactions on the blockchain.  Therefore an arbitrary block size limit is imposed in Bitcoin's core implementation, which ensures there is a finite supply of space for transactions in each block.  A transaction fee is required to address this problem.  If demand for transactions exceeds the finite supply, the transaction fee should increase to ensure supply and demand meet and the market clears.  Miners then include the transactions with the highest fees.
Market based mechanism appears viable: Yes
Price implications: Potentially high transaction fees, possibly dependent on Moore’s law

2.   To incentivise miners to continue to mine after the block reward becomes too low
Currently miners are incentivised primarily by the block rewards, however the block reward will half approximately every four years.  A transaction fee is therefore necessary to ensure that miners are incentivised to continue to mine when the block reward becomes too small.  Without the transaction fee, at some point in the future, miners would begin to leave the system and core consensus mechanism behind Bitcoin would become insecure.  The aggregate fees need to be high enough to ensure miners remain incentivised.
Market based mechanism appears viable: Unclear, since a tragedy of the commons situation appears to occur
Price implications: Unclear impact, dependant on transaction volume

3.   To compensate for the marginal cost to miners of including the transaction in a block
In a competitive market, price should equal marginal cost.  There is a cost to miners of including transactions in blocks: 1) a small amount of computing power is required to put a hash of the transaction data into the block header, 2) the transaction increases the size of the block and this will increase the block propagation time, which could increase the orphan rate.  A transaction fee is therefore required to compensate miners for this cost.  Since these costs to miners are very low, the transaction fee should also be very low.
Market based mechanism appears viable: Yes
Price implications: Potentially very low transaction fees

4.   The economic reality of how miners will prioritise double spending zero conformation transactions
Currently by default, if a Bitcoin miner sees a double spend attempt with zero conformations, the miner should attempt to put the first transaction it saw into a block.  However the assumption behind this fails to appreciate that miners, as rationale actors, will ultimately act in their own self interest.  Therefore miners will eventually prioritise double spend transactions based on the one with a higher fee.  Transaction fees are therefore necessary to facilitate this.  Transaction fees could be a tool used in low value transactions; for buyers to be able to cancel zero conformation transactions, or a tool for sellers who could insist on a particular transaction fee for a zero conformation transaction.  However if a buyer has no intention of double spending, or intends to wait for conformations, the fee should be zero.
Market based mechanism appears viable: Unclear
Price implications: Potentially moderate or zero transaction fees
BurtW:
Great post.

I have been wondering about this for a long time.  My basic question is this:  In order to create a market based approach to fees wouldn't we need market information?

In other words don't we need all the pools to publish their current rates so we can determine what fee to use?

I can see a system where the pools all publish their rates and these rates are all collected by the wallet so the wallet can determine the fee needed at the time of the transaction.
jonny1000:
Thanks BurtW.

I think the market information would be historic transaction fees in old blocks and then a weighted median could be used somehow.  How this will work is unclear, but this could have characteristics of a "perfect market"; in the sense there are many buyers, many sellers and "perfect information".  However if the "sellers" own anything to begin with is unclear.

I think we need a better understanding of a theory behind the price before we can approach this problem.  For example if the scarcity of space in the block is the issue, does the formula consider the remaining space in the historic blocks for further transactions?  Should only blocks which were found in a period of 10 minutes or greater be used in the price formula, since perhaps blocks found in a shorter time period are less representative of the scarcity problem?

I think the arbitrary scarcity of space in blocks may be a necessary tool which can provide some type of market for transaction fees.  This market could then result in fees which would provide incentives for miners to continue to mine in the long run.

Many thanks
piotr_n:
Quote from: BurtW on June 29, 2014, 01:25:53 PM

I can see a system where the pools all publish their rates and these rates are all collected by the wallet so the wallet can determine the fee needed at the time of the transaction.


I made a similar suggestion some time ago
https://bitcointalk.org/index.php?topic=637874.0

The pools publishing the rates is the best way to go IMHO.

At the other side, there are people claiming that they will be able to figure out the current rates just by looking inside the past block.
Personally, I cannot wait to see their system at work, though I don't seriously expect to be enjoying it within the next couple of years.
theymos:
Quote from: BurtW on June 29, 2014, 01:25:53 PM

My basic question is this:  In order to create a market based approach to fees wouldn't we need market information?

In other words don't we need all the pools to publish their current rates so we can determine what fee to use?

I can see a system where the pools all publish their rates and these rates are all collected by the wallet so the wallet can determine the fee needed at the time of the transaction.


All of the pools would lie about their fees. They have little reason to reject transactions with any non-dust fee, but every reason to tell people to pay more. So advertising fees like that would be useless.

Looking at the fee statistics in the last few days' of blocks is probably also not a good idea because pools can send high-fee transactions to themselves to skew statistics. These transactions would be private until accepted into the block, so there'd be very little risk of the fees being claimed by other pools. I predict that no matter how the client attempts to avoid this sort of manipulation, pools will figure out how to manipulate calculated fees anyway.

I think that all we need is for people to be able to cancel 0-conf transactions. People can then experiment and see what fees they can get away with without worrying about transactions getting stuck. The client might even do this automatically, starting transactions at some fee level based on user-specified transaction priority and past data about confirmation times, and increasing the fee if the transaction takes too long.

Quote from: jonny1000 on June 28, 2014, 04:34:13 PM

2.   To incentivise miners to continue to mine after the block reward becomes too low
Currently miners are incentivised primarily by the block rewards, however the block reward will half approximately every four years.  A transaction fee is therefore necessary to ensure that miners are incentivised to continue to mine when the block reward becomes too small.  Without the transaction fee, at some point in the future, miners would begin to leave the system and core consensus mechanism behind Bitcoin would become insecure.  The aggregate fees need to be high enough to ensure miners remain incentivised.
Market based mechanism appears viable: Unclear, since a tragedy of the commons situation appears to occur
Price implications: Unclear impact, dependant on transaction volume


Assurance contracts would probably be a good solution if there is ever insufficient mining power.
Navigation
Message Index
Next page