Take the 2-minute tour ×
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It's 100% free, no registration required.

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?

share|improve this question
    
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? –  Highly Irregular Nov 21 '11 at 8:49
add comment

3 Answers

up vote 4 down vote accepted

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.

share|improve this answer
    
"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 –  Highly Irregular Nov 16 '11 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... –  eldentyrell Nov 17 '11 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? –  Highly Irregular Nov 17 '11 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. –  David Schwartz Nov 18 '11 at 6:34
add comment

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.

share|improve this answer
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! –  Highly Irregular Nov 16 '11 at 20:57
1  
"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. –  Highly Irregular Nov 16 '11 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. –  David Schwartz Nov 16 '11 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. –  Highly Irregular Nov 17 '11 at 22:27
    
@HighlyIrregular You're missing the whole point. Forget about money, don't assume you know the answer. All you know is that the shop has coffee and that the coffee has value to the customer. The customer now has an incentive to try to get the shop to part with the coffee. The shop now has an incentive to try to get the coffee to the customer. In both cases, the incentive is to get some of the value of the coffee to the customer. The natural result of these incentives is the sale of the coffee (or trade or whatever). But all you need are the two matched incentives, then something will result. –  David Schwartz Nov 17 '11 at 22:32
show 5 more comments

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

share|improve this answer
1  
+1 for the link –  Gary Rowe Nov 17 '11 at 17:23
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? –  David Schwartz Nov 17 '11 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. –  eldentyrell Nov 18 '11 at 11:12
    
@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). –  Highly Irregular Nov 19 '11 at 20:42
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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