The Bitcoin network does not have a central authority that decides which transactions are valid and which are not. There is nobody who issues coins, and nobody who can take them back. Nobody knows how to turn Bitcoin off. Instead, Bitcoin is made up of computers called nodes, which can be as small as a Raspberry Pi.
What is a Bitcoin node?
These nodes are maintained by individuals and organizations, and some may run multiple nodes. A node has various functions, some more essential than others. The node can be configured to have some of these functions turned off.
A Bitcoin node may or may not be used for mining Bitcoin. In the process of mining, a node will require additional special-purpose hardware that helps compute repetitive mathematical challenges in a kind of global lottery. This helps secure the network from attackers, and miners are rewarded with newly issued Bitcoin and transaction fees.
There are about 100,000 Bitcoin nodes running and making up the network, though exact numbers are hard to come by. This is because a node is just a piece of software that anybody can download, modify and run. There is no authority that registers or certifies nodes, or even defines what a node is.
Functions of a Bitcoin node
When launching a Bitcoin node, it will first seek to connect to other Bitcoin nodes and download historical data, going all the way back to the very first Bitcoin block, the Genesis Block. More specifically, a newly set up node will request to download every single Bitcoin block in existence, currently over 580,000. This is about 220GB worth of data and can take a considerable amount of time, depending on the internet connection.
Verification of the rules
A Bitcoin node will then calculate through this historical pile of data and make sure that all the rules are in place. What these rules might be exactly can differ from version to version, but in general the Bitcoin rule set has remained constant over time. The rules are difficult to change on purpose: If you change the rules you may find yourself suddenly unable to communicate with the network. If you produce a block according to a new rule set, you might see it rejected by everyone else.
For those owning Bitcoin, it is often of high importance to know what they are holding. Which rules govern the network? Are these rules being followed? How many coins are there, and how many can be created by whom?
Information about incoming payments
For those accepting Bitcoin as payment, it is important to know whether a payment has been made or not, and whether the amount is sufficient. Without gathering this information themselves, they must trust a third party, such as a website. This information might become unavailable at any moment or, more problematic, might be wrong.
The only way to find out with certainty whether a payment has been made or not is to verify it with a Bitcoin node.
Information about historical events
A Bitcoin node, by default, will store all historical Bitcoin data. This is very useful for the network as a whole, as every new participant will be able to connect to your node and receive a copy of this data to validate the historical transactions, without which the current state cannot be determined. This, however, does cost bandwidth, which might be scarce or expensive. In these situations the operator may choose to limit how much of these historical records to share. As the records also consume space on the computer, somebody may choose to configure their node to automatically delete older transactions and blocks that are of no concern to the operator.
It is also possible to operate a Bitcoin node anonymously through the Tor network or serve exclusively other nodes only reachable through Tor. This can be done to further hide Bitcoin activity from ISPs or authorities, or also to defy DDoS attacks by hiding. In cases where internet reception is interrupted or not available, it is possible to receive the data from a satellite feed and share it with others via a Wi-Fi mesh network.
Run your own node
For a cryptocurrency to be decentralized, it is important that everyone is able to always run a node without the need to be authorized or licensed. This means the software for running a node must be free and open source, but also that the data necessary to verify the entire Blockchain cannot be too large or too much of a burden computationally. It must be possible to run a node anonymously and without censorship.
If it ever becomes too expensive and burdensome to run a node, the entities running a node might be able to collude to change the rules, delete historical data or change the rule set, even without us knowing.