ABOUT THE PROJECT
KUMO: A Network Crawler for Ethereum
Blockchains run on top of a p2p network made out of thousands of nodes. In permission-less blockchains, anybody can join the network at any time. This also includes possible bad actors that try to disrupt the network seeking economic benefits or simply to render the blockchain inoperable. Among these bad actors we can find nodes that actively try to do a deny-of-service (DoS) attacks to a specific node, or eclipse a node by surrounding it with controlled nodes that will only allow it to see part of the communications and hide the rest. It is also possible that some actors behave correctly most of the time and they just act badly at specific moments, which is harder to detect than other behaviours.
This project aims to design and develop a network crawler that can keep gathering information about the peers in the network and their behaviour. The information gathered by the network crawler can be general or specific. On the general spectrum, the crawler can solve questions such as i) what is the average latency of a specific client, ii) what is the geographical distribution of the nodes in the network? and iii) what is the current distribution of clients and their respective code versions? The crawler will also be able to study specific nodes that might be suspected bad actors and answer questions such as i) what is the latency and geographical location of a node? ii) what version of which client is this node using? and iii) how much data is it propagating to the network?
Motivation for the project:
Multiple blockchains, including Ethereum, are moving towards a sharded blockchain, in which multiple blockchains co-exist and communicate by the means of a master chain. This should increase the scalability of the blockchain by several orders of magnitude, but it should also open new questions; questions that enterprises and dApp developers will have to take into account when deploying their services on the blockchain. We aim to build a tool capable of providing the required information for blockchain users.
Generic use case description:
A tool capable of detecting changes in behaviour, such as a sudden and sharp increase or decrease in the number of messages communicated, which should suggest either a DoS attack (sudden increase) or a sibyl attack (sudden decrease).
Essential functionalities:
A tool capable of monitoring a designated node, or set of nodes in the Eth2 network, for a long period of time and gather data about the behaviour of the target nodes in terms of latency, number of connections and disconnections, online time, number of messages forwarded to other peers.
How these functionalities can be integrated within the software ecosystem:
A synergy between the blockchain infrastructure and the higher level applications: the blockchain infrastructure allows the blockchain applications to run, and the higher level applications allow us to run network monitoring tools to detect malicious nodes, adding robustness into the underlying infrastructure.
Gap being addressed:
Given the Ethereum network requirements and the interaction between the clients, it is important to monitor critical points for possible attacks. In this project we introduce a network monitoring tool used to generate a complete analysis of the p2p network of the Ethereum main net.
Expected benefits achieved with the novel technology building blocks:
The tool should be capable of showing a general overview of the composition of the network to provide client implementation teams, exchanges and dApp developers to gain a large amount of empirical data and real-time information about the healthiness of the network.
Potential demonstration scenario:
The network crawler proposed in this project will offer a service, to discover the composition of the Eth2 network and its shards. By discovering properties like the network latency of peers in the network and their network addresses, the crawler will be able to understand the geographical distribution of a target group of peers.
TEAM
Dr. Leonardo Bautista-Gomez is a senior researcher at the BSC, where he leads research in blockchain technology and high performance computing.
Mikel Cortes
Mikel Cortes is in his last year of master in Embedded Systems by the Universidad del Pais Vasco. He is doing his Master Thesis at the Barcelona Supercomputing Center at the BSC-ETH2 team.
ENTITIES
Barcelona Supercomputing Center
BSC-CNS (Barcelona Supercomputing Center-Centro Nacional de Supercomputación) is the National Supercomputing Facility in Spain.