Partition Detection in Byzantine Networks
<|reference_start|>Partition Detection in Byzantine Networks: Detecting and handling network partitions is a fundamental requirement of distributed systems. Although existing partition detection methods in arbitrary graphs tolerate unreliable networks, they either assume that all nodes are correct or that a limited number of nodes might crash. In particular, Byzantine behaviors are out of the scope of these algorithms despite Byzantine fault tolerance being an active research topic for important problems such as consensus. Moreover, Byzantinetolerant protocols, such as broadcast or consensus, always rely on the assumption of connected networks. This paper addresses the problem of detecting partition in Byzantine networks (without connectivity assumption). We present a novel algorithm, which we call NECTAR, that safely detects partitioned and possibly partitionable networks and prove its correctness. NECTAR allows all correct nodes to detect whether a network could suffer from Byzantine nodes. We evaluate NECTAR's performance and compare it to two existing baselines using up to 100 nodes running real code, on various realistic topologies. Our results confirm that NECTAR maintains a 100% accuracy while the accuracy of the various existing baselines decreases by at least 40% as soon as one participant is Byzantine. Although NECTAR's network cost increases with the number of nodes and decreases with the network's diameter, it does not go above around 500KB in the worst cases.<|reference_end|>
@article{bromberg2024partition,
    title={Partition Detection in Byzantine Networks},
    author={Y'erom-David Bromberg (IRISA, UR), J'er'emie Decouchant (TU Delft),
  Manon Sourisseau (IRISA, UR), Franc{c}ois Ta"iani (IRISA, UR)},
    journal={2024 IEEE 44th International Conference on Distributed Computing
  Systems (ICDCS), Jul 2024, Jersey City, France. pp.139-150},
    year={2024},
    doi={10.1109/ICDCS60910.2024.00022},
    archivePrefix={arXiv},
    eprint={2408.14814},
    primaryClass={cs.DC}
}