3

I am trying to understand how bitcoin fees work. I have understood well why transaction with many inputs require higher fees but I can't figure out why transaction spending virgin bitcoins would require important fees as well.

The logic behind my thinking is the following: If my inputs are a recent coinbase transaction, it is easier for the nodes to check their validity as they don't have to crawl the whole blockchain up. So it should require less time/processing power to validate them, which would mean lower fees.

Apparently there is something wrong in here :)

Does anybody have a better explanation?

3

All miners run a full node, indexing all the unspent transaction outputs (UTXO). Thus, from the computational difficulty perspective, there's no difference between verifying old and new coins that are being spent.

However, there's a reasonable assumption that all miners (and, after all, all honest Bitcoin users) want to protect the value of their assets and thus have an incentive to keep Bitcoin network healthy. Spamming the network with a great number of transactions moving the same coins back and forth among a few addresses, with no apparent purpose, is quite easy and can be carried out by any malicious user. This extra overhead is obviously not good for the network and might even cause a delay in confirmation of other transactions.

To fight this, Bitcoin has a notion of Bitcoin Days Destroyed which prioritizes transactions spending older coins. Miners are not forced to employ this strategy (by the protocol), but they do so because it's good for the network, and thus for them. That's why you can observe a huge variance in the time it takes to confirm otherwise look-alike transactions with low or no fees.

Spamming the network with transactions paying standard fees has obviously become infeasible. But this strategy is still useful when prioritizing fee-less transactions, or any great number of otherwise low-priority transactions.

UPDATE: The notion of Bitcoin Days Destroyed is not so important anymore since these days almost all miners reject zero fee transactions. Spamming the network "for free" is no longer possible.

  • What are you refering to with "this extra overhead"? – croraf Oct 31 '17 at 21:03
  • Extra overhead of processing spam transactions with zero fees. Extra as on top of normal transactions the network has to deal with spam transactions sent by malicious users that only do so in order to DoS the network. This is no longer a concern though because zero fee transactions are accepted by virtually no miner nowadays. – Jozef Nov 1 '17 at 18:07
  • Coin-age priority was deprecated with Bitcoin Core 0.12.0, see e.g. this related question: bitcoin.stackexchange.com/q/49226/5406 – Murch Nov 1 '17 at 18:21
  • Thanks. But there is a minimal fee of around 1 satoshi/byte set by default in bitcoin-core instead? (bitcoin.stackexchange.com/questions/61734/…) – croraf Nov 1 '17 at 18:34
3

There is no time difference to check old or new outputs, because the database of them (UTXO) is a HashTable. The reason to take obligatory fees from new funds is preventing useless transfers from one account to another wasting the blockchain and increasing its size without reasons.

  • 1
    In other words: Anti spam – Jannes Sep 23 '14 at 11:35

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.