  Consensus and leader election are fundamental problems in distributed
systems. Consensus is the problem in which all processes in a distributed
computation must agree on some value. Average consensus is a popular form of
consensus, where the agreed upon value is the average of the initial values of
all the processes. In a typical solution for consensus, each process learns the
value of others' to determine the final decision. However, this is undesirable
if processes want to keep their values secret from others.
  With this motivation, we present a solution to privacy-preserving average
consensus, where no process can learn the initial value of any other process.
Additionally, we augment our approach to provide outlier resistance, where
extreme values are not included in the average calculation. Privacy is fully
preserved at every stage, including preventing any process from learning the
identities of processes that hold outlier values. To our knowledge, this is the
first privacy-preserving average consensus algorithm featuring outlier
resistance.
  In the context of leader election, each process votes for the one that it
wants to be the leader. The goal is to ensure that the leader is elected in
such a way that each vote remains secret and the sum of votes remain secret
during the election. Only the final vote tally is available to all processes.
This ensures that processes that vote early are not able to influence the votes
of other processes. We augment our approach with shallow ranked voting by
allowing processes to not only vote for a single process, but to designate a
secondary process to vote towards in the event that their primary vote's
candidate does not win the election.

Cryptography and Security