So, theoretically speaking, bitcoin nodes are supposed to be independent from each other. Each one is usually owned or managed by an individual or an organization.
But here's the thing: since all the nodes are pretty much anonymous, how can we be sure that’s actually true? How do we know some person isn't running tons of active nodes? AFAIK, nothing really stops someone from spinning up as many nodes as they like.
I mean, you could even run multiple bitcoin nodes on a single machine.
That raises some concerns about whether bitcoin is truly as decentralized as everyone thinks, especially if a few people could dominate control. Just throwing this out there as a non-coder who ran a Start9 node server for a couple of years.
Who really controls the nodes?
19 replies 387 views
seed_vaultFull Member
Posts: 71 · Reputation: 451
#2Jul 7, 2019, 09:38 PM
Damn it, you're on to me. I own all the nodes.
Just kidding. Only 3 at the moment, sometimes 4.
You can't.
Correct.
Sure, but why?
There's nothing stopping you from running your own. Do so, and don't worry about it.
SwiftMinerSenior Member
Posts: 259 · Reputation: 1036
#3Jul 8, 2019, 03:12 AM
Well first off, it they were they would make a pool with it that way they can use their gear to generate enough hash power to make them more profitable than the average solo miner. However point is you don't need to know except you are interested in running a node for privacy related reasons.
If you are gonna be a regular node yeah but as a miner nope since you might not have enough hashrate to share efficiently.
One person running 100 nodes doesn't stop other hundreds of thousands of node runners from running theirs too and that's what decentralization is all about.
A. It is possible the node network is highly decentralized as it is assumed to be.
B. It is also possible that control of the nodes is highly concentrated in the hands of a few large deep-pocketed players.
But if there is no way to know or to verify which of the above is true than the extent of actual decentralization is speculative or unknown at best.
To me just the mere possibility that B could be true, and that there is no way for the system to prevent the possibility of B from happening,
is enough to negate the decentralization argument for bitcoin because it seems weak at best.
Just because one entity can run a bunch of nodes doesn't change anything about bitcoin's decentralization. Because them running nodes doesn't prevent you from running a full node yourself and more importantly it doesn't prevent you from connecting to any peer on the network that you desire.
Two more things to remember is that the network has grown big enough and has spread around the globe that one entity running a lot of nodes would be like a drop in the ocean. Also bitcoin is Proof of Work not Proof of how-many-node-you-run, that "entity" won't have any advantage.
And how do you know, that you are talking to real users here? Maybe there is only theymos, and everyone else is just his alt-account? How can you verify it?
But, even if you assume, that it is really the case, then note that only quality matters. Even if you assume, that there is only one user here, and everything else is artificially generated, then still: if the content has a good quality, and it is worth reading, then you will keep using it anyway, no matter how many people are behind it.
Of course. But that's what Proof of Work is for. Having 90% nodes controlled by a single person won't change anything, if all of them will have just CPU power, and no ASICs. And when it comes to having more than 50% of hashrate, then you stop competing with other people, and you start competing with yourself. And then, it is profitable, to lower the difficulty, by turning off some equipment, to lower your electricity bills.
A good example of that is signet: it is fully centralized, and signet miners could use a lot of ASICs, to mine really strong blocks. But why should they? If they can sign all blocks, then they need only CPUs, to run the whole system. Which also means, that if there is a lot of centralization, then a single party, who is in charge, has a huge incentive to lower the difficulty, and to generate more coins with less power. And by looking at Bitcoin's difficulty, you can be quite sure, that there are many competing parties, because they constantly raise the difficulty, up to some insane levels.
Another good example is testnet, where coins were supposed to be worthless, but because it was decentralized, and mined by real ASICs, combined chainwork is high enough, that all of that power could be used to mine a lot of real BTCs instead.
You can't know for sure. There are few approach you could try, such as checking whether multiple nodes comes from same IP range (such as 111.222.xxx.xxx), but it's never 100% accurate.
And you also can pretend you run thousand nodes, when in fact you only run single node software on single computer. See https://www.reddit.com/r/bitcoinxt/comments/3iao3i/how_to_run_3000_completely_legit_full_nodes_aka/. You could even buy bunch of proxy IP address to make it more convincing.
What you describe as "control" doesn't depend on quantitative measures on the number of nodes.
Nodes do not vote in Bitcoin. Not even miners really "vote" (exception: softforks, but they don't have absolute power, see below). It's also not really about having deep pockets, even if those with deep pockets do have some advantage in the power structure if they can freely decide what to do with their their coins, as they can sell them on forks they don't accept.
The power structure of Bitcoin mainly depends on those who accept Bitcoin and those who own Bitcoin and could sell them.
The most important mechanism ist: If miners implement any protocol change that forks the chain, Bitcoin "accepters" and "owners" can reject these changes:
- "Accepters" can reject Bitcoin payments and refuse to buy Bitcoins of the protocol-forking chain, lowering the demand. There will be thus less buy orders on the exchanges.
- "Owners" can sell the Bitcoins of the protocol-forking chain, increasing the sell supply. There will thus be more sell orders on the exchanges.
So in the case of an unpopular change driven by a "miner cartel", the "original" chain thus becomes the "economically accepted chain", while a "miner cartel fork" chain's price drops drastically due to the supply/demand imbalance.
That means: if there's an unpopular change, even if 90% of the miners support it and e.g. a softfork "goes through", a large majority of "Accepters" and "Owners" can lower the price of the coin so drastically that the "minority" chain will eventually win. And if the "minority chain" is the "economically accepted" one, it becomes profitable for the miners to mine that chain.
Only in an extremely centralized scenario (let's say: 99,9% of the nodes are run by "big malicious pockets") there could be some censorship / centralization issues as the nodes could try to reject transactions. But even 0,1% of the nodes would probably be enough to propagate the "censored" transactions to miners.
Of course an unpopular hard fork would simply die out due to lack of activity from end users.
But if the nodes don't vote or control bitcoin as you said, than what does? So the end users are "controlling" bitcoin by choosing to use it or not?
Then you can say that about anything. But you're not really controlling bitcoin as the end user, and I wouldn't use the word control to describe it.
You're simply choosing to use it or not as an individual user. As an end user or customer you don't control JP Morgan Chase because you can
choose to have a checking account there.
Likewise if bitcoin is "controlled" by whether its end users (ie: bitcoin buyers and sellers) choose to keep using it or not, than it is no more decentralized
than any bank or other centralized entity. If the nodes don't have any real control of bitcoin as you said than that leaves the miners and the developers.
If the miners and/or developers are the only ones in control than bitcoin isn't very decentralized at all, as the big corporate mining firms and devs represent concentrated power in the hands of a few powerful players.
There are many groups: developers, traders, miners, regular users, and so on. In general, Bitcoin is ruled by economic majority, and it is not ruled by miners.
Exactly. And many times, people sold coins they didn't want to use, and bought more coins they want with them. Which is why many attacks are not that simple, and it is not about just forking the chain. Now, many altcoiners would happily exchange 1 ALT to 1 BTC with 1:1 ratio, but because they broke consensus rules, they have their own chains, which are worth much less than that.
Why not? You decide about the used Script, behind your coins. So, you pick the rules, which are needed to move these coins somewhere else. And you can pick many things: coins can be locked not only on public keys or hashes, but also on Proof of Work, some timestamp, or many other things.
Bitcoin is different than just that, because you don't have to use the official client. You can use whatever you want, as long as you stay compatible with the protocol.
Which is also how many changes are made. Developers just build things from the source code, make some changes, and use a new version by themselves. And when it works fine, then it is released to a wider audience.
Now, try the same thing with JP Morgan Chase. Try to propose some changes. Try to explore, what is the exact format, used for making transactions. Or try to use some alternative implementation, where you wouldn't use their website, but you would have your own code, running all of that. You will quickly find out, that you cannot have programmable money there.
Not to mention about mining: try to make new shares. You won't be able to. In Bitcoin, you can use Proof of Work to secure contracts, and you can learn, how exactly mining works. Here, you won't get any information, how shares are created, and you won't have any "JP Morgan Chase test network" to experiment with all of that.
You are trying to find a single group, who is in charge. But it is simply not the case.
If you want to see that setup, then try signet. It is different from mainnet, and you can quickly see, that it is fully controlled by developers, who can sign all new blocks. But in the main network, it is not the case.
In the mainnet, developers can make some changes, and users can refuse to upgrade. Or miners can mine very strong blocks, producing coins out of thin air, which users would reject. By comparing signet with mainnet, you can easily see the difference.
Your doubt should be satisfied by the simple fact that there is no power in the world capable of obtaining 51% of the network and being controlled by a single person. And if that were the case, it would be an absurd and unprofitable investment. With that money, other things could be explored that would generate more money.
Here I invoke Nash's theory: it would be more profitable to generate legitimate profits. Besides, it's complete paranoia to even consider it, because it wouldn't make any difference in terms of decentralization. If they modify the network or make a change to the transactions, it will be discovered sooner or later because those nodes would only be deceiving themselves, which would kill the currency. Therefore, it wouldn't be worth the effort; it would be financial suicide.
paul.stakeHero Member
Posts: 651 · Reputation: 3798
#12Jul 13, 2019, 03:59 AM
For starters, the number of nodes is not a factor for decentralization.
What would describe a centralized cryptocurrency? In my opinion, it is (1) the easiness of changing the consensus rules and (2) the ability of an attacker to take over the network. All shitcoins usually have both properties. You cannot realistically take over the Bitcoin network's hashrate, and it is nearly impossible to bring any protocol change, even if there's tangible consensus. So I'd argue bitcoin is the most decentralized.
The essential thing to understand is that nodes do have some control relation over Bitcoin, because they "are" Bitcoin ("the Bitcoin network"). But they do not "vote", at least not by majority.
All that's necessary for decentralization is a single (!) node which is accessible and can connect to miners, which disagrees with a censoring cartel, and thus enforces the protocol by transmitting all protocol-obeying transactions to miners even if they are censored by other nodes. And this node can be spawned by anyone, everywhere in the world. It has not even to be connected 24/7, only sometimes. And it can download the blocks of the censoring cartel even, and then enforce its own rules.
The essence to understand the difference is that a Bitcoin user is not only a Bitcoin "customer", but also a "shareholder". Well, a Bitcoin "hodler" is a shareholder, while a Bitcoin "accepter" can be compared with a potential buyer of company shares.[1]
The shareholders in Bitcoin have no formal voting rights but they have "informal voting" rights. These are:
- buy and sell Bitcoin, also as a reaction to the decisions of the Bitcoin DAO (the Bitcoin DAO comprises developers, miners, other "shareholders" ... it's a very complex and informal DAO)
- in the case of a fork, chose the fork and discard/sell all Bitcoins on any competing fork
Yes, I know Bitcoin is a bit challenging to grasp with traditional economic metaphors. Many of these elements took me years to understand. I originally thought for example that developers, miners and economic users/nodes (users or "shareholders") had the same amount of power. I'm now firmly of the conviction that users/shareholders are clearly the "king". It's like a relation between management (devs/miners) and shareholders who can fire the management at any time if they misbehave.[2]
I have already written that miners can't control Bitcoin, because they need the approval of end users/"shareholders". And developers depend on the approval of even more entities: end users/shareholders and miners.
This is the beauty of Bitcoin's construction, and that's why I will always be optimistic even if Bitcoin falls to 1000$, as long as the fundamentals aren't broken
[1] One could argument here that the customers indeed have some power at a traditional company like a bank. There are some cases of successful customer boycotts which were able to influence the decisions of a company. And if a company has no customers anymore it will go bankrupt. However, the Bitcoin "user" relation is much more direct than that.
[2] "Firing" is an oversimplification of course. The management can still continue their work in the case of a hard fork - on the losing chain. But in Bitcoin, the users would then select an alternative management (consisting of the miners/devs of the winning fork) and this new management would have the "true power".
Damn, this is how I would picture something to have a better understanding so thanks for the comparison, and now I might have a different perspective about how the control works in Bitcoin. Have to read a couple more times to get it completely, but I got most of it.
@Op, it doesn't matter who controls how many nodes, if you run your own node, then you verify all the transactions and reject invalid blocks.
But that is what gives bitcoin devs a great deal of power since they control the code. In that sense bitcoin isn't much different from Microsoft or Apple.
Like Apple and MS, the bitcoin core devs can make changes to the code anytime they want, with or without consensus.
The difference is with bitcoin the code is open source and can be seen by anyone. But only the devs have the ability to make changes.
As an end-user you can openly make proposals or suggestions, but the same can be said for Apple and Microsoft. MS and Apple customers are
free to make any suggestions or proposals they want, but like bitcoin devs only Apple and Microsoft devs have the power to implement them.
The problem to me is bitcoin developers are highly concentrated in one country (the US), which erodes its decentralization narrative.
We do know sources of bitcoin dev funding include Coinbase, crypto VCs and other corporate interests. So we shouldn't be surprised when
controversial changes are made to the bitcoin code when you have someone like Coinbase, who are big proponents of altcoins and memecoins
pulling the strings. And someone like Gloria Zhao in a position of power within the development team who openly states bitcoin
should be more like ethereum.
Trump keeps saying how he wants all the bitcoin mining and development to take place in the US, which further weakens its narrative of being a neutral asset.
But bitcoin mining and development was already highly concentrated in the US even before he said it. For example 80% of the hashrate comes from the US.
I can see why countries like China would wish to ban or restrict bitcoin if they have reason to believe that it could be captured or controlled by their rivals.
But running your own node doesn't prevent other nodes from approving transactions that yours would reject.
(ie: Knots and older versions of Core rejects spam transactions that Core 30 allows to go through)
Wrong. You can use your own version, with your own changes, and you don't have to tell anyone about it. In the same way, Linus Torvalds does not control your ability to use Linux: you can build it from the source code, make some changes, and use it. As long as it is compatible, nobody would even notice, that you are running a modified version.
In general, you don't know, what kind of code is running on someone else's computer. You can connect to some node, and read "/Satoshi:30.2.0/". Does it mean, that it is running Bitcoin Core with version 30.2? Maybe. Or maybe not. You never know for sure, you can only assume. And in the same way, you can assume, that someone is using Firefox on Windows, while it could be a Tor Browser on Linux instead, or even something completely different than that.
If you want to block some currently valid transaction on the protocol level, then you need to reach consensus. But then, if you would succeed, then what makes you think, that in the future, someone else wouldn't want to use exactly the same steps, to block your transaction instead?
Correct. And that's a feature, not a bug: nobody, not even a big cartel, should be able to prevent others to send transactions that are valid by consensus.
Policy (e.g. the so-called "spam-filters" on Knots) are mainly there for the nodes to protect themselves from DDoS attacks.
And I think it's also legit to use it to subtly signal "what nodes want". So if any user wants to use it to signal they disapprove OP_RETURN transactions of more than a certain size, then this is completely okay.
But that can never be a voting system by majority. A voting system by majority is one of the unsolvable problems of P2P networks. And that's also why Core devs said always that policy based "filters don't work", and they are completely correct.
If we had a reliable voting system resistant to sybil attacks, we wouldn't need the Proof of Work / mining system. We could just let nodes vote. But as this is not possible reliably (Byzantine Generals Problem) then we can also not use it to vote for anything.
The only reliable vote is by miners ("percentage of blocks signalling for anything in a difficulty period"), e.g. for softforks or possibly other things like hashrate escrows (Drivechains). But even the miner vote can be overruled by the economic nodes, as I described above, in the case it leads to a real chain fork. Because nobody is forced to accept any fork, not even a softfork.
So the system is extremely convoluted is what you are saying. No one controls anything on bitcoin and anything goes.
So it would be impossible, for example, to prevent spam or any random offensive images including illegal porn (both adult and child), malware, NFTs, memecoins,
political content, etc. making it onto the network. As you said no one controls anything and even an anti-spam supermajority can always be overruled by a minority.
You could run a node that rejects spam transactions but if there are any other nodes that accepts and validates the offensive content then it will be allowed to go through.
There are no rules, everything is just total chaos.
Which is completely inline with the pro-spam ideology of the Core development team: Bitcoin is no longer a monetary asset, it can be whatever anyone wants it to be.
No. Remember what I wrote before: The end users (or shareholders/accepters, i.e. those who hold and accept Bitcoin) are the kings! They can overrule everything. That's why I mentioned this in my first answer to this thread. It is super easy, not convoluted!
Thus, if you want to change anything in the Bitcoin network or protocol, be it some rules against "spam" or whatever: what you have to do is actually to convince the end users that your change is worthy to be supported.
This means: change the consensus rules, preferrably via a softfork.
Policy (Luke's filters, "standardness") doesn't change anything, as it can be overruled by one single node or miner, as you correctly understood:
It is simply not possible in a P2P network to do such a "filtering" by policy, i.e. by hoping that "enough nodes could run the filter, and then something will not go through". Thats delusional. It doesn't work. P2P doesn't work like that. Fin.
Now how to do it?
While the so called "BIP 110" is not the way to go [1] in my opinion, the basic idea is not wrong: to propose a "stricter" Bitcoin protocol, which at least makes "spam" more expensive, and then try to convince the end users/shareholders/accepters.
This means: Explain the reasons for the change carefully. Tweak your proposal until there's no confiscation or other harmful side effects possible. That probably will take months, if not years. Then propose a BIP.
But I guess pointing other users or developers as "pro-spam", "bad actors" or so doesn't make this task easier Luke's and Ocean's aggressive behaviour have probably ruined the chance for a reasonable anti-spam strategy for a long time.
I'm not against a stricter protocol but the proposal needs very careful balancing. And confiscations are an absolute no-go. "BIP-110" has failed at that.
Fortunately, there is no spam attack in sight. (apart from the notorious Runes which don't want to go away) Even I would have expected more.
[1] An interesting "way to go" would be perhaps to enforce a consensus-based dust limit on all but the last output of a transaction. That would make the most hamful "spam" transactions (notably bmuch more expensive. This would never confiscate coins. And once this is in place, you could also impose a consensus OP_RETURN limit again, because the alternatives are not viable anymore. Spammers could still spam, but it would be at least 5-10 times more expensive.
P.S. I think I'm too patient ...
Although you are getting some of your data wrong (like devs fully controlling the code, or 80% of hashrate being in the US) but this part is not wrong. I personally call it "centralization creeping in" (see what I said about the chink in the armor 2 years ago). We cannot have a perfectly decentralized network simply because we are not living in a perfect world. That's how things work in reality, some traces of centralization always keeps creeping in. As long as we fight it and keep it to a minimum, we can call the system "decentralized".
Related topics
- What's up with nodes keeping high relay fees? 16
- Bitcoin Core displaying coins (UTXOs) in a new tab 13
- Are you in favor of BIP-110? Let's get a Bitcoin poll going. 0
- Erlay seems to have some issues here’s a better proposal for a bitcoin protocol without invites 3
- New Optional Hourglass Implementation is Live 3
- Ways to earn some sats by contributing to bitcoin core development 5