<p>Firstly, the priority mechanism was not a consensus rule. Originally it was just a few hundred kilobytes of space reserved in a block (100 kb IIRC) for transactions that had a high priority. But this was not a consensus rule; it does not have to exist. After blocks started getting full, many miners, out of the interest of getting as much income as possible, chose to stop reserving this space for priority. There is more money to be made by choosing a few hundred transactions that paid more fees than it was to choose a few hundred transactions that didn't but had priority. Since no one miner was actually using priority, Bitcoin Core removed priority from its fee and confirmation estimations so that the given values would be more realistic and the code would be simpler.</p>

<p>The following pull requests and the issues linked within them contain some of the discussions that the Core devs had when removing priority: <a href="https://github.com/bitcoin/bitcoin/pull/9602" rel="nofollow noreferrer">https://github.com/bitcoin/bitcoin/pull/9602</a>, <a href="https://github.com/bitcoin/bitcoin/pull/7022" rel="nofollow noreferrer">https://github.com/bitcoin/bitcoin/pull/7022</a>, <a href="https://github.com/bitcoin/bitcoin/pull/7008" rel="nofollow noreferrer">https://github.com/bitcoin/bitcoin/pull/7008</a>.</p>

CC BY-SA 3.0
2017-06-16T16:42:43.750Z
2017-06-16T16:42:43.750Z
Ava Chow
<p>Selection by "age x value" creates an arbitrary nobility for early adopters/large hodlers. Early adopters having old coins would be able to cut in line any time, large hodlers could cut in line by transferring a large amount from themselves to their change output. Neither of the two characteristics is in any relation to the actual resources on the network being used. In fact, the latter may actually increase resource usage by encouraging potentially avoidable change outputs.</p>

<p>On the other hand, transaction selection by fee rate is a mechanism that creates a relationship between the demanded resources and the cost. It allows miners to maximize their revenue and users to efficiently signal priority.</p>

CC BY-SA 3.0
2017-06-16T16:46:17.047Z
2017-06-16T16:46:17.047Z
Murch
<p>As far as I know, in the earlier version of Bitcoin, there was a mechanism about transaction priorities. However, it has been removed (or not being taken into account anymore) and now the only criterion to be selected for confirmation is the fee. </p>

<p>Can anyone explain, what the reason was behind this design decision? Shortly, why?</p>

CC BY-SA 3.0
2017-06-16T14:03:05.153Z
I was about to ask just now why it was *not* removed. I don't know why a miner would ever use this value. They can optimize their profits by selecting transactions by fee. It is not necessary for Bitcoin to function that miners act altruistically by prioritizing certain transactions and it's probably unrealistic to expect that to happen.
boot4life
CC BY-SA 3.0
2017-06-16T14:22:59.753Z
Why do you think it is unrealistic to expect that a very old transaction is confirmed? OK, it paid lower fees to the system, but it received a slower confirmation also. It is fair, no?
Önder Gürcan
CC BY-SA 3.0
2017-06-16T15:01:08.640Z
Bitcoin does not enforce any notion of fairness. The whole ecosystem works just fine assuming complete selfishness. That's the innovation.; Old transactions can be confirmed just fine when the fee level decreases to the fee rate that that old transaction offers. Miners can include whatever transactions they want so they milk that stream for maximum fees.
boot4life
CC BY-SA 3.0
2017-06-16T15:06:25.650Z
Personally, I think this is how it should have been from the beginning. No 0 fee transactions at all, strict fee maximization. That's what we will end up with anyway and forever. Billions of revenue are at stake for miners. The priority thing as well as child pays for parent and RBF are all unnecessary mechanisms. Had miners been selfish from the beginning CPFP and RBF would have been enabled for everyone without a single line of code.
boot4life
CC BY-SA 3.0
2017-06-16T15:39:43.723Z
It seems to me that when everybody is selfish the fee rate is increasing. Also it should be noted that I did not say that zero fees, I said lower fees. By the way, what is RBF, I do not know about it.
Önder Gürcan
CC BY-SA 3.0
2017-06-16T15:51:17.193Z
The fee rate will go up as long as people are willing to pay it. It's a free market. That's inevitable, and the alternative is just an unreliable system with arbitrary selection when more transactions are produced than fit in blocks.
Pieter Wuille
CC BY-SA 3.0
2017-06-16T17:50:17.290Z
Please limit the discussion in the comments, rather consider [chat], creating an answer, or if the topic shifts, to create another question. Thank you :)
Murch
<transactions><transaction-fees><unconfirmed-transactions><coin-age-priority>
Why is the transaction priority removed?
Önder Gürcan
# Why is the transaction priority removed?

(Asked by: username_0 on 2017-06-16)

As far as I know, in the earlier version of Bitcoin, there was a mechanism about transaction priorities. However, it has been removed (or not being taken into account anymore) and now the only criterion to be selected for confirmation is the fee.

Can anyone explain, what the reason was behind this design decision? Shortly, why?

**Tags:** transactions, transaction-fees, unconfirmed-transactions, coin-age-priority

> **Comments:**
> **username_1**: I was about to ask just now why it was *not* removed. I don't know why a miner would ever use this value. They can optimize their profits by selecting transactions by fee. It is not necessary for Bitcoin to function that miners act altruistically by prioritizing certain transactions and it's probably unrealistic to expect that to happen.  
> **username_0**: Why do you think it is unrealistic to expect that a very old transaction is confirmed? OK, it paid lower fees to the system, but it received a slower confirmation also. It is fair, no?  
> **username_1**: Bitcoin does not enforce any notion of fairness. The whole ecosystem works just fine assuming complete selfishness. That's the innovation.; Old transactions can be confirmed just fine when the fee level decreases to the fee rate that that old transaction offers. Miners can include whatever transactions they want so they milk that stream for maximum fees.  
> **username_1**: Personally, I think this is how it should have been from the beginning. No 0 fee transactions at all, strict fee maximization. That's what we will end up with anyway and forever. Billions of revenue are at stake for miners. The priority thing as well as child pays for parent and RBF are all unnecessary mechanisms. Had miners been selfish from the beginning CPFP and RBF would have been enabled for everyone without a single line of code.  
> **username_0**: It seems to me that when everybody is selfish the fee rate is increasing. Also it should be noted that I did not say that zero fees, I said lower fees. By the way, what is RBF, I do not know about it.  
> **username_2**: The fee rate will go up as long as people are willing to pay it. It's a free market. That's inevitable, and the alternative is just an unreliable system with arbitrary selection when more transactions are produced than fit in blocks.  
> **username_3**: Please limit the discussion in the comments, rather consider [chat], creating an answer, or if the topic shifts, to create another question. Thank you :)  

---

## 2 answers

### Answer by username_4 on 2017-06-16. Score: 3

Firstly, the priority mechanism was not a consensus rule. Originally it was just a few hundred kilobytes of space reserved in a block (100 kb IIRC) for transactions that had a high priority. But this was not a consensus rule; it does not have to exist. After blocks started getting full, many miners, out of the interest of getting as much income as possible, chose to stop reserving this space for priority. There is more money to be made by choosing a few hundred transactions that paid more fees than it was to choose a few hundred transactions that didn't but had priority. Since no one miner was actually using priority, Bitcoin Core removed priority from its fee and confirmation estimations so that the given values would be more realistic and the code would be simpler.

The following pull requests and the issues linked within them contain some of the discussions that the Core devs had when removing priority: <https://github.com/bitcoin/bitcoin/pull/9602>, <https://github.com/bitcoin/bitcoin/pull/7022>, <https://github.com/bitcoin/bitcoin/pull/7008>.


---

### Answer by username_3 on 2017-06-16. Score: 2

Selection by "age x value" creates an arbitrary nobility for early adopters/large hodlers. Early adopters having old coins would be able to cut in line any time, large hodlers could cut in line by transferring a large amount from themselves to their change output. Neither of the two characteristics is in any relation to the actual resources on the network being used. In fact, the latter may actually increase resource usage by encouraging potentially avoidable change outputs.

On the other hand, transaction selection by fee rate is a mechanism that creates a relationship between the demanded resources and the cost. It allows miners to maximize their revenue and users to efficiently signal priority.


---

