Now we will discuss the consensus without identity in the block chain. In the discussion section this time, we will look at the technical details of the Bitcoin consensus algorithm. Keep in mind that the Bitcoin node does not have a long-term identity. And it will remain like that.
One reason for this lack of identity is because the Bitcoin system uses peer-to-peer networks . So there is no central authority to determine the identity of its users. There is also no central authority for all nodes in the Bitcoin network.
This kind of condition is likened to having the potential of a Sybil attack . This Sybil Attack acts like a copy of a node. But the node is potentially damaging, and it appears as though there are many different nodes. When in fact all nodes with “pseudo” are controlled by the same person. While on the other hand the formation of a pseudonym as an identity is actually also the main objective of Bitcoin.
Although it is possible to provide an identity for the node but it will still not be used by Bitcoin. Bitcoin does not guarantee full anonymity. Especially in relation to transactions carried out in it. There are properties that cannot force users to reveal their real identities. Like the name of an identity or IP address connected to the Bitcoin system. That is an important characteristic of the design of the Bitcoin system.
Let’s move on The assumption is that if a node already has an identity, the design of the bitcoin system can be easier. First the identity allows to be included in the protocol. User identities such as numeric IDs must pass a number of steps. But if the node is without identity, then there needs to be a special set of instructions that can limit it. What is clear is that the node must have an identity. The question is, what kind of identity do nodes use in bitcoin? You will find out yourself later.
After the identity of the node can be identified, it is also easy to create a new identity in Bitcoin. Let’s just say we assume that there will be a number of potentially dangerous nodes. Nodes can indeed create a new identity again. That is why the potential for Sybil Attack could occur. Nodes that do not have this identity will become a barrier to the Bitcoin consensus protocol.
In order to compensate for that, it can be overcome with a simple assumption. For example, how about randomly selecting nodes in the system? We can take an example in a lottery or lottery. Unfortunately, this method becomes difficult to trace, provide identity and verify identity.
There is an alternative that can be done. The trick is giving them some kind of token or ticket. Then the token or ticket can be chosen at random ID. Until then call the owner of the ID.
This assumption is based on a random number of nodes and is called an implicit consensus . There are several rounds in the protocol. Each is different in a block chain. At each round, a node can be randomly selected. Furthermore, these nodes can propose the next block into the block chain (blockchain).
But the drawback is that there is no specific algorithm so that the node can choose a new block. Even though the node chosen unilaterally, it can propose what blocks will be included in the next block chain. What if the selected node is a potentially dangerous or malicious node?
This implicit consensus will handle this. Keep in mind that each block has a hash value for every block that has been entered. This technical mechanism is intended so that the node can send a signal that a block has been inserted into the block chain.
Simple Bitcoin consensus algorithm
Simply put, the algorithm will look like the one below. To be able to assume the ability to select nodes randomly, and be resistant to Sybil attacks.
- New transactions are broadcast to all nodes
- Each node collects new transactions into blocks
- In each round, the node will randomly get its broadcast block
- Other nodes accept blocks – only if all transactions in them are valid (used, and signed)
- Nodes express block acceptance by entering a hash in the next block.
Overcoming the Bitcoin Theft Potential
How will this algorithm work?
To be able to see it, we take an example. Suppose there is an attacker named Nita who wants to frustrate the process of this algorithm. Can Nita steal steals from other users? The answer is no. Although Nita can propose the next block, Nita cannot steal Bitcoin from other users. Because Nita must make a transaction that is completely valid for the Bitcoin.
In addition, Nita also has to forge or fake the signature of the owner of Bitcoin. While that cannot be done by Nita. So as long as the cryptography underlying this system is solid enough, Nita cannot steal Bitcoin from other users.
Overcoming Potential Denial of Service Attack
Now we try whether the algorithm can work if there are other forms of attack. For example, suppose Nita doesn’t like another user named Rudi. Then Nita decided not to include transactions from Rudi’s Bitcoin address. So in each of the blocks proposed by Nita, Rudi’s transaction must not be included either. An example of this condition means that Nita is attempting a Denial of Service Attack on Rudi.
When Nita attacked Rudi, what Nita did was nothing but an attempt to reorder the transaction. This kind of thing is nothing more than a small disturbance. Why is that? If Rudi’s transaction is not included in the next Nita block, Nita will only continue to wait until he gets a chance that the block is included in the block chain. So that Nita’s attack on Rudi could only be said to be a good attack. In fact, Nita must be quite difficult to put the proposed block on the blockchain.