I was reading On Bitcoin and Red Balloons (discussed briefly in this forum's Notable press hits thread). I have only skimmed it so far, but found their game-theoretic reasoning a little confusing. Suppose Alice sends me a transaction she's had with Bob. I propagate it to others, and we create a chain of signatures as we pass it between each other. Everyone in the chain gets a part of the fee when it's included in a block. That's all fine. But the claim that it's sybil-proof is unclear to me. What is to stop me, an early member of the chain, from making a chain of bogus addresses in addition to the ones from legitimate propagation, and solving a block with the final address in the bogus chain? Then every bogus address I made gets a part of the reward. What is the duplication-free strategy which dominates this, from my perspective?

As others discussed in the "notable press hits" thread, it's also unclear to me that incentives are actually needed to induce widespread propagation of transactions. As long as it's baked into most clients, it's not going to be worth cheating on this issue, is it? Bandwidth is cheap, after all.

I can't answer your question but i doubt this will ever being an issue. It is true that mining pools have an incentive to withhold transactions but these nodes only make up a tiny proportion of the network. I have 120 mining pool nodes in my database out of +26,000 nodes in past 24 hours. Normal nodes have an incentive because they need to network to function properly in order to process their own transactions + bandwidth costs are tiny.

If this really became a problem a much easier solution would be for pools to offer a rewards to nodes that relay them a transaction they haven't seen before. Pools could offer 10% of the transaction fee back to the node that relayed them the transaction. This could be implement with minimal change to the core protocol and would create more efficient paths for network propogation.

If this really became a problem a much easier solution would be for pools to offer a rewards to nodes that relay them a transaction they haven't seen before. Pools could offer 10% of the transaction fee back to the node that related them the transaction. This could be implement with minimal change to the core protocol and would create more efficient paths for network propogation.

Offering to send 10% back will not actually solve this problem. If this reward is promised, it is still better for a miner not to forward the transaction.Solving this problem is not trivial. Otherwise it wouldn't have been worth it to write a paper about it anyway

But I do agree that maybe it's not really a problem that will pop up in reality, if non-miners forward transactions too.

I have 120 mining pool nodes in my database out of +26,000 nodes in past 24 hours.

Off-topic for this thread, but how are you finding out which nodes are from a mining pool? Both ways I can think of are at least somewhat unreliable:

* Find where miners are connecting and search the address database for nearby nodes* Listen for inv messages for blocks and track the first node to notify you of a block; these are the nodes to which you are connected which are closest to the miners

Offering to send 10% back will not actually solve this problem. If this reward is promised, it is still better for a miner not to forward the transaction.

Not forwarding the tx only helps if no one else in the entire bitcoin network has seen the tx. The odds of that being true are so minuscule as to be essentially zero. Open up your router port so that your client connects to 100 other nodes, and there's just no way your tx won't get propagated.

I have 120 mining pool nodes in my database out of +26,000 nodes in past 24 hours.

Off-topic for this thread, but how are you finding out which nodes are from a mining pool? Both ways I can think of are at least somewhat unreliable:

* Find where miners are connecting and search the address database for nearby nodes* Listen for inv messages for blocks and track the first node to notify you of a block; these are the nodes to which you are connected which are closest to the miners

Am I missing something else?

Nothing that complicated, i look through a list of the ip's that relayed the most blocks. Then use a) server hostname b) whois c) google d) location e) look at mining pools stats pages and see if any correspond.