What is the incentive to collect transactions?

2010 Jun 5 See all posts
What is the incentive to collect transactions? @ Satoshi Nakamoto
Author

Satoshi Nakamoto

Email

Site

https://satoshinakamoto.network

theymos
What is the incentive to collect transactions?
June 05, 2010, 04:26:09 PM

Adding transactions to the block you're working on will slow down your generation rate. What prevents the majority of generating nodes from ignoring broadcasted transactions and making the network unreliable?


lachesis
June 05, 2010, 06:59:19 PM

I don't know if there are any technological safeguards to prevent this, but there is a social one: if you drop transactions, others might drop yours.


sirius
June 05, 2010, 07:22:38 PM

Bitcoin supports transaction fees paid to the node that records a transaction into the block chain. If too many nodes start dropping transactions, you can pay a fee when you want to increase the likeliness of your transaction being recorded in the next block.


laszlo
June 05, 2010, 07:42:17 PM

So would it be smarter to only process transactions which profit you? That way if you want to send money you need to include a courier fee or nobody will confirm it. That seems reasonable to me, where you can add a fee yourself to each transaction, and people can configure a threshold of how much of a fee they expect before accepting a transaction.


theymos
June 05, 2010, 07:55:40 PM

That's a clever (and very free-market) solution. How does BitCoin currently deal with transactions that aren't published in a block for a long time? Is there any risk of them being lost?


QuantumMechanic
June 05, 2010, 08:02:09 PM

Are there any estimates on the average transaction fee once users' incentive to support the network via bitcoin generation is mostly dried up? How does this scale with the number of users, the size of network, and the total transaction rate?


Satoshi Nakamoto
June 15, 2010, 11:41:29 PM

Quote from: theymos on June 05, 2010, 04:26:09 PM

Adding transactions to the block you're working on will slow down your generation rate

The premise is false. Adding more transactions to the block you're working on does NOT slow down your generation rate. When generate is scanning hashes, it only hashes the header of the block, which is constant size. The header contains a hash of the transactions (the Merkle root) and is only updated occasionally.

If necessary I can write code to make nodes prefer not to use a block if it doesn't contain enough of the transactions they know about. A discouraged block would almost always fail to be included in the main chain, but would be accepted if it did get in. I doubt this will be necessary, since there's no real advantage for nodes not to include all transactions.