Why do (non-miner) nodes have 'veto power'?

Can non mining nodes prevent a HF?

  • Yes

    Votes: 0 0.0%
  • No

    Votes: 2 100.0%

  • Total voters
    2
  • Poll closed .

sgbett

Active Member
Aug 25, 2015
216
786
UK
In a number of discussions I've bumped up against this idea that nodes can prevent miners from deciding consensus. Something is bugging me about it though.

In the beginning there were only nodes. Nodes all mined, miners were nodes. The white paper used the term nodes to mean miners. So when the consensus mechanism was described:

Satoshi said:
From: https://bitcoin.org/bitcoin.pdf

12. Conclusion

We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism.
It was essentially saying that 51% of miners has the power to control the network.

This is international court of justice level resolution. (It's probably accepted that it should never come to this, because that would truly be a 'contentious' hard fork. Which explains ii) in the following)

Over time though a few things have happened that have moved people's understanding away from this:

i) nodes that do not mine, but only relay, have sprung up
ii) concessions have been made to try and reduce the likelihood of contentious (51%) HF, the idea of 75% or 95% majorities.

I think that combined this creates the false picture that some majority of non-mining nodes is a reflection of what 'consensus' is.

I'm curious to know if I have overlooked something, when I think that nodes (non-miners) have little to no power to actively prevent a HF.

I understand these nodes can signal, and I understand that in the event of a HF these nodes can refuse to relay blocks. In the event that there are still at least some nodes (mining or not) that will propagate these otherwise ignored blocks, then it is purely hash rate that will affect which chain gets longer.

I would speculate that there would have to be an incredible supermajority of nodes against a HF that a majority hash rate has chose to pursue for it to have any significant effect.

I can't do the formal math for this theoretical scenario, whereby a HF was activated with the minimum hashrate (disregarding the 25% fake node attack, because it is not economically rational to trigger a truly contentious HF):

75% hashrate + 25% nodes - PRO
25% hashrate + 75% nodes - ANTI

Average node has connections in the region of : 8 out / 100 in

I'd estimating that those 10% nodes provide enough coverage that the majority hash rate would on balance still move their chain ahead at 3 times the rate of the minority.

If we switch it up to 90% of nodes against, and only 10% for (same hashrate) how much does this affect the network?

The point is that although these non-miners can make things harder, I think that miners decide. This is how it has always been, regardless of whatever other meta consensus rules have been added later.
 

Zangelbert Bingledack

Well-Known Member
Aug 29, 2015
1,485
5,585
As I understand it...

Imagine 75% miners decided to hard fork to change the inflation schedule to give themselves more coins. Me, you, and all the exchanges and all the major merchants and dark markets, gambling sites, 21.co, Coinbase, major donation addresses - everyone you might owe BTC to or be owed BTC by rejects the fork. The percentage of nodes doesn't really matter. Any set of nodes can fork or refuse a fork.

The trick is, if the 75% of miners use the same hashing algo as our chain does but are mining a different chain that we reject, that is a scary situation for us because they could choose to 51% us (and probably should 51% us because otherwise we might later get more hashing power and 51% their chain). In this outlandishly unlikely scenario, we have to do something outlandish: change the hashing algo. Otherwise the 75% of miners are obligated to kill our chain in preemptive self-defense, and quite capable of doing so.

In other words, nodes can always fork off or refuse a fork. If they have majority mining power, great. If not, it seems best practice to change the PoW algo, noting that this should rarely if ever be necessary, since miners should be expected to rarely if ever deviate from the economic majority. But who knows? In the future it's possible that Bitcoin gets more fragmented, and there will almost certainly be little breakaway groups that go fork off and do their own thing, though they may not be economically significant.
 

sgbett

Active Member
Aug 25, 2015
216
786
UK
So unless the non-mining participants HF to something that mitigates the miners hashrate majority (e.g. POW change) then miners cannot be stopped from enforcing consensus?

If miners of shorter chain *do* 'incompatibly' hard fork away, then other network participants (users, exchanges, merchants etc) can also choose to switch to this chain and thus split the marketplace as well as the blockchain?

So I assume that in a this true "incompatible hard fork" scenario, with (to be fair lets not pick sides) 2 altcoins: Bitcoin-21m and Bitcoin-Infinite the free market could then decide the respective value of each coin.

I'm unclear how in your middle paragraph the 51% attack and killing chains plays out in a practical sense. Is there a kind of de-facto way in which 75% of the hashrate (assuming it was controlled by one entity) would kill another chain. Or is it more of a general "cause shenanigans enough to destroy trust such that nobody can use it" kind of way?

I can see there are these edge case scenarios exist, but I'm still really unconvinced that any of them are of concern over and above the hypothetically possible. As you say, miners are on the whole unlikely to trigger it, and even if they did can you imagine the drama amongst the 25% trying to agree on what to do about it!?
 

Zangelbert Bingledack

Well-Known Member
Aug 29, 2015
1,485
5,585
Since we are perhaps in fantasyland in this scenario it may get hard to ascertain the next moves, but I imagine for the 75% of miners the choice is fairly easy: "We either coordinate to do a quick 51% on the other chain now and deliberately screw up their ledger to discourage anyone mining on our algo, or we risk having them come back to do the same to us if they get more hashing power later (and that's exactly what they should do for their own sake), so..."

If that is the case, then for the 25%, knowing this, it seems also pretty simple, "We have a gentlemen's agreement that they won't attack us for two weeks. After that (?), it's open season. Anyone not want to change the algo?"

The game seems to be to get off the channel ASAP once you find yourself in the minority, because the incentive seems to be to reorg any minority on your channel while you can, lest you be reorged.
 
Last edited:
Non-mining nodes do not have any real "voting" power. Nodes that only relay can easily be spoofed, and one person could run many of them for a small price.

The veto power comes from the economic majority, which is a difficult group to define. If 98% of the miners decide to implement a fork that the economic majority is strongly against, the fork can be vetoed. Exactly how the veto would be happen depends on a variety of factors. It might be required to change the proof-of-work algorithm to render the current miners' hardware incapable of attacking the economic majority's chain. If the miners are more evenly split, this change would probably not be needed. It could also be important whether it is a hard or soft fork.

Luckily, Bitcoin has a great system of incentives. Miners would be very irrational to push for a fork that is not supported by the economic majority. If the economic majority decide to veto this fork, the miners would waste time mining on a low-value chain. They would even risk a proof-of-work change that renders their entire hardware investment nearly worthless.

As long as everyone is able to communicate effectively, this veto power will probably never need to be used.
 
  • Like
Reactions: Zarathustra

Zangelbert Bingledack

Well-Known Member
Aug 29, 2015
1,485
5,585
One analogy that may or may not help is to think of non-mining nodes (run by economic actors) as disc jockeys and miners as broadcast towers (that can only broadcast on one frequency). As long as everyone wants to play the same program, all is well, but once there is sufficient disagreement on the program to play, the majority of broadcasting power determines program that gets played on that station, say 101.5 FM.

If there is any disagreement among the disc jockeys, it doesn't mean the same program can't be played (same protocol), but it must be played on channel where the majority of broadcast towers are in agreement with the program to be played. The channel would have to be changed if the broadcast tower owners were mostly against the program a group of determined disc jockeys wanted to play, though this is normally a highly unlikely scenario.

I wouldn't quite say nodes are dead weight as Stolfi does, because they are the trustless communication mechanism of the economic majority. If an economic actor has no node, he or she can't know for sure that they have a fully legit copy of the ledger (according to their preferred rules), and can't supply that info to others. Miners should serve as a proxy for the economic majority, though it's possible they won't at times.
 
Last edited:

sgbett

Active Member
Aug 25, 2015
216
786
UK
I think that "economic majority" is largely (if not wholly) the same group as miners.

I accept there is a whole bunch of capital behind exchanges and merchants etc but their value I think does not come from their investment capital, but rather their utility with regards the current value of bitcoin.

As you say Miners are hugely disincentivised to do anything that would destroy this value, and whilst ever consensus bitcoin is valuable, I don't see how any veto could viably take place.

I think the miners being the economic majority is a self-fulfilling.
 

lunar

Well-Known Member
Aug 28, 2015
1,001
4,290
I had been picturing the economic majority as represented by the genuine node count (whatever that is?) Obviously this includes the miners as they will run nodes too, but also represents businesses and individuals who run nodes for the proof of a valid chain. AKA Security.

To that end i'd pictured it more as a 'see saw' - Miners on one side, economic majority on the other and the central pivot point represented by the 'genuine' node count, on each side of the forking preference. Neither side is willing to get off as that would be economically irrational. It's a symbiosis?

doctor doolittle would have called bitcoin a pushmepullyou.

The real question is how do you correctly work out how many genuine nodes there are?
 
Last edited:

sgbett

Active Member
Aug 25, 2015
216
786
UK
Yes I suppose in that way the relationship is symbiotic. The only difference is that its the miners that have an active say in what the blockchain looks like, whereas the other 'big capital' entities can only course/bribe/threaten miners!

I've got a question: If you are mining in a pool, are you also automatically a node, or is it configurable, or are you absolutely not?
 
@sgbett In most situations, the pool operator is running a node, but the miners are not. The pool itself will construct blocks and only send the header data to miners for hashing.

A contrary example would be P2Pool, a peer-to-peer pool with miners running their own full nodes. It is possible to point miners at other P2Pool nodes without running a Bitcoin node of your own, but this is against the purpose of P2Pool.
 
  • Like
Reactions: sgbett

lunar

Well-Known Member
Aug 28, 2015
1,001
4,290
The only difference is that its the miners that have an active say in what the blockchain looks like
Just playing devils advocate. But if you consider the incentives equal between miners (supply) & economic majority (demand) then you can turn this on it's head and say ' the economic majority also has an active say as to what goes into a block, by the code (node) they run. (blockstreams current business model)
At every level I look, the incentives are the same. 51% makes the decisions, becasue a minimum 51% is enough to guide the network in the direction the free market wants it to go. As the whole is always stronger than the divided. This is a (value) communication system afterall

Some disputes take longer to resolve due to the speed of the actors and the complexity of the decision. From a simple orphaned block, to soft forks, hard forks, client forks, even forks in philosophy. So long as 51% of the actors are honestly looking after their own interests the disputes seem destined to resolve for the best interest of the network.

To the question can non mining nodes prevent a HF? My understanding so far says no; but can miners prevent a change in PoW? Fortunately the fear of mutual destruction prevents hostile scenarios of either.