Lisk Research – A quick Overview of LIP 4
This is the second article related to Lisk Research and LIPs. Today we will briefly present the LIP 4, which concerns a new implementation of the P2P layer of Lisk.
The LIP 4 proposal came from Jan Hackfeld, with the contribution of Andreas Kendziorra and Oliver Beddows. It consists in the introduction of a robust peer selection with periodic shuffling and banning mechanism, in addition to an improvement of the gossip-based flooding mechanism for blocks, transactions and signatures. The combination of the two changes can make the Lisk peer-to-peer network ready to support a large number of nodes. Furthermore, it increases the strength of the network.
The justification for the proposal is that, in the current system of the P2P layer of Lisk, every peer holds an open websocket connection to every other peer. They explain that the current gossip-based solution is robust against attacks because it is not possible to predict how a block, transaction or signature circulates through the network and the information is sent to a large number of peers. The problem of this approach, however, is that it is not scalable. The reason is that a large number of open connections creates a huge overload for every peer, bringing it to make impossible to maintain an open connection to every other node. Moreover, the use of a fixed relay limit does not allow to scale automatically and, therefore, network delays can have a huge impact in the block propagation.
The proposal of the modification of the P2P layer can solve all of the above issues through the following changes:
- Unstructured P2P Network instead of the actual structured one, in order to reduce the complexity and increase the security;
- Hybrid approach replaces the actual eager push mechanism: it can save bandwidth while maintaining a fast propagation of information in the network;
- Introduction of a peer discovery mechanism based on Bitcoins peer discovery;
- Change of the connections system;
- Periodic Shuffling of the outgoing connections, in order to prevent attackers from learning about the topology of the network and identifying nodes to attack to disrupt the network;
- Introduction of a Banning Mechanism: it is used to penalize incorrect peers that send invalid information. It also make the network more resistant against denial-of-service attacks;
- Block Propagation: the elimination of the relay limit and the forwarding of every valid block that has not been received already, can make the propagation less dependent on network delays and can allow to decrease the number of peers to which a block is send to;
- Transaction Propagation: move towards a lazy push mechanism to broadcast transaction;
- Signature Propagation: in this case, they suggest not to change the system and maintain the current eager push mechanism for signature objects.
For more detailed information, you can read the full description on the LIP page on GitHub.