The majority of fault-tolerant distributed algorithms are designed assuming a
nominal corruption model, in which at most a fraction fnβ of parties can be
corrupted by the adversary. However, due to the infamous Sybil attack, nominal
models are not sufficient to express the trust assumptions in open (i.e.,
permissionless) settings. Instead, permissionless systems typically operate in
a weighted model, where each participant is associated with a weight and the
adversary can corrupt a set of parties holding at most a fraction fwβ of
total weight.
In this paper, we suggest a simple way to transform a large class of
protocols designed for the nominal model into the weighted model. To this end,
we formalize and solve three novel optimization problems, which we collectively
call the weight reduction problems, that allow us to map large real weights
into small integer weights while preserving the properties necessary for the
correctness of the protocols. In all cases, we manage to keep the sum of the
integer weights to be at most linear in the number of parties, resulting in
extremely efficient protocols for the weighted model. Moreover, we demonstrate
that, on weight distributions that emerge in practice, the sum of the integer
weights tends to be far from the theoretical worst-case and, often even smaller
than the number of participants.
While, for some protocols, our transformation requires an arbitrarily small
reduction in resilience (i.e., fwβ=fnββΟ΅), surprisingly, for many
important problems we manage to obtain weighted solutions with the same
resilience (fwβ=fnβ) as nominal ones. Notable examples include asynchronous
consensus, verifiable secret sharing, erasure-coded distributed storage and
broadcast protocols