Bitcoin Forum
June 22, 2024, 07:50:55 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Bitcoin / Development & Technical Discussion / Re: Microsoft Researchers Suggest Method to Improve Bitcoin Transaction Propagation on: November 17, 2011, 05:47:00 PM
What would be a realistic, practical, nobrainer solution that I am sure will quickly be thought of if this ever becomes a problem, is a few honest nodes with a lot of bandwidth and an interest in the success of Bitcoin as a whole, will publish their IP's and say "Connect to me".  You as a client can connect to as many nodes as you want, but you only really need one well-connected node to talk to the majority of the network, and then...zzzz....business as usual.

Why isn't the same argument of "relying on altruists" applied to mining as well? We can take your line of thinking and ask oruselves "Why pay miners"? After all, a small bunch of people interested in the currency will contribute all the resources one needs to verify transactions.

The problem with this argument is that if transaction authentication is left in the hands of a few, they can exploit the system in order to make money. The same applies to transaction propagation: If a few nodes control the flow of information to the entire miner network they can exploit the system for their own benefits.

Bitcoin's great leap is that it incentivizes many miners that keep tabs on each other. We simply argue that it should similarly incentivize a large diversity of transaction distribution channels. Just like anyone can make money by mining, we think that everyone should be able to make money from transaction propagation. This inherently breaks any possible monopoly.

It's true that the solution we offer is not without costs. Most of the increase in block sizes is due to the fact that we esentially "micro-pay" each node for each successful transaction relay, and each payment is saved individually in the blocks. In contrast to that, mining is easier to reward -- only one miner per block. I suspect that it's not impossible to pay for several relaying actions at once as well, and that the associated increase in block size can be reduced (perhaps only reward nodes for relaying in some probabilistic manner using a form of lottery and then there will be less need to remember entire referal chains).

If you really want to write a paper on a real weakness of Bitcoin as currently implemented, what you really should pursue is the fact that bitcoin's resource consumption increases exponentially as transaction volume increases linearly, and that it's likely to see a scenario where it bursts in popularity for some reason and then suddenly becomes almost completely unusable (Gnutella style) because it is being crushed under its own weight. 

I don't see where there is an exponential increase in resource consumption from a linear increase in volume. Could you elaborate?
2  Bitcoin / Development & Technical Discussion / Re: Microsoft Researchers Suggest Method to Improve Bitcoin Transaction Propagation on: November 17, 2011, 07:07:15 AM
Hi everyone,

I'm one of the authors of the paper being discussed here.

Following suggestions from some people here in the forum and elsewhere, and in an attempt to clarify some of the points we make in the paper we've posted a summary of the paper aimed at the Bitcoin community. We hope this helps understand our paper a little better, and that this balances some of the more sensational headlines that were out there regarding our work.

http://research.microsoft.com/en-us/people/avivz/bitcoin_red_balloons_summary.aspx
3  Bitcoin / Development & Technical Discussion / Re: Microsoft Researchers Suggest Method to Improve Bitcoin Transaction Propagation on: November 15, 2011, 04:19:27 PM
Has Gavin left a message about this topic somewhere?
Overall, I think the paper is most valuable as a demonstration of how to prove that a particular solution to the problem could work-- whether or not the particular solution the authors propose (rewarding the relaying nodes) is the "best" solution I'm not sure -- there are lots of dimensions of 'goodness' here -- lowest cost, fastest transaction confirmations, easiest to implement, most compatible with the network we have now, etc.

A while ago I proposed another potential solution:  have relaying clients drop their connection to 'greedy' nodes. If you have a node that sends you new blocks but isn't relaying you new transactions, maybe drop your connection to it and ban it's IP address from re-connecting to you for a while. Or maybe don't relay (or relay after delaying a couple of minutes) new-block messages that you first see from that node.  The idea is that a mild dis-incentive should be sufficient to encourage nodes to do the right thing and relay all valid transactions and blocks.

(I'm one of the co-authors of the paper)
The paper is an academic work (submitted to a conference in theoretical computer science which is heavily mathematical) and so naturally we had a great deal of focus on the proofs. From a practical aspect we are aware that the scheme we suggest has some costs (such as inflated block sizes) and we certainly wouldn't presume to have the definitive answer. We've entertained other incentive schemes as we were writing our paper, and we are stlll exploring some of the alternatives.

We've also thought a bit about the tit-for-tat incentives you've suggested (relaying transactions only to nodes that relay transactions to you) and that seems like it may work too. One of the potential hurdles is that many times two connected nodes have different gains and losses from relaying a transaction. For example: a small miner that is connected to node that controls more processing power is at a disadvantage. Every time the small miner would relay a message it would be adding a great deal of competition, and thus potentially loosing more. On the other hand, more powerful miners (e.g., mining pools) may still manage to learn about enough transactions by sharing information internally and would not relay a lot externally.  
4  Bitcoin / Development & Technical Discussion / Re: Microsoft Researchers Suggest Method to Improve Bitcoin Transaction Propagation on: November 15, 2011, 09:12:25 AM
It would certainly change the incentives of miners to accept transactions. A miner will have to add some value to the block otherwise no one else will build on it. He might also reject low fee transactions to put upward pressure on fee prices. These two opposing forces will set a market price for fees, which may also address this problem: https://bitcointalk.org/index.php?topic=6284.200

But then wouldn't a miner still have a dis-incentive to propagate information on transactions? If I can keep transactions to myself, and add them to a block that I generated (and thereby increase the block's value compared to other blocks my competitors may be producing), others will prefer to build upon my block and may even abandon ones that were found earlier (that offered lower rewards).

I'm not sure if I can clearly see the optimal behavior of a miner under such circumstances, but this is certainly food for thought.
5  Bitcoin / Development & Technical Discussion / Re: Microsoft Researchers Suggest Method to Improve Bitcoin Transaction Propagation on: November 14, 2011, 11:23:08 PM
Hi Everyone,

I’m one of the authors of the paper “On Bitcoin and Red Balloons”. I’ve been following the discussion in this thread with great interest. We are very happy to get comments from the Bitcoin community and to discuss our work. We were pleasantly surprised to see that the community found our paper so fast (on the very day it was uploaded to the website).

I would love to respond to some of the great comments you guys have already made (I would have jumped in sooner, but it took a while to get a whitelisted account that would allow me to post to the forums). Before starting, I would like to say that while I do work for Microsoft, my comments do not reflect the company’s policy or strategy in any way. Microsoft Researchers are allowed a great deal of freedom in choosing their research topics, and thus our personal interest in Bitcoin should not necessarily be interpreted as interest by the company – it is our personal research agenda.  My co-authors and I do find BitCoin a fascinating endeavor, and we would personally like to see it succeed.

One of the first points I would like to address is the suggestion that Bitcoin can survive by relying on non-mining relay nodes that volunteer to transfer transaction information.  It is certainly true that at Bitcoin’s current size the requirements from relay nodes are very modest, and that there are many volunteers. However, we are interested in forming a stronger foundation for Bitcoin even as it scales up. I’ve been looking at the scalability page on the wiki (https://en.bitcoin.it/wiki/Scalability), and I think the requirements from nodes suggested there (taking Visa’s transaction volume as an approximate target) can be heavily taxing on nodes. At these high transaction volumes it seems like nodes need a great deal of processing power, storage, and bandwidth (the latter  being perhaps the least of their concerns) even without the potential costs of mining. These requirements are certainly affordable by someone who mines Bitcoins commercially, but I’m not sure you’d like to base the future of the currency on the hopes that many nodes will contribute so many resources freely.

Even in BitTorrent, which was mentioned above as a system in which people contribute resources altruistically, there are many complaints about non-contributing members. In fact, a great deal of BitTorrent activity is conducted in closed communities that more carefully monitor the contribution of members. Besides that, BitTorrent is much less crucial than a monetary system. If your file has no seeders then it’s not that big of a deal, but if the monetary system is shaky, it may have terrible consequences.

One more comment to asdf:  Your suggestion of paying miners with the fees gathered in the previous block is interesting. But wouldn’t that change the incentives miners when choosing which transactions to accept or reject? Or the incentives of buyers to give a transaction-fee? Right now, the miner that is currently working on a block can decide to reject a specific transaction (due to insufficient fees) but if that miner doesn’t directly get the fee from the current block, why would we trust him to accept transactions “properly”? For example, He may choose not to add any transactions at all, and save up on processing power needed for verification.

I hope to hear more interesting comments from community members. Our paper is written for an audience of theoretical computer scientists (which are more familiar with game-theoretic aspects but less familiar with Bitcoin) and we are very interested in the complementary viewpoint of Bitcoin practitioners.

Thanks!
6  Other / Beginners & Help / Re: Whitelist Requests (Want out of here?) on: November 13, 2011, 02:03:46 AM
Hi,

I'd like to request to be white listed.
My reasons: I'm a co-author on a paper that discusses incentive issues in BitCoin
(See the paper here: http://research.microsoft.com/apps/pubs/?id=156072 )

Some people have asked questions about the paper on the forums, e.g., here:
https://bitcointalk.org/index.php?topic=51662.0

and I would love a chance to respond.

Thanks in Advance!
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!