11

Once the 50BTC per block rewards have halved many times and the transaction fees start to become the primary reward for miners, it sound like there is incentive for miners to not pass on transactions as they would eventually get the transaction fee when they next solve a block. I just read about this in Slashdot -

This slashdot article: http://science.slashdot.org/story/11/11/15/0456206/researchers-locate-flaw-in-bitcoin-protocol

Refers to another article, being: http://coderrr.wordpress.com/2011/11/13/simplified-summary-of-microsoft-researchs-bitcoin-paper-on-incentivizing-transaction-propagation/ and a research paper produced by Microsoft (who would've thought they're interested in Bitcoins!?): http://research.microsoft.com/pubs/156072/bitcoin.pdf

An obvious solution to the described problem is to reward nodes for sharing transactions, but this (as I understand it) leads to a "Sybil attack" where the attacker tries to gain an increased share of the rewards by sharing the transaction amongst other nodes controlled by the attacker.

The rest of the research paper seems to have a proposed solution, but it's beyond my understanding!

Is this really a problem with the existing Bitcoin protocol? If yes, does the research paper have a genuine workable solution? Is it possible to describe that solution in laymen's terms?

1
  • After much discussion with David Schwartz, my understanding is: Currently there are so many nodes (miners and not) spreading transactions that there's no issue. If the situation changed, non-miners still have the (strong) incentive to spread their transactions as widely as possible, and miners have an incentive to ensure that they get them quickly. Simple changes to the way bitcoin works or even transaction distribution services would ensure that the 2 parties (miners & non-miners) get in touch. ie each party has an incentive to get something working. If correct, can someone summarise this? Commented Nov 21, 2011 at 8:49

3 Answers 3

6

This is a non-issue. The Microsoft paper did not appear in a peer-reviewed venue (journal or conference).

There are (at least) two parts to the bitcoin network: the peer-to-peer transaction broadcasting network and the miners. Only the miners have a disincentive to propagate transactions. The overwhelming majority of the nodes on the internet running bitcoind are not mining or else are doing trivial amounts of CPU-mining because their admin forgot to use the -gen=0 flag.

If so-called "CPU-friendly" cryptocurrencies like "Tenberix" achieve their goals (which is doubtful) they may be vulnerable to this problem since they are intended to avoid the sort of specialized-miner situation that bitcoin embraces.

4
  • "The overwhelming majority of the nodes on the internet running bitcoind are not mining". I think this may well nullify the problem, but is it guaranteed? Is it possible for a malicious miner with many app instances (say, spread throughout a botnet) to get enough connections to a client to prevent the transaction being propagated as it should? I don't know how the client app decides who to connect to, and this could determine whether or not there's a vulnerability Commented Nov 16, 2011 at 21:01
  • Irregular, If you can prevent somebody from talking to the Internet, you can prevent them from using Bitcoin. However, this is a "problem" that is not unique to Bitcoin... Commented Nov 17, 2011 at 7:09
  • That's not what I meant - what I mean is: is it possible to target a particular client to try to fill up all its connections with malicious nodes? Commented Nov 17, 2011 at 22:23
  • @HighlyIrregular You can fill up all its inbound connection slots, but then you're just preventing it from helping others. It will still make whatever number of outbound connections it is configured to make to nodes of its choosing. Commented Nov 18, 2011 at 6:34
5

I'm one of the authors of the paper you mention. We've written a summary of the paper aimed at the Bitcoin community in the hopes that it will help people to better understand the paper.

I hope this helps you as well.

Here is a link to the summary: http://research.microsoft.com/en-us/people/avivz/bitcoin_red_balloons_summary.aspx

3
  • 2
    Your paper analyzes a 'problem' that arises only due to the assumptions it makes. There is no problem unless you assume that nodes respond to the incentive not to send transactions but don't respond to the incentive to receive them. That is an irrational assumption, and in fact your proposed solution it merely to discard the assumption. Why would you assume people would hold onto transactions without also assuming they would sell them? It is strictly this assumption that creates the problem. Both incentives arise concurrently. Why assume only one is acted on? Commented Nov 17, 2011 at 17:54
  • Aviv, your summary has a condescending tone and still willfully ignores the fact that only a tiny fraction of the nodes on the P2P network do any mining -- the rest of the nodes have no incentive at all to withhold transactions. Commented Nov 18, 2011 at 11:12
  • 1
    @eldentyrell I don't see the tone you describe. Besides, the tone shouldn't matter. The summary clearly states "So we suspect the problem is not currently occurring or is not severe at the moment", so the key thing to understand is whether it could potentially become a problem in the future (especially given that mining must at some stage change from hobbyist to commercial scale unless the fundamental architecture is changed). Commented Nov 19, 2011 at 20:42
2

All you have to do is broadcast your transaction to a few major mining nodes. Whichever mines a block first will have every incentive to include your transaction.

It is a silly argument anyway. To precisely the same extent nodes are incentivized not to share their transactions with others, nodes are incentivized to get transactions from others. It should cancel out perfectly

It it's is worth X for you to get a transaction from me, I may not give it to you for much less than X. But why wouldn't you be willing to give me just a bit less than X for it?

... it sound[s] like there is incentive for miners to not pass on transactions as they would eventually get the transaction fee when they next solve a block ...

That's absurd. The longer you hold onto a transaction, the less it's worth. You have no way to know how many other nodes have that transaction, and as soon as any miner includes the transaction in a block it is worthless. You have an incentive to get as much for the transaction as you can as quickly as possible from as many nodes as possible.

10
  • 1
    "All you have to do is broadcast your transaction to a few major mining nodes" - but this isn't currently the default behaviour, is it? That said, I don't actually know how the client does determine who to connect to! Commented Nov 16, 2011 at 20:57
  • 2
    "To precisely the same extent nodes are incentivized not to share their transactions with others, nodes are incentivized to get transactions from others. It should cancel out perfectly." - this doesn't cancel out at all. It provides an incentive to receive but not send. Commented Nov 16, 2011 at 20:58
  • 1
    @HighlyIrregular Same thing. The more incentive I have to buy coffee, the more incentive my local stores have to sell it. If you don't assume people respond to incentives, there's no problem. If you do, you have to assume people will respond to the incentive to receive transactions, likely by inducing others to send them transactions, those others will in turn respond to that incentive. Commented Nov 16, 2011 at 23:58
  • 1
    The coffee analogy doesn't work because there's an incentive for both parties in that case; the customer gets the coffee and the shop earns some money. With transactions, a miner has a monetary incentive to receive them, but no monetary incentive to pass them on as far as I can tell. Commented Nov 17, 2011 at 22:27
  • 1
    "The shop now has an incentive to try to get the coffee to the customer" - I don't see how the shop has that incentive unless the shop is giving away free coffee for the good of society (ie it has some motive beyond the profit motive). To stretch the analogy a little further, a Bitcoin client has an incentive to notify as many coffee shops as possible that it wants a coffee asap (and is offering $x for it), but while coffee shop A is trying to race to make the cup of coffee it's in shop A's best interests to NOT tell shop B about the fact that the client is offering $x for coffee. Commented Nov 18, 2011 at 0:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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