Cryptocurrencies have been hailed as one of the greatest technological revolutions of recent years. Bitcoin is the pioneer and best-known of them, but there are hundreds more – each with different characteristics, objectives and technologies behind them to make them work.
Readers might think that electronic money already existed long before cryptocurrencies, and they would be right. Bank transfers and credit cards were already using bit chains to transfer money without moving the cash physically. The true revolution is eliminating the need for a certified agent, such as a bank, government or other institution.
Most cryptocurrencies are based on Blockchain – a chain of blocks linked together using cryptographic methods. This concept is flourishing with a variety of applications not only in cryptocurrencies, but in numerous fields, and all thanks to the fact that it guarantees that data in the blocks are not tampered with. In order to change a single bit, an attacker must change all the consecutive blocks.
A further consideration is the use of a decentralized or peer-to-peer (P2P) network. To make this easier to explain, this article will focus on Bitcoin. Each node has a copy of the blockchain, which it synchronizes with newly emerging valid blocks (block mining) transmitted by connected nodes.
Each node has its own blockchain (about 223 GB if stored in full) and all nodes are on the same level in the network. The blockchain used by the largest number of nodes (one-cpu-one-vote system) is the one the network accepts as “valid”. For an attacker to manipulate a blockchain transaction, it needs to control more than 50 percent of the network’s computer power (the “51 %” attack) – which is highly improbable.
However, each node only connects to a few nodes simultaneously (up to 8 by default in Bitcoin Core, the Bitcoin official software). The first operation a new node in the network performs is to search for these peers. If it already knows a peer, it will ask that peer for any new addresses it knows. If, instead, it is totally new to the network, it will use the “DNS seed” nodes maintained by the community. These are maintained for the sole purpose of storing and reporting the network’s currently active nodes so other nodes can connect to them.
The economic nature of Bitcoin and its increase in popularity of recent years have generated a great business behind this peer-to-peer network. While this has allowed the network to develop and expand, it has also brought it to the attention of potential attackers. The connected nodes are very different and can be anything from a cryptocurrency enthusiast’s personal computer to huge “farms” or pools where thousands of computers work timelessly mining blocks.
Online services like https://bitnodes.earn.com/ constantly analyze the network to obtain different metrics (including, among others, the total number of nodes, each node’s geographical location, current main pools, and discovered blocks). The Bitcoin network is maintained by 9500 to 10000 active nodes, most of which are in the United States, Germany and France.
It is worth explaining at this point that these 9500 nodes do not represent the total number of Bitcoin users. This number refers to the nodes that maintain the network and allow it to continue working. Anyone can join the network, but you do not have to join to transfer and receive Bitcoins.
A full network analysis is not easy. The Bitcoin network protocol itself implements algorithms that protect the Bitcoin topology from interference. Knowing the exact connections between nodes can facilitate network attacks. Large users such as the aforementioned “pools” try to hide their access points to avoid attacks, with some nodes even using the well-known TOR network to remain as anonymous as possible.