Distributed Consensus with Byzantine Adversaries
Date: October 02 - October 04, 2013
The problem of distributed consensus algorithms in the presence of Byzantine adversaries has been increasingly important in both distributed computing scenaria and cyber-physical systems. Yet a satisfactory solution to the problem is still being sought due to the fact that Byzantine adversaries can output arbitrary wrong states and even collude to cause worse damages. We aim to solve the problem via detecting adversaries. Related works in multi-party computation in computer science are addressing this type of problem relying on the assumption that adversaries cannot lie about their input values. Works in the control theoretic literature rely on strict and hardly verifiable network robustness conditions. Both lines of research just consider guaranteeing the consensus in the face of adversaries yet neither of them considers detecting adversaries. In this paper a method is proposed to investigate this problem based on the detection of adversaries in the execution of the consensus algorithm. We integrate a trust evaluation
mechanism into the consensus algorithm, where trust can be established with the help of a special subset of nodes, namely headers. We propose a two-layer hierarchical framework, where the top layer is a super-step dealing with a vectorized consensus algorithm, and the bottom layer is a sub-step, executing our proposed parallel vectorized voting scheme. The parallel vectorized voting scheme uses the information received by the top layer as an initial trust opinion and then evolves to equilibrium trust opinions. The vectorized consensus algorithm in the top layer utilizes the trust evaluation results provided by the bottom layer to update confidence levels and states. We also derive an upper bound of the number of adversaries that our algorithm can resist in each super-step.