Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Wary on August 15, 2015, 11:32:00 PM



Title: I suspect we need a better incentive for users to run nodes (c)
Post by: Wary on August 15, 2015, 11:32:00 PM
Doesn't matter was it real Satoshi that said it or is it a fake, the idea itself (let nodes to charge for their services) is IMO very important.

Does anybody work on it?


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: unamis76 on August 15, 2015, 11:44:33 PM
Nodes are voluntary work. That being said, you can host a page on your node asking for donations. Bitnodes also has a "rewards program" that gives tips to random nodes.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: TransaDox on August 16, 2015, 01:39:29 AM
Doesn't matter was it real Satoshi that said it or is it a fake, the idea itself (let nodes to charge for their services) is IMO very important.

Does anybody work on it?
If you put block processing (not mining) back into clients, they will get transaction fees and be paid and incentivised for supporting the network.

I was quite disappointed to read that Satoshi envisioned huge centralised farms and users just being users paying fees. That means the end game is a cartel of infrastructure rich companies - back to square one for the proles.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: gmaxwell on August 16, 2015, 01:46:57 AM
I was quite disappointed to read that Satoshi envisioned huge centralised farms and users just being users paying fees. That means the end game is a cartel of infrastructure rich companies - back to square one for the proles.
Thats a misrepresentation in any case.

That response was to specific questions about the system being able to work at all.  My understanding of it at the time was simply what it said at face value.  Proof the system can work, the users get to choose the trade-offs; which is something classical centeralized systems couldn't offer.  ::shrugs::  Keep in mind that anything written in 2009-2011 was written in a very different world, not one where people just take for granted that Bitcoin works _at all_.

It's sad that people feel the need to put words in other people's mouths in any case. The whole appeal to authority hugely undermines the principles of the system.  If you want something that lives and dies on the whim of some authority: centeralized systems can have much better performance and security properties.


The node incentives thing doesn't seem technically feasable. Or rather, the system had that built in but it was undermined by pooled mining.  We now know how to avoid any _need_ to run pooled mining now, but it's always less costly to do so (due to the costs of running a node).

SPV could work in a way that more or less obviates the need for almost anyone to run a node at all; but the existing software never implemented that-- and those working on SPV right now are okay with fairly centeralized trust models and so they seem to not care. (Or even view the low security as a virtue).


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: TransaDox on August 16, 2015, 02:45:44 AM
I was quite disappointed to read that Satoshi envisioned huge centralised farms and users just being users paying fees. That means the end game is a cartel of infrastructure rich companies - back to square one for the proles.
Thats a misrepresentation in any case.

That response was to specific questions about the system being able to work at all.  My understanding of it at the time was simply what it said at face value.  Proof the system can work, the users get to choose the trade-offs; which is something classical centeralized systems couldn't offer.  ::shrugs::  Keep in mind that anything written in 2009-2011 was written in a very different world, not one where people just take for granted that Bitcoin works _at all_.

It's sad that people feel the need to put words in other people's mouths in any case. The whole appeal to authority hugely undermines the principles of the system.  If you want something that lives and dies on the whim of some authority: centeralized systems can have much better performance and security properties.


The node incentives thing doesn't seem technically feasable. Or rather, the system had that built in but it was undermined by pooled mining.  We now know how to avoid any _need_ to run pooled mining now, but it's always less costly to do so (due to the costs of running a node).

SPV could work in a way that more or less obviates the need for almost anyone to run a node at all; but the existing software never implemented that-- and those working on SPV right now are okay with fairly centeralized trust models and so they seem to not care. (Or even view the low security as a virtue).


I was referring to this post (https://bitcointalk.org/index.php?topic=532.msg6306#msg6306)  where he states

Quote
The current system where every user is a network node is not the intended configuration for large scale.  That would be like every Usenet user runs their own NNTP server.  The design supports letting users just be users.  The more burden it is to run a node, the fewer nodes there will be.  Those few nodes will be big server farms.  The rest will be client nodes that only do transactions and don't generate.


Have I misrepresented? He seems to be clearly stating that distributed nodes are a small scale solution with consolidation at scale. That I find depressing and stand by what I said. If I have misinterpreted, then please correct me. The only other interpretation that I can see is he is agreeing with me, that unless clients do the block processing and miners only "generate" coins, then the result will be big server farms as we are seeing now. I think that is a rather wistful reading of the words, however.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: Seccour on August 16, 2015, 07:24:32 AM
Nodes are voluntary work. That being said, you can host a page on your node asking for donations. Bitnodes also has a "rewards program" that gives tips to random nodes.

For now. If we change that even with bigger block size, people will still host Bitcoin Node so the "centralisation" debate will be over.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: wtogami on August 16, 2015, 07:44:31 AM
The whole appeal to authority hugely undermines the principles of the system.  If you want something that lives and dies on the whim of some authority: centeralized systems can have much better performance and security properties.

This is a critically important point.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: TransaDox on August 16, 2015, 09:39:19 AM
The whole appeal to authority hugely undermines the principles of the system.  If you want something that lives and dies on the whim of some authority: centeralized systems can have much better performance and security properties.

This is a critically important point.
Yes. Except I was challenging that authority not appealing to support my position.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: coins101 on August 16, 2015, 06:53:17 PM
...
The node incentives thing doesn't seem technically feasable. ..

Well, that's not a true reflection of things.

I have sent you a preview draft of a white paper with a node incentives proposal.

I can quite understand you not replying because you don't want to give air to altcoins; you don't want your name associated with something you think is a potential get rich scheme; you don't agree with the approach; or you simply don't have the time to look at everything that passes your way.

With respect, I'm just pointing out something which you should know not to be totally accurate, unless of course you don't think the white paper proposals have merit, but how would I know that.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: funkenstein on August 17, 2015, 06:13:09 AM
1)  Make a nice node, ensure good connection to miners
2)  Start charging people to submit TXs to your node, and enable such submissions via website form, IRC message, whatever.  Payment can be in the TX or otherwise how you like. 

That's pretty much it.  Right now you might not get anyone to pay because, well, volunteers do it for free.. but if this is an issue..  well there's your solution.  



Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: coins101 on August 17, 2015, 07:22:54 AM
1)  Make a nice node, ensure good connection to miners
2)  Start charging people to submit TXs to your node, and enable such submissions via website form, IRC message, whatever.  Payment can be in the TX or otherwise how you like.  

That's pretty much it.  Right now you might not get anyone to pay because, well, volunteers do it for free.. but if this is an issue..  well there's your solution.  



Unless I didn't understand the question or the solution correctly - the issue is who, why and how are people going to pay?

Then there is the issue of miners rewards halving to zero. The intention has always been that when rewards end, fees fund mining.

So we would end up with fees going to:

* miners
* connections to nodes
* exchanges
* payment processors
* off chain networks that settle on the block chain

Then there is the issue of how do you pay nodes from SPV wallets. You could have a situations with one full node for every 1m SPV wallets as a general ratio.

Having websites to pay nodes would have an impact on user and infrastructure anonymity of the entire network. That would be like the doctor prescribing a cure to an illness, which would unfortunately kill the patient.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: funkenstein on August 17, 2015, 08:13:46 AM
1)  Make a nice node, ensure good connection to miners
2)  Start charging people to submit TXs to your node, and enable such submissions via website form, IRC message, whatever.  Payment can be in the TX or otherwise how you like.  

That's pretty much it.  Right now you might not get anyone to pay because, well, volunteers do it for free.. but if this is an issue..  well there's your solution.  



Unless I didn't understand the question or the solution correctly - the issue is who, why and how are people going to pay?

Then there is the issue of miners rewards halving to zero. The intention has always been that when rewards end, fees fund mining.

So we would end up with fees going to:

* miners
* connections to nodes
* exchanges
* payment processors
* off chain networks that settle on the block chain

Then there is the issue of how do you pay nodes from SPV wallets. You could have a situations with one full node for every 1m SPV wallets as a general ratio.

Having websites to pay nodes would have an impact on user and infrastructure anonymity of the entire network. That would be like the doctor prescribing a cure to an illness, which would unfortunately kill the patient.

The OP is addressing the incentive to run a node, not the incentive to mine.  Mining incentives, well, that's another topic. 

My point is that you could charge people now, any way you like, for running a node.  This is not a "protocol change needed" scenario.    This "no change at all" is hardly a doctor's prescription nor an illness. 



Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: letsplayagame on August 17, 2015, 09:22:33 AM
The whole appeal to authority hugely undermines the principles of the system.  If you want something that lives and dies on the whim of some authority: centeralized systems can have much better performance and security properties.

This is a critically important point.

I think that most people are attracted to bitcoin at least in part because of its lack of centralized authority. If necessary I am willing to sacrifice some amount of "better performance and security properties" if necessary. Decentralization is most important.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: coins101 on August 17, 2015, 10:01:39 AM
1)  Make a nice node, ensure good connection to miners
2)  Start charging people to submit TXs to your node, and enable such submissions via website form, IRC message, whatever.  Payment can be in the TX or otherwise how you like.  

That's pretty much it.  Right now you might not get anyone to pay because, well, volunteers do it for free.. but if this is an issue..  well there's your solution.  



Unless I didn't understand the question or the solution correctly - the issue is who, why and how are people going to pay?

Then there is the issue of miners rewards halving to zero. The intention has always been that when rewards end, fees fund mining.

So we would end up with fees going to:

* miners
* connections to nodes
* exchanges
* payment processors
* off chain networks that settle on the block chain

Then there is the issue of how do you pay nodes from SPV wallets. You could have a situations with one full node for every 1m SPV wallets as a general ratio.

Having websites to pay nodes would have an impact on user and infrastructure anonymity of the entire network. That would be like the doctor prescribing a cure to an illness, which would unfortunately kill the patient.

The OP is addressing the incentive to run a node, not the incentive to mine.  Mining incentives, well, that's another topic.  

My point is that you could charge people now, any way you like, for running a node.  This is not a "protocol change needed" scenario.    This "no change at all" is hardly a doctor's prescription nor an illness.  



Perhaps I misunderstood.

But, this:  
Quote
2)  Start charging people to submit TXs to your node, and enable such submissions via website form, IRC message, whatever.  Payment can be in the TX or otherwise how you like.  

If you charge people to submit transactions to nodes, you are eating into miners revenue. My general point is that increasing fees to users is part of the issue that has led to an XT fork attempt - their view is that increasing fees too much prevents adoption.  If the aggregate of all the fees people encounter when using Bitcoin becomes too high, people won't use it.

Linking payments to websites just attaches your identify to transactions. It removes what little anonymity is in Bitcoin.

This is a tricky problem to solve and I certainly do not discourage anyone thinking about it - just trying to point out that some ideas lead to unintended consequences.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: ashour on August 17, 2015, 08:35:11 PM
Doesn't matter was it real Satoshi that said it or is it a fake, the idea itself (let nodes to charge for their services) is IMO very important.

Does anybody work on it?
Someone should develop an user friendly solution to the node problem. Maybe a program that downloads and install easily, one click and the node runs. Something that should be easy to use for newbies and not tech savvy people.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: iopq on August 17, 2015, 08:39:25 PM
If pruning is more functional and the default, more people will run nodes. Right now, a huge part of my SSD is dedicated to the blockchain. Soon, I won't have the space for the entire thing. Sure, I could move it over to the HD, but the point is the system discourages running a full node.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: TransaDox on August 17, 2015, 08:49:25 PM
If pruning is more functional and the default, more people will run nodes. Right now, a huge part of my SSD is dedicated to the blockchain. Soon, I won't have the space for the entire thing. Sure, I could move it over to the HD, but the point is the system discourages running a full node.

I ran out a few weeks ago. I now keep the chain on a NAS but it only takes a tiny problem an you are back to a week re-indexing or re-downloading. I now only turn it on every few days just to catch up and I suspect many are doing something similar.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: Wary on August 18, 2015, 04:48:09 AM
My point is that you could charge people now, any way you like, for running a node.  This is not a "protocol change needed" scenario.    This "no change at all" is hardly a doctor's prescription nor an illness.
That's a good point. Anyone can charge for a node now, but nobody will pay for it. Because why pay if you don't have to. People won't pay to nodes until they'll start getting problems caused by blocksize and paid node would be able to resolve them. Currently blocksize problem is not a problem, but an anticipation of a problem (future centralization, future big propagation time etc). When it'll become a real problem it'll be solved in no time (That's, BTW, Antonopulos' opinion).

However, I think we already have to start preparing the infrastructure for the solution.

IMO, it should be part of bitcoin protocol, rather than some parallel construct, like paid site. If miner's incentives (reward+fees) should be part of protocol, why node's incentives shouldn't?
The protocol should be symmetrical, enabling every participant charge and pay (because currently we don't even know who will pay to whom. The marked will determine it).

So it's big project (changes in protocol, in wallets etc etc), and if we want it to be ready when it is required, we should start already.

That's why I repeat the question from OP:

Is anybody currently working on it?

(Because if somebody does I would consider joining them).


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: Vanish on August 18, 2015, 08:01:49 AM
I have always thought that running a node should be rewarded in some way. But instead of thinking in charging the users, I was thinking in charging the miners.

My idea was some sort of "pool of nodes", similar to a pool of miners. Imagine that some nodes are part of the pool of nodes, once the miners send the new block mined, the pool of nodes will check if that block has included a "tip" to the pool's address (or may be it is better to call it a fee), and the pool will propagate the block only if the fee is present.

The incentive to the miners for tiping the pool is that there will be a higher risk of their new mined block will not be accepted as good as it could be competing with another block mined by other miner that paid the fee, and it is propagated by the pool A.

But I need to think of it deeply.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: funkenstein on August 18, 2015, 11:30:09 AM
Perhaps I misunderstood.

But, this:  
Quote
2)  Start charging people to submit TXs to your node, and enable such submissions via website form, IRC message, whatever.  Payment can be in the TX or otherwise how you like.  

If you charge people to submit transactions to nodes, you are eating into miners revenue. My general point is that increasing fees to users is part of the issue that has led to an XT fork attempt - their view is that increasing fees too much prevents adoption.  If the aggregate of all the fees people encounter when using Bitcoin becomes too high, people won't use it.

Linking payments to websites just attaches your identify to transactions. It removes what little anonymity is in Bitcoin.

This is a tricky problem to solve and I certainly do not discourage anyone thinking about it - just trying to point out that some ideas lead to unintended consequences.


Thanks :)  Yes, indeed charging for TX relaying would be taking from the source that pays miners relay fees and so could in theory change that market.  In fact it seems impractical because miners should simply say, well, just give us the TX directly.  We have net access too and we can also make wwws.  I am still somewhat surprised that there is not more direct submission of TXs to miners, though I know there is some.  There are some other reasons to submit TXs directly to miners, for more non-standard TXs where malleability can be an issue for example.

So yeah, my saying "nodes can already charge if they like" is hardly a cure-all solution.  The market says there's no money there, and in the end, I hope, the market decides what people can do, not some guy claiming to be a dwarf on bitcointalk ;)

In any case, there doesn't have to be any doxxing in these payment channels.  A node could for example say "any TX which doesn't provide 1 millie output to this address I will not propagate".

In the end there are many types of motivations behind payments, some which need confirmation as soon as possible and are willing to pay, and some (e.g. between mutually trusted parties) that don't care how long it takes.  This stuff will have to find balance with the costs of internet, power, and node operation expenses.   
   
 

 



Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: jc12345 on August 18, 2015, 11:53:26 AM
I am more a business person than a technocrat, but with normal companies if data, like accounting records, becomes too much it gets archived. Data becoming too big is a universal problem and not something unique to Bitcoin. Neither can Bitcoin be expected to solve a physical problem like storage constraints. You then have a live potion of lets say 90 days and an archived portion for alternative interrogation.

If a snapshot is taken of the blockchain with the balances of all the addresses at some point, then the chain can start again and the old portion can be archived and hashed. A complete hash of the archive can be worked into the first block of the live chain to make sure no-one can ever change the archive - the archive then becomes like a block itself. Perhaps the archiving function can be automated in the wallet every 10000 blocks and the wallet can calculate a hash of the archive and this same function can be performed by all the nodes and consensus reached on the hash and included in the next block. The first archive can be a large one and the rest will become incremental archives, just like a backup system.

The archives can be loaded on a few nodes and interrogated by some web interface and even torrented and the live portion can then be widely distributed. Alternatively anyone can interrogate an offline copy of the chain if the hash checks out. The process can be repeated once a year or more frequently if the size of the blocks make the chain grow to fast eg. predetermined number of blocks. This will also open the possibility of making block sizes greater than the proposed 8MB as you just increase the frequency of the archiving to make the max live potion fit the average storage of a wallet device. There will be technicalities to sort out in the abbreviated chain but with all the clever people around I am sure a solution could be found?


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: gmaxwell on August 18, 2015, 07:34:13 PM
Have I misrepresented? He seems to be clearly stating that distributed nodes are a small scale solution with consolidation at scale. That I find depressing and stand by what I said. If I have misinterpreted, then please correct me. The only other interpretation that I can see is he is agreeing with me, that unless clients do the block processing and miners only "generate" coins, then the result will be big server farms as we are seeing now. I think that is a rather wistful reading of the words, however.

Yes, you have, though it's not your fault.  What a client in Bitcoin is has been subverted into something that can't enforce the rules at all and is utterly dependant on trusting miners.  That was never the design of the system.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: Cryptorials on August 19, 2015, 12:50:16 PM
Just published an article on this subject: http://cryptonewsday.com/bitcoin-is-proving-why-no-crypto-can-survive-without-a-decentralized-governance-structure/

BTW varnish - I mention your post!

I have always thought that running a node should be rewarded in some way. But instead of thinking in charging the users, I was thinking in charging the miners.

My idea was some sort of "pool of nodes", similar to a pool of miners. Imagine that some nodes are part of the pool of nodes, once the miners send the new block mined, the pool of nodes will check if that block has included a "tip" to the pool's address (or may be it is better to call it a fee), and the pool will propagate the block only if the fee is present.

The incentive to the miners for tiping the pool is that there will be a higher risk of their new mined block will not be accepted as good as it could be competing with another block mined by other miner that paid the fee, and it is propagated by the pool A.

But I need to think of it deeply.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: Vanish on August 19, 2015, 03:24:10 PM
Just published an article on this subject: http://cryptonewsday.com/bitcoin-is-proving-why-no-crypto-can-survive-without-a-decentralized-governance-structure/

BTW varnish - I mention your post!


Thank you!

As I said, I have to think more about it (I'm thinking on pool cheaters part of two different pools and how to control it). And I thought about it because I think the current situation is not fair, miners can get a fair fee for the calculations, but running nodes and propagating miners new blocks is done by some fools who wants to do it for free. I think it is not fair.

I do not agree with some part of your article. In my opinion, on bitcoin we have now clearly a representative democracy system (that, as we say in my home country, doesn't work): we have delegated our votes to the mining pools. It is not true that people who run a full node get to "vote" on bitcoin system. Nobody can buys votes by setting up nodes, because nodes don't vote. We can open posts following the number of XT nodes, create spoofing XT clients or whatever we want. At the end, Gavin only has to convince five or ten people from the mining pools, and his fork will win.

If every node of the network could choose to ban today any new block with a XT flag in the header (not all the blocks in the blockchain, as I think there is one right now for example, just the last one that wants to be propagated), things would be much different, I think. I would find this a more effective (and direct ;) ) way for voting against XT than spoofing. Threating miners to not validate their blocks if they dare to flag it as XT and risking that some other pool without the XT flag will make their block validated would make harder to create a network effect in which every pool starts to mine with the XT flag "just in case".

Yes, I know that we could do it right now, and that could potentially be another extra hard fork issue right now instead of waiting to January to see if Gavin wins, but much more people could take part of this, instead of trusting that 5 people signing a PDFs written in chinese will "represent" ( ;) ) us.


Title: Re: I suspect we need a better incentive for users to run nodes (c)
Post by: GingerAle on August 19, 2015, 04:07:14 PM
From what I've gathered, there was never supposed to be a separation from "nodes" and "miners", so that is the root of the problem. The pooled mining is what facilitated this split in the architecture.

There is an existing option to address this, if anyone in this conversation is mining. Running p2pool is essentially a cooperative solo mining. So, every participant in the p2pool is running a full node and mining on that full node (well, you can mine on someone elses node, but you don't have to). If you find a block, the blockreward is split amongst everyone in the p2pool in accordance to their hashrate (as determined by the share chain, if I'm getting this right). So its more a co-op than a pool. Well, that might not be the right analogy. But the important part is you mine on your own full node, not send shares to some central node.

It's a tough problem, especially now, when the "social contract" of bitcoin has been solidified. Any addition incentive would have to come from the existing pipeline - you couldn't just go in and say "hey now full nodes get part of the block reward".

So one could imagine a new client clone that participates in some node incentive program, but this client would have to be networked with some mining power. I.e., there would be a particular mining pool that diverts X% to nodes running bitcoindi. the i is for incentive.

but thats vaporware / vapornet. Your best bet (as far as I understand it) is p2pool.

and the extreme bummer is that very few altcoins are seriously trying to experiment with the pool problem. The only one I was aware of was spreadcoin, but they went POS and I stopped following.