Witholding transactions

<< < (3/4) > >>

Gavin Andresen:
Quote from: asdf on October 12, 2011, 10:32:03 PM

Is there some market based mechanism which will counter this behavior?

Thinking out loud:

If miners (or other nodes) not relaying transactions starts to become an issue, "we" could write code to detect and discourage it.

Detecting: the node says it is a full node but you get many fewer 'inv' messages from it compared to your other peers.

Discouraging: you refuse to relay or build on any new-block messages that you get from that node.

See https://github.com/gavinandresen/bitcoin-git/tree/discourageblocks for a framework for the 'discourage' part.

This might not even need a technical solution; it can easily be solved by the market.
Quote from: asdf on October 12, 2011, 10:32:03 PM

Yes, miners have an incentive to be "well-connected", but that's not gonna make their peers forward transactions.

On the other hand, clients have an incentive to be connected with as many miners as possible to get their transaction mined quickly. If this ever becomes an issue, here's what would happen:
Subscription-based relay network businesses would appear. Clients would use them because it means that they only need to send their transaction once, instead of to each miner individually (I'm assuming that in the future, mining will be more distributed than it is now). Miners would be stupid not to also subscribe to these networks, since it would be the fastest way to learn of new transactions. Plus, the barrier of entry to these businesses would be so low that there would be plenty of competition, meaning low prices for all.

BAM! The market just solved the withholding transactions issue AND the lack of economic incentive to help the network by relaying transactions in one go.

A smart miner would realize that by withholding transactions, they would eventually create this middleman, reducing their own cut of the profits. A smarter miner would be running both a pool AND a relay service.

I believe that some people have posited that in the future, the norm will be for transactions to get submitted directly to one's preferred miner, for which one already knows the expected fee schedule. While miners may not have an incentive to relay transactions to other miners, miners do have an incentive to make it easy for people to submit transactions directly to them, so I doubt it will be difficult for people with transactions that they want processed to connect to the miners they want working on the transaction. I don't think this'll become a real problem, although one never knows for certain.

Quote from: asdf on October 12, 2011, 10:32:03 PM

If a client transmits a new transaction to a bunch of miners, isn't it in the interest of each of those miners to not forward that transaction to other nodes, keeping the fees for himself for when he finally solves a block?


The current block reward scheme and fees schedule incentivizes miners to implement schemes which arguably harm the network. Similarly, some helpful activities like transaction relaying without mining go unrewarded.  There have been forum posts on this topic before but I'm not surprised that they're difficult to find. I touch on a similar issue in the Most transaction relaying is currently pointless and wastefull thread.

Quote from: asdf on October 12, 2011, 10:32:03 PM

What's worse: the bigger the txfee, the more incentive to not forward the transaction.

Indeed. Also, if the fee is large compared to the block reward then it makes sense for miners to ignore blocks from other miners which include the transaction and try to build a block chain in which they claim the large fee themselves.

If the miners see a double-spent transaction in which the later version includes a very large fee then it would be in their interest to throw away the blocks containing and confirming the first version and build a new chain including the double spend and gaining the fee. Miners who had their blocks orphaned could be reimbursed from the large fees of the double spend.

I'm particularly concerned that there's an incentive for the formation of a mining cartel in which the miners insure that non-cartel miners' blocks become orphaned. The mining cartel could engage in behaviour detrimental to the other users such as refusing to incorporate transactions lacking fees (or lacking inflated fees) into the blocks.

This is just a quick recapitulation of some previous discussions on this topic.


Merchants (and really anyone using bitcoin) have a strong incentive to get transactions into the hands of many miners...if this ever became a real problem, they could take steps to ensure their nodes remain well connected with miners and relay transactions to them...others could ensure they maintain good connections with those merchant nodes that ensure transactions are relayed.  It seems like it's such an easy issue to work around, and there's such a strong incentive to work around it, that it would be pretty pointless for miners to engage in this behavior.  I'm not sure it would be worth the time to code something special into the client for this.  (also, seeing how fast transactions propagate through the network, I think a few miners engaging in this behavior would have almost no effect)


[0] Message Index

[#] Next page

[*] Previous page