The Bitcoin blockchain network is composed of nodes and nodes are basically computers connected to the internet, running the Bitcoin or other blockchain software. The Bitcoin network is a peer-to-peer network: all nodes are homogeneous. Nodes receive transactions and blocks from other nodes and relay these transactions and blocks to other nodes. Each node (not all common nodes) keeps a full copy of the blockchain. Nodes are important in order to keep the blockchain functioning and can’t be avoided. There are basically three types of nodes called simply nodes, Full nodes, and master nodes.
Type of Nodes
Node: A computer that operates on the blockchain network which is able to send and receive transactions (in bitcoin wallet)
Full node: A client that operates on the network and maintains a full copy of the blockchain. Sends and receives TX as well, updates the blockchain with block entries and confirmations from miners.
Master nodes: A client that does all of the above and also enables/performs additional functions. Gets paid a portion of the block reward. In other words, Master nodes are dedicated servers on the internet that enable instant transactions and perform the trustless anonymization of users’ funds. Master nodes require 1,000 Bitcoin, a secured server, a full-time Internet connection, and periodic updates. In return, they receive 45% of the block reward, for instance on Dash platform, which at current rates and a number of nodes amounts to 1.8 Dash every 6-7 days. When a block is mined, 45% reward goes to the miner, 45% goes to the master nodes, and 10% is reserved for the budget system.
Master nodes enable decentralized governance and budgeting. In summary, aside from a full copy of the blockchain, a node also keeps additional data structures, such as the unspent transaction outputs cache or the unconfirmed transactions’ memory pool, so that it can quickly validate new received transactions and mined blocks. If the received transaction or block is valid, the Master node updates its data structures and relays it to the connected nodes. It is important to note that a master node does not need to trust other nodes because it validates independently all the information it receives from them.
When a miner finds a new block, it broadcasts it to the network. All receiving master nodes first check the validity of the block, i.e. that it solves the partial hash inversion problem with the required difficulty. They then update their internal data structures to reflect the new information contained in the block:
- Update the unspent transaction outputs cache (UTXO)
- Update the unconfirmed transactions’ memory pool. This involves going through the list of transactions and dropping those that are in conflict with (spend the same outputs) as a transaction in the new mined block
Master nodes maintain a number of connections to other nodes in the network. Some master nodes will like to keep as many connections open to other full nodes/nodes as the available resources (CPU, network bandwidth) allow, usually in the upper hundredths. For instance, a master node might want to keep connections to many other nodes, as geographically distributed as possible, to quickly detect and act upon double-spending attempts. Similarly, a mining node might want to have as many connections open as possible, so that it receives prompt notice of mined blocks. A faster reception of new mined blocks minimizes the time wasted trying to mine a block that will become orphan. For other nodes, having up-to-the-second information is not so important, and so they usually connect to only a handful of nodes.
Master nodes can provide a possible solution to verify user identity in DApps; that is, master nodes can democratically select a node to verify user identity. The person or business behind this node can manually verify user documents. A part of this reward can also go to this node. If the node doesn’t provide good service, then the master node can vote for a different node. This can be a fine solution to the decentralized identity issue.