I think this post should be preserved around here, because of the email from Satoshi on the future of incentives for Nodes (I don't want to raise the issue of small vs large blocks, as I think that issue is going to resolve itself over the long-term):
Well thanks for being the "spokesperson" for everyone here but I think you'll find that quite a few people disagree and if Satoshi really had planned for Bitcoin to be a tx system to compete with the likes of Paypal/Visa then you don't think he might have made a mistake or two (if not then why does this very thread exist)?
Ian, Satoshi
did plan for Bitcoin to compete with PayPal/Visa in traffic volumes. The block size limit was a quick safety hack that was always meant to be removed.
In fact, in the
very first email he sent me back in April 2009, he said this:
Hi Mike,
I'm glad to answer any questions you have. If I get time, I ought to write a FAQ to supplement the paper.
There is only one global chain.
The existing Visa credit card network processes about 15 million Internet purchases per day worldwide. Bitcoin can already scale much larger than that with existing hardware for a fraction of the cost. It never really hits a scale ceiling. If you're interested, I can go over the ways it would cope with extreme size.
By Moore's Law, we can expect hardware speed to be 10 times faster in 5 years and 100 times faster in 10. Even if Bitcoin grows at crazy adoption rates, I think computer speeds will stay ahead of the number of transactions.
I don't anticipate that fees will be needed anytime soon, but if it becomes too burdensome to run a node, it is possible to run a node that only processes transactions that include a transaction fee. The owner of the node would decide the minimum fee they'll accept. Right now, such a node would get nothing, because nobody includes a fee, but if enough nodes did that, then users would get faster acceptance if they include a fee, or slower if they don't. The fee the market would settle on should be minimal. If a node requires a higher fee, that node would be passing up all transactions with lower fees. It could do more volume and probably make more money by processing as many paying transactions as it can. The transition is not controlled by some human in charge of the system though, just individuals reacting on their own to market forces.
Eventually, most nodes may be run by specialists with multiple GPU cards. For now, it's nice that anyone with a PC can play without worrying about what video card they have, and hopefully it'll stay that way for a while. More computers are shipping with fairly decent GPUs these days, so maybe later we'll transition to that.
Satoshi said back in 2010 that he intended larger block sizes to be phased in with some simple if (height > flag_day) type logic, theymos has linked to the thread before.
I think he would be really amazed at how much debate this thing has become. He never attributed much weight to it, it just didn't seem important to him. And yes, obviously, given the massive forum dramas that have resulted it'd have been nice if he had made the size limit floating from the start like he did with difficulty. However, he didn't and now we have to manage the transition.
1) My question is why will nodes contribute on behalf of everyone(including wasteful nodes)? Or is there a scheme where the payee can filter which txns are subsidised?
The "why" is the whole point of assurance contracts. They're a way to fund the creation of what economists call
public goods, that is, goods which cost money to create but once created benefit everyone for free with no way to exclude people. The canonical example is a lighthouse.
Why will nodes contribute on the behalf of everyone? Firstly, it's not actually nodes, it's "receivers of funds", and it doesn't need to be all of them, just some. They will fund these contracts because they need network security and thus mining to take place. Yes, by doing so, they implicitly subsidize freeloaders who don't pay, however that's the reason for the design of an assurance contract - it means others have to chip in, otherwise nobody pays anything.
Even if there are big Bitcoin businesses which benefit from sustaining the network, how do we know their contribution will be enough?
The system naturally converges upon an equilibrium in which the only businesses that use Bitcoin are the ones who can tolerate the delay/double-spend-frequency tradeoff. If other businesses want more hashing in less time, they can join the contracts and result in more fees. So "enough" is a relative term. It will always be "enough" for the current set of users, and for other sets the equilibrium hash rate may be more or less than what they need.
Bear in mind that if everyone thinks "I won't pay for hashing because my competitors will" then the contract does not complete and nobody pays anything, therefore nobody gets any security. That's the purpose of an assurance contract - I pay only if my competitors also pay.
W.R.T "waste" - you have to distinguish between the cost of mining and the cost of validation. The two are not connected except that the cost of mining is always more than the cost of validation, because mining requires validation. I believe validation will be, even at high transaction rates, cheap enough that people can just swallow them as a cost of business or even just for hobbyist reasons. Alternatively, people can once again band together and form assurance contracts to fund the running of full nodes.
Having said that, maybe im wrong. If you feel strongly that this will work, please implement it and prove me wrong so that we can all have free Bitcoin txns.
Unfortunately I can't do that today. The present situation is that hash speeds are so great thanks to inflation that nobody is successfully double spending via forced re-orgs (the attack that lots of mining prevents). So there's no incentive for anyone to fund mining via fees, the only reason anyone is attaching fees at all right now is to try and win the block space auction or avoid DoS checks. Currently inflation is "good enough" and this has, in fact, always been the case.
One of the curious things about this whole argument is nobody knows the future well enough to implement solutions today. For all we know it can be the year 2050 and a single Bitcoin is worth so much that inflation is
still driving hash speeds sky high. There may never even need to be incentivization via fees within our lifetimes. Or maybe there will. If there is, then if I'm still around I'll sit down and write the code.