9

I know high and low value transactions take up the same amount of space in the blockchain. But wouldn't btc be more economical and fair if miners deliberatly chose transactions based on the value/fee ratio?
That way small transactions became cheaper and more viable

11

The biggest counter question is identifying which are high value transactions. Bitcoin works on an Unspent Transaction Outputs (UTXO) based model rather than an account based model. The input of Bitcoin transaction needs to include outpoint (txid and vout) of the transaction from which you control bitcoins with your keys. This input is then consumed in its entirety and any change is sent back to yourself. This is illustrated below:

                     / ----- Pay for your coffee (1 BTC)
Consume UTXO (3 BTC) 
                     \ ----- Send the 2 BTC change to yourself

Let us assume miners set aside a limit that transactions above 1.5 BTC will be charged higher fees. Considering the above cited example, should miners treat it as high value? The user paid 1 BTC for coffee (which would be below the limit) and is sending 2 BTC change back to itself (which would be above the limit). There is no sure shot way for miner to know which output was being used to spend for coffee. Although there are some methods which you can use to determine which output is a spending output versus what is a change, they are not reliable, and can be gamed by changing the amounts of outputs slightly. Moreover, how do you charge CoinJoin transaction?

If you are thinking any output value (be it spending or change) which is above a certain limit will be charged higher fees, then it will encourage users to create smaller value UTXOs so that they do not have to send higher value change back to themselves (to avoid higher fees). UTXO storage is costly as it is cached in the RAM, and to dodge higher fees users will create multiple UTXOs thus costing the network as a whole to maintain such a big costly database.

From an economic perspective I would like to point out that the most efficient way to maximize your income from mining is by using fee/vbyte. This is because Bitcoin's block size is capped, which means maximum profit can be derived from fitting in as many transactions as possible (thus dependent on size). If you try to use any other methodology, then you are creating an opportunity for other miners to step in and claim the profit your are forgoing.

This would be a classic example of economic equilibrium where any inefficiencies will be ironed out by market forces thus forcing it settle to the most practical equilibrium (fee/vbyte). Thus doing anything apart from charging fee/vbyte would require cooperation of ALL miners or a 51% attack. The former is difficult to achieve from an economic standpoint as discussed above.

  • 6
    This answer is mostly correct (there is difficulty in observing the value of a transaction), but I don't think it explains it entirely. The whole point of miners is that they're replacable (anyone can become a miner without permission, with the right investment), so if some miner is deviating from maximizing their income, other miners will be more profitable, and maximizing fee per (v)byte is very close to maximizing income. Put in other words: doing anything but charging per vbyte would require either all miners to do so, or a 51% attack. – Pieter Wuille Nov 3 at 16:17
  • 1
    @PieterWuille You are absolutely correct in your reasoning that fees/vbyte maximizes the income for the miners. What I wanted to point out was that even thinking about fee/value is preposterous as there is no sure shot way of knowing what the value of the transaction. I'm incorporating your suggestion in my answer to make it more robust – Ugam Kamat Nov 3 at 17:43
  • what is a vbyte? – Ben Nov 3 at 20:53
  • 1
    @Ben, virtual byte, the unit of transaction sizes since the introduction of segwit (number of vbytes in a tx = number of bytes in the non-witness portion of a transaction + 0.25 * number of witness bytes). – Pieter Wuille Nov 3 at 21:33
  • For 1 BTC, that had better be the universe's ultimate cup of coffee... – cobbal Nov 5 at 0:06
24

Miners don't charge anyone.

Users put aside some amount of satoshis to incentivize a miner to include a transaction in a block, as the miner takes those satoshis if they are successful in mining that block.

A miner has the incentive to maximize their own profitability by including the highest paying transactions into their block, and to squeeze as many in as possible to maximize that revenue.

The idea that miners might reject some large value transactions because they don't pay a higher fee is incompatible with their incentives, which are to compete with other miners for those transactions which pay the most per weight unit. If a miner decided not to include transactions with sufficient fee, some other miner would include them, and be more profitable than the miner who didn't. It only makes sense then that the miners will continue to operate as they currently do because attempting to adopt a strategy like you suggest would be harmful to them.

Ultimately, miners do not control anything. They merely attempt to profit from what the market is offering.

  • Miners may not charge anyone in a literal sense, but by declining to process transactions that don't include a large enough incentive, they certainly produce the effect of charging. – Mark Nov 4 at 22:39
  • If a large enough group of miners decided not to accept lower than a certain amount, the effects might be felt... – Redwolf Programs Nov 5 at 2:39
  • If charging by vbytes instead of value is the more profitable strategy, then why dobt credit card manufacturers charge every transactions way instead of value? – user2741831 Nov 5 at 9:53
  • 2
    @user2741831 very different value scenario. A CC processor passes the transaction through their accounts, paying out of their own pocket first and receiving the value back later from the other party. In that scenario, risk scales directly with value/volume, which is why it affects the price. A miner has no risk in handling a transaction in regard to the transferred amount. – kasoban Nov 5 at 14:17
  • @user2741831, much of the expense of processing a credit-card transaction is the risk that the transaction is fraudulent. Since the cost of a fraudulent transaction scales with the size of the transaction, it makes sense to scale the processing fee similarly. There's no such thing as a fraudulent bitcoin transaction, at least as far as a miner is concerned, so most of the cost comes from the act of processing a block of transactions. Since processing that block costs the same no matter how many transactions are in it, charging more for physically larger transactions makes sense. – Mark Nov 5 at 21:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.