Transactional capacity and the bitcoin network
This blog post will look at the bitcoin network, differentiate various types of network participants, and show how messages are exchanged to achieve consensus. We will also consider the bitcoin communications protocol and analyze multiple types of messages.
The bitcoin network is the backbone of the bitcoin system. It connects the individual network participants and allows them to relay transactions and blocks. It is therefore crucial to the system’s transactional capacity.
Bitcoin is a peer-to-peer network. In contrast to centralized networks, no participant has a privileged role in the bitcoin network. The participants usually have a large number of connections, and new connections can be established between any two participants. Every participant can hold a local copy of the bitcoin blockchain, verify the legitimacy of transactions, and send these to other network participants. This permits communication and data storage to work without a central party.
The decentralized architecture makes peer-to-peer networks particularly resistant to attacks and failures. While in a centralized network, the failure of a central node can have fatal consequences and can sometimes lead to data loss or a complete breakdown of communication, in a peer-to-peer network, every participant can be replaced. Other network participants usually easily handle failures, locally lost data is restored, and communication is maintained on alternative connection paths. In this respect, decentralized systems are not dependent on individual nodes. Their structure prevents an individual participant from occupying a system-relevant position and thus makes them more robust.
Decentralization also provides a network with a specific immunity from a regulatory perspective. It is challenging to regulate the whole network due to the absence of central points of contact. Whenever a node is closed, one can easily create a new one.
Network nodes and functionality
Verification function: the verification function covers all the necessary activities so that network participants can participate in the network on their own and verify all transactions independently. In particular, participants verify transaction messages, store these messages locally, and forward them to other network participants. The verification function requires a participant to maintain a copy of the bitcoin blockchain and verify the validity of all the chain blocks. The verification function also facilitates the exchange of blocks. Network nodes that have a verification function are known as full nodes.
Wallet function: a wallet provides safe storage for private keys and monitors and manages a node’s personal bitcoin balance. Wallets are developed for end-users and usually offer a graphical user interface that enables bitcoin units to be received and sent easily. In addition, many wallets offer optional security mechanisms to improve the protection of private keys.
Mining function: nodes that have a mining function participate actively in generating new blocks and contribute to the extension of the bitcoin blockchain.
Connection setup and topology
After the successful installation of a client, the software will connect to other nodes. The connection is established via the common network protocols (TCP/IP) and, by default, via port 8333. The node that wants to establish another node’s connection protocol (IP) address. The message contains information about the node itself and the local copy of the bitcoin ledger, enabling the connection to be established. Optionally, the address list of the new peer can be queried so that the node can extend its known network with additional connections.
The number of full nodes in no way reflects the number of bitcoin users. The increase in the size of the bitcoin blockchain and the increase in the number of transactions has led to a growing list of requirements regarding full node hardware and internet specifications. This is why many users decide against operating a full node themselves and instead rely on other participants who operate a full node.
Centralized subnetworks display the highest form of dependency. The participants are only indirectly connected to the bitcoin network. They rely exclusively on the information and communications channel of a specific node.
Clients connected to a centralized subnetwork can exercise the wallet function without the need for direct access to the bitcoin network. The central node is used as a proxy server, which can be consulted periodically to check the bitcoin balances of users’ addresses. In addition, transaction messages are transmitted to the central node and thus indirectly relayed to the bitcoin network.
Simplified payment verification node
Spv clients facilitate the use of the wallet function without it being necessary to store a full copy of the bitcoin blockchain locally. Unlike indirect network participants tied to a central node, SPV nodes possess direct access to the bitcoin network. The required data are sourced by various nodes and can be partially verified. The diversity of data sources and the possibility of partially verifying the received data give the SPV node greater security and independence than a connection to a centralized subnetwork.
Bitcoin mining is often performed jointly by large groups, referred to as mining pools. Classic solo mining requires the operation of a full node. Pool mining, however, does not. Usually only the pool operator holds a copy of the bitcoin blockchain and distributes the required information to the pool members in the same way as a centralized subnetwork. Pool mining is, therefore, a significant contributor to the decline in the number of full nodes and fuels concern about centralization encroaching on the bitcoin system.
Bitcoin communication protocol
The purpose of the bitcoin network is to allow for the exchange of information. For this information to be processed by various clients, communication must take place in a standardized form. No client can be forced to comply with these standards. The communication protocol merely describes the formatting of the information. If a node wants to communicate with other nodes, it is therefore in its best interest to adhere to this format. The exchange of blocks and transactions is primarily relevant for the bitcoin network. Messages that do not directly serve the exchange of this type of information play a secondary role.
The exchange of blocks
When the client software is first started, it spends several hours downloading, verifying, and indexing all the blocks of the bitcoin blockchain. The first block, the genesis block, is integrated into the client software on delivery. All subsequent blocks must be procured from the other nodes and verified by the client software. The volume of data contained in the bitcoin blockchain was approximately 205 gigabytes (GB) at the end of 2019.
hope you had a fantastic reading be sure to leave your feedback.