  This paper proposes a distributed algorithm for average consensus in a
multi-agent system under a fixed bidirectional communication topology, in the
presence of malicious agents (nodes) that may try to influence the average
consensus outcome by manipulating their updates. The proposed algorithm
converges asymptotically to the average of the initial values of the
non-malicious nodes, which we refer to as the trustworthy average, as long as
the underlying topology that describes the information exchange among the
non-malicious nodes is connected. We first present a distributed iterative
algorithm that assumes that each node receives (at each iteration or
periodically) side information about the trustworthiness of the other nodes,
and it uses such trust assessments to determine whether or not to incorporate
messages received from its neighbors, as well as to make proper adjustments in
its calculation depending on whether a previously trustworthy neighbor becomes
untrustworthy or vice-versa. We show that, as long as the trust assessments for
each non-malicious node eventually reflect correctly the status (malicious or
non-malicious) of its neighboring nodes, the algorithm guarantees asymptotic
convergence to the trustworthy average. We subsequently discuss how the
proposed algorithm can be enhanced with functionality that enables each node to
obtain trust assessments about its neighbors by utilizing information that it
receives from its two-hop neighbors at infrequent, perhaps randomly chosen,
time instants.
