The Bitcoin network is a peer-to-peer (P2P) network of “nodes”.
In previous lessons, you learned what a network does and what a P2P network is.
But what exactly is a Bitcoin node? What does a Bitcoin node do? How does a Bitcoin node work?
A Bitcoin node, or more specifically, a Bitcoin “full node”, is simply a computer that runs the Bitcoin software (known as a “Bitcoin client” or “Bitcoin client software”).
It could be a desktop PC or laptop as long as it has enough hard drive storage to store historical data.
The terms “node and “full node” are often used synonymously, but there’s actually a difference between the two. That’s because there are two types of nodes: “full node” and “light node” (or “lighweight node”). Full nodes form the backbone of the Bitcion network, while light nodes depend on full nodes for functioning. Since light nodes can’t function on their own, I consider them more as a “barnacle” or a “parasite” since they need to attach themselves to a full node. Going forward, unless specified, when I use the word “node”, I mean “full node”.
What does a Bitcoin node do?
A node does three things:
- Follow rules
- Share information
- Keep a copy of confirmed transactions
1. Follow Rules
Each node (a computer running the Bitcoin software) has been programmed to follow a set of rules.
This is called the Bitcoin protocol.
A protocol is a set of predefined rules that dictates how the network operates, and that all network participants must abide by in order for the network to function.
Each Bitcoin node is autonomous. If you have a computer that runs a Bittcoin client, the network doesn’t “tell you what to do”. Instead, the Bitcoin client already knows what to do, and it makes its own decisions based on the Bitcoin protocol (rules).
Because the rules are predefined and coded into the Bitcoin software, this prevents any disagreement on the Bitcoin network.
By following these rules, a node is able to check the transactions it receives and only relay them if everything is legit.
If there are any problems, the transaction isn’t passed on.
A transaction that does not follow the rules will be rejected by the P2P network of computers.
For example, one rule is that a person must own an equal or greater amount of bitcoins than they are trying to send.
If your node receives a transaction where someone has tried to send more bitcoins than they own, the transaction won’t be passed on to other nodes.
If any member of the Bitcoin network attempts to broadcast false information, all nodes on the network will immediately recognize it as invalid and reject it.
Because each and every node can verify all information on the network itself, there is no need to trust other members of the network. This makes Bitcoin a trustless system.
2. Share information
The primary job of a node is to gossip….to share information with other nodes.
This “information” a node shares are transactions.
There are TWO types of transactions that nodes share:
- Fresh transactions: transactions that have recently entered the network.
- Confirmed transactions: transactions that have been “confirmed” and written to a file. These transactions are not shared individually but are first packaged into BLOCKS before they are shared.
A node shares both “fresh” transactions and blocks of “confirmed” transactions.
What’s a block?
Let’s pretend you go to your local coffee shop and after you pay, you get a receipt that signifies a “transaction” with the barista. You really love going to this coffee shop and after multiple visits, you now have a stack of receipts. You bundle them together. That’s a “block“.
So in Bitcoin, transactions that are bundled together is called a “block”.
Don’t worry too much about blocks or the differences between fresh and confirmed transactions right now. It will all become clear in later lessons.
3. Keep a copy of confirmed transactions
As mentioned above, each node also keeps blocks of “confirmed” transactions.
These are held together in a file called the “blockchain“.
What’s a chain?
For the purposes of this lesson, a “chain” just means that when you create a new block (another bundle of transactions), you hook it onto the previous block. And once hooked, it’s permanent. You can’t “unhook” it.
It’s forever attached to that previous block. So using the coffee shop example I mentioned earlier, imagine a chain of multiple bundles of receipts…that’s a “chain of blocks” or a blockchain.
Fresh transactions travel around the network until they are added to the blockchain, which is just a ledger of confirmed transactions.
There is no single blockchain. Every node has its own copy of the blockchain.
All nodes do their best to stay in sync. If some nodes have outdated copies of the blockchain, other nodes who have the most recent copy of the blockchain will share their copy with them.
The cool thing about each node having its own copy of the blockchain is if one (or more) nodes go offline, the Bitcoin network can continue to still operate! The more nodes that are running, the more difficult it is to shut down Bitcoin.
The network is NOT dependent on any single node. There is no central point of failure. In order to actually kill Bitcoin, every single copy of the blockchain must be destroyed.
Every node is independent. Nodes (computers) can leave and rejoin the network at will.
If a node disconnects from the network and returns, the computer will just download the freshest copy of Bitcoin’s blockchain and it becomes a node again.
Nodes are a critical part of the Bitcoin system. Without nodes, there is no Bitcoin network.
And without the Bitcoin network, there is no blockchain since nodes are needed to store copies of the blockchain.
And with no blockchain, there is no Bitcoin system.
Summary
So far, you’ve learned that the Bitcoin network is:
- a leaderless peer-to-peer network of nodes (computers running Bitcoin software),
- in which every node independently checks that all rules are being followed,
- verifies fresh transactions and
- stores a copy of the blockchain (the ledger of confirmed transactions).
Because every node is doing the same work, there is no central point of failure. There is no centralized server.
In order for fresh transactions to be ADDED to the blockchain, they go through a process called “mining” which is done by a special type of node known as “miners“.