There’s been a lot of talk about mining equipment and the overall hashrate, but there is no talk about how many nodes are there and what technology they are using. Can you please explain a little bit about the role that nodes play in the protocol?
A lot of people focus on mining. It’s actually a problem that people focus on mining because mining is an enabling technology in Bitcoin, but it is by no means the only technology in Bitcoin. It is not even the most interesting technology in Bitcoin. It’s part of a constellation of technologies that work together.
Do you have a working understanding of the purpose, mechanics, and applications of the border gateway protocol – BGP? Did you have any idea that without that the internet doesn’t work? Did you have any idea that in fact, that protocol GDP is responsible for getting your packets from here to there everywhere in the world? It is the most essential technology underlying the world’s routing system, and you use BGP every single day, it’s just that you didn’t know you were using it.
It’s almost like turning on your water and being oblivious to the process of filtration and chlorination that ensures that you don’t get typhoid from it. That is the same with BGP, and it’s the same with mining.
Mining is a technology that miners need to know about, like BGP is a technology that service providers and routing experts need to know about, that the average user does not.
On the other hand, nodes are important. Nodes are like servers on the internet but they have an even more important role.
What is a node?
A node is simply a computer that is participating in the global Bitcoin network by speaking a protocol, that for further confusion is called Bitcoin. The Bitcoin protocol, the peer-to-peer network protocol to be more specific, is a protocol that allows these nodes on the network to communicate with each other and what they do is they propagate transactions and blocks everywhere.
You can run one of these. In fact you should!
There are about 13,000 nodes that we know of, that advertise their presence by listening on specific ports in a way that can be discovered. There’s probably five or six times as many that do not advertise their services, that do not listen on open ports, or even that are hidden behind various protocols like “Tor” https://www.torproject.org/ and things like that, and listen on hidden ports.
In general, the nods that are participating in Bitcoin served the most important purpose. Every one of them acts as an authoritative verifier of every single transaction and block. That type of node is called more precisely a full node, or even more precisely a fully validating node.
A fully validating node may also keep a full copy of the blockchain, the entire ledger on its hard drive. It doesn’t have to, it can be a fully validating nodes with a reduced copy of the blockchain.
It communicates by random process of connection with a set of peers that it chooses from the network, and it doesn’t trust these peers. It monitors these peers, and every time it receives a transaction or a block from them, the other peer says: “Here’s a transaction that is happening on the Bitcoin network” and your node goes “so you say, let’s see…” and takes it, and independently verifies every aspect of that transaction.
It authoritatively reconciles it with its own copy of the ledger, to determine whether the funds have been double spent. And if you send that node a transaction that is incorrect, it will not only reject the transaction, it will stop talking to you. It will go “Oh no-no, you lied. Not talking to you for 24 hours, now go stand in the corner.”
A node that tries to propagate incorrect information is very quickly isolated, because all of the nodes that it attempts to communicate with will ban it and disconnect from it.
There are levels of offense. There are some things that are so egregious that they’ll get you permanently banned, and there are some things that will only get you dropped for an hour or so, and it varies.
The important thing is that nodes don’t trust each other. They authoritatively and fully validate every transaction.
Why would you run a node?
Because you want to be in control of your money.
Because the whole purpose of Bitcoin is that you don’t trust anyone else to tell you what the truth is. You trust only in the execution of the consensus rules and the independent verification that they do.
I run a fully validating node. In fact I run several of them and I cross-check them. Every service provider, every exchange, every wallet company, every company that interacts with Bitcoin, every individual that wants this same level of authority and autonomy, runs a fully validating node.
Nodes decide what the rules are, not miners!
Miners get the transactions that nodes decided were valid, and they give back blocks at the pleasure of the nodes that will decide if they are worthy of being propagated because they are valid. The validity of the consensus rules is not determined by miners. They sequence transactions into a block. The validity of the consensus rules is determined by nodes because they will not propagate lies.
That’s the importance of a node. If you can run 350 gigabytes of disk space, a couple of gigabytes of monthly bandwidth, four gigabytes of RAM, dual or four core CPU, plug it into your DSL, turn it on, be part of the revolution and money.
And more importantly, at that point in time, you no longer need to ask anyone: “Did a transaction happened? Is it confirmed? Is it valid?”
You now have an authoritative record of your own that answers that question, without appeal to any authority. That is really what is running Bitcoin.