Probabilistic Cut-Through Switching

Probabilistic Cut-Through Switching

Geth PoC here

Joint work on block propagation and peer reputation by Steffen Rattay and Marius van der Wijden

We propose a new algorithm called probabilistic cut-through switching. The idea is that each node maintains a list of incomming connections. If a block arrives at the node, it checks (according to a metric) whether it should use store-and-forward or cut-through switching. If a peer is suspected to be an attacker (forwards to many invalid packages) the peer is dropped.

Each peer starts with a trust-level of 50.
Each time a new block arrives the node generates a random number between 1 and 100.
If the number is below the trust-level for this peer, the node uses the store-and-forward algorithm and verifies the block before sending.
If the number is higher than the trust-level the node uses the cut-through algorithm.
If the verification of the block was valid, the trust-level for the peer is increased.
Else if the verification of the block was invalid, the trust-level for the peer is decreased.
If the trust-level falls under a predefined level (e.g. 20%) the peer is evicted from the peer list and all connections to the peer are closed.