  Voting algorithms have been widely used as consensus protocols in the
realization of fault-tolerant systems. These algorithms are best suited for
distributed systems of nodes with low computational power or heterogeneous
networks, where different nodes may have different levels of reputation or
weight. Our main contribution is the construction of a fair voting protocol in
the sense that the influence of the eventual outcome of a given participant is
linear in its weight. Specifically, the fairness property guarantees that any
node can actively participate in the consensus finding even with low resources
or weight. We investigate effects that may arise from weighted voting, such as
loss of anonymity, centralization, scalability, and discuss their relevance to
protocol design and implementation.
