10

We all want more decentralized bitcoin network and more people to run nodes. However, as we know that things are driven more by market economics rather than philanthropic or feel good factors. Similar economics driven adoption worked for EV by making them better/cheaper in long term. Things like carbon tax have also been been helpful to create economic incentive for a cleaner environment.

Is there a way to change bitcoin protocol to achieve something like this? Maybe the validating nodes can somehow prove that they have verified the blocks or utxos. Privacy is a current known incentive of running nodes however it is not economically very tangible and is not dissuading large number of users from using centralized wallet services.

2
  • 2
    Does this answer your question? Are people incentivized with BTC to run nodes?
    – chytrik
    Jan 13 at 12:00
  • No, I am specifically looking on how the protocol can be changed to incentivize nodes. The above answer just says it is extremely challenging. I would like to see a list of possible ways forward that maybe people can work or think upon. Or if its not possible, a mathematical/logical proof that it is not possible Jan 13 at 12:22
19

I don't think it is possible. There are a few problems to incentivizing the operation of nodes.

  1. When you pay people to run nodes, people running multiple nodes provide less value but earn more for the same effort. In the worst case, you may be paying botnets to run nodes on other people's hardware.
  2. It's hard to prove that you're actually validating, because it is indistinguishable from just forwarding information from another node that does the validation.
  3. Validating the blockchain is meaningful to the operator of the node as it provides them with a reliable copy of the network's state. It's not easy to delegate the work: to check whether someone has the correct state, you need a second source of the correct state. In the end, you need to validate in order to verify if another copy is sound. But if you're validating the blockchain yourself, you won't be interested in acquiring the data.
  4. Nodes play an abstract role in the network to make the game theory work: they ensure that everyone is following the rules that the user is enforcing. They are passive observers for the authoring of the blockchain. If they were to be paid by the Bitcoin protocol, the network would need to become aware of specific nodes to track them. This would require persistent identity, some sort of availability tracking, and/or their participation in the authoring of the blockchain. None of those things are desirable.

Running a node is inherently something users do for themselves. It should be as accessible as possible. Adding money to the mix makes the overall outcome worse, not better.

8
  • It maybe possible to prove that a node is validating - for example a node that is mining blocks at difficulty 1. However there needs to be a way to reward these nodes. Your point 1 is true in case of mining as well, however I don't think this works against the network as a whole. There would be multiple botnets across the world, as long as distribution of reward is not baised, it should be ok I think. Jan 13 at 16:21
  • 2
    Point 1 is not true for mining in the same way. The output of mining is valid blocks. More work costs more but provides more output. There is only a minuscule benefit to being a bigger miner from the protocol side. (More from the logistics side.) If validating nodes got paid, you could run one node and announce it on ten IPs to get ten times the reward for zero added benefit.—Your suggestion to make them mine very low difficulty shares is not tied to a specific node. You could just have an ASIC and mine for dozens of different supposed nodes.—I don't think Botnets provide a reliable benefit.
    – Murch
    Jan 13 at 16:25
  • Rewards are not given to node IPs. The 1 difficulty block is just accepted by the network and coinbase reward is given like a regular block. So announcing it from different IPs or forwarding has no benefits. This was just a thought, of course the whole thing won't work, just saying there could be ways to avoid giving benefits where information is forwarded. Jan 13 at 16:37
  • 2
    Sure, you could tie the payout to unique addresses, but that doesn't solve the issue of sybil attacks. Anyone can create any number of addresses and 1-diff blocks. If you'd get a block subsidy for a 1-diff block, we'd sure see a lot of them.
    – Murch
    Jan 13 at 16:41
  • nodes on botnets do actually provide value to the network btw
    – user253751
    Jan 15 at 17:37
3

I think you've got your reasoning backwards. The reason we want more people to run nodes is because people only run nodes if they get value out of it, so more people running nodes means more people getting value.

If you incentivized people to run nodes, then they would be running nodes even if they produced no value at all. Of what possible benefit would that be to anyone? They would validate blocks and then throw away the results of the validation (since nobody has any use for them). How does that help anything?

Your reasoning is somewhat like this: People with white hair are more likely to get cancer. So we should pay people to dye their hair brown so we'll have fewer people with white hair and thus less cancer.

Yes, it's a good sign when people run nodes because that means that people are getting value out of bitcoin that exceeds the cost to run a node. It means that there are lots of people getting that value. But if you incentivize people to validate blocks, they'll validate blocks even if they have no good reason to, don't care if the blocks are valid or not, have no use for that information, and do nothing with it.

2
  • 1
    Does this mean logically mean that miners should also not get any incentive (after the purpose of creating enough coins is over) ? The tx fee can just be eaten by the network. Only miners getting real value out of the network will mine Jan 15 at 10:21
  • @darkknight I don't think that would work in a PoW system, but that's exactly how the consensus Jed, Arthur, and I designed for the XRP Ledger in 2011 works. If you bring the costs of producing valid blocks down, then in theory those who get real value out of the network will produce them. This has worked well, but also has some issues. You can head more here. Jan 16 at 22:40
2

Can bitcoin protocol be changed to add economic incentives to validating nodes?

I think that would have to be a hard fork, a different currency.

Maybe the validating nodes can somehow prove that they have verified the blocks

Validation is not a service. No full nodes care whether other nodes do any validating. It isn't something anyone should pay for because all nodes, even SPV nodes, must themselves validate what data they receive to the fullest extent possible using whatever data they have stored locally or can otherwise obtain and cross-check. Just because you pay money to someone doesn't make them trustworthy.

3
  • Are you sure it would be a hard fork and result in two coins? Isn't that just speculation?
    – Prayank
    Jan 13 at 16:05
  • @Prayank I am not certain. I suspect it would be hard to do in a way that is compatible with nodes that don't update. It seems to me those older nodes wouldn't have a way to pay this new fee and the old and new nodes would therefore likely split off into separate networks with different chains. I suspect someone doing this would have to show how their change would avoid this sort of issue, preventing new nodes discriminating against old nodes that don't pay the new fees. Jan 13 at 16:10
  • Every node should care whether every other node is validating because that is what creates a consensus. Nodes should care about disincentivizing other nodes from switching to the Shitcoin network (identical to and interoperable with Bitcoin, but with no validation), because if Shitcoin becomes the majority then the network will be worthless, even though each node has an individual incentive to switch to Shitcoin
    – user253751
    Jan 15 at 17:40
1

However, as we know that things are driven more by market economics rather than philanthropic or feel good factors.

Running a bitcoin node is more than just helping the network. One recent tweet summarizes it in the best way possible, running a node is nothing but downloading the bitcoin implementation software, install and run like lot of other software:

https://twitter.com/rot13maxi/status/1479886017419255819

Pruned nodes can be used if space is concern. Lot of bitcoin projects have made it easier to use the full node you run with just few clicks, some changes in config etc. Example: Umbrel

Main benefits of Bitcoin full node:

  1. Security
  2. Privacy
  3. Enforce consensus rules

Other ways of using Bitcoin involve different trust assumptions. Neutrino nodes are helpful for many lightning projects.

Is there a way to change bitcoin protocol to achieve something like this?

The process to change anything in Bitcoin protocol:

  1. Create BIP and share with others. Discuss everything involved.

  2. Code implementation.

  3. Get consensus on activation mechanism.

  4. Miners signaling followed by activation.

  5. Miners can follow the new consensus rules else their blocks will be rejected by full nodes. Economic nodes play an important role.

7
  • I guess charitably this could be considered a frame challenge to the question, but it doesn't actually answer the question.
    – Murch
    Jan 13 at 15:53
  • Not sure. Question looked duplicate earlier. OP commented to know if it would be possible in future with protocol changes. I quoted the things from question and tried to answer both part: 1. Why full node 2. How to change bitcoin protocol
    – Prayank
    Jan 13 at 16:01
  • You're saying "but it's easy to run a node", and "the user is intrinsically motivated to run a node". You're not responding to whether people could be rewarded for running a node or how it could be implemented.
    – Murch
    Jan 13 at 16:06
  • Maybe I read the question differently. Question: "market economics rather than philanthropic or feel good factors" Answer: "no there are other factors involved and it's easy, basic thing etc.". Question: "way to change bitcoin protocol to achieve something like this" Answer: "every change has almost the same process"
    – Prayank
    Jan 13 at 16:16
  • Well, the question's title is "Can bitcoin protocol be changed to add economic incentives to validating nodes?".
    – Murch
    Jan 13 at 16:26
1

Though not the answer, I’d like to put some light on whether nodes should or should not be rewarded for validation:

  • using a light node wallet puts the wallet itself at (limited) risk rather than the whole network. For example even if all full nodes are malicious, users can resort to running their own full-nodes (there are less likely fork scenarios though). Users are responsible for security of their light wallets in the same way they responsible for security of their private keys.

  • The network can survive and keep being decentralized (and contain valid data) as long as there is no monopoly on mining and at least one full copy of block-chain(s) exists (miners or at least mining pools usually have full copy).

  • SPV (simple payment verification) is robust to attacks aimed at stealing funds directly from wallet if you follow n-confirmation rule. Light wallets are less robust to eclipse attacks, 1-confirmation attacks (full node can hide new transactions and longest chains from users) and maybe some more exotic types.

  • there are non-monetary incentives: https://en.bitcoin.it/wiki/Clearing_Up_Misconceptions_About_Full_Nodes#Myth:_There_is_no_incentive_to_run_nodes_so_the_network_relies_on_altruism


P. S. with that said while I’m not a big fan of PoS - using simplified overlay version of PoS (operator/stakeholder locks funds conditioned on its own “good behavior”) combined with direct rewards as a secondary security measure to increase availability, prevent sybil-attacks and de-incentivize full nodes from cheating could work and stimulate running more full nodes.

Although as it mentioned in other answers - proving that the node is full is hard to impossible, so it would only guarantee that one node doesn’t pretend to be a group of nodes and it could also give mechanisms for penalizing malicious nodes (prevent them from censorship for example). The node would be rewarded exclusively for broadcasting transactions (and penalized for not doing so), they would not be rewarded for other light-node to full-node interactions (like requesting a history etc).

Such hypothetical mechanism would not require changes to bitcoin consensus or existing protocols, it would only require change of light wallet’s signing logic (the users wallet would add additional “full node reward output” in transaction) and maybe some overlay protocols to penalize censorship and unavailability (it would have to be overlay because bitcoin Script is not practically powerful enough to check proofs inside contracts).

However, again as it was mentioned, merchants and wallet providers are not monopolized and naturally abundant (thanks to competition) so introducing additional full-node fees for this type of security may be a little bit too much, but who knows :).


Note: In theory, PoS as secondary verifier would also improve safety of 1-confirmation transactions as was argued in earliest (before Eth and others were even conceived) btc-related discussions involving @QuantumMechanic, but in practice stakeholder’s “approval” is incompatible with PoW (stakeholder/SPO has no way of knowing if miners would continue building on top of block stakeholder/SPO chose). So it could only be applicable to prevent Sybil attacks, penalize censorship and increase availability.

3
  • So light/SPV nodes pay full nodes for their service, that is quite interesting. Maybe everytime k number of header downloads are attempted, a fixed charge is requested.Technically not change in bitcoin network protocol but a change in SPV protocol, so a valid minor answer Jan 15 at 16:27
  • @darkknight the problem with charging for headers is that there is no guarantee that full-node would give you a header in exchange for “payment receipt” (transaction id or rather lightning transaction update, as it is a micropayment) - you’d have to make something sophisticated and reputation/credit-based for it to work. But, when you pay for transaction - fee would be already atomically embedded in it as an additional output (same way miners fees are embedded) thus incentivizing full node to broadcast.
    – dk14
    Jan 15 at 17:52
  • It is not perfect though - light wallet might just broadcast transaction itself to free full nodes. So it is still more of a donation except if all full nodes start requiring fees.
    – dk14
    Jan 15 at 17:54
0

TL;DR I believe it is possible if bitcoin were to change to a different consensus mechanism. (A hard fork.)

Currently in the bitcoin network only miners get paid, and nodes are operated by volunteers (in the sense that they don't get the rewards miners do).

For a truly decentralized system all block rewards should be aligned in such a way, that nodes of all types that benefit the blockchain should be rewarded just like miners in Proof of Work.

There are currently niche attempts to solve this problem, one such attempt is the "Saito consensus mechanism". Rather than paying only miners, it pays all nodes that route transactions into the network. This incentivises new services to be deployed (= more nodes, further securing the network) and also solves other problems, such as the Infura Problem (The company Infura controlling 80+% of all Ethereum Nodes).

A new consensus algorithm would of course be a hard fork.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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