  A Sybil attack occurs when an adversary controls multiple identifiers (IDs)
in a system. Limiting the number of Sybil (bad) IDs to a minority is critical
to the use of well-established tools for tolerating malicious behavior, such as
Byzantine agreement and secure multiparty computation.
  A popular technique for enforcing a Sybil minority is resource burning: the
verifiable consumption of a network resource, such as computational power,
bandwidth, or memory. Unfortunately, typical defenses based on resource burning
require non-Sybil (good) IDs to consume at least as many resources as the
adversary. Additionally, they have a high resource burning cost, even when the
system membership is relatively stable.
  Here, we present a new Sybil defense, ERGO, that guarantees (1) there is
always a minority of bad IDs; and (2) when the system is under significant
attack, the good IDs consume asymptotically less resources than the bad. In
particular, for churn rate that can vary exponentially, the resource burning
rate for good IDs under ERGO is O(\sqrt{TJ} + J), where T is the resource
burning rate of the adversary, and J is the join rate of good IDs. We show this
resource burning rate is asymptotically optimal for a large class of
algorithms.
  We empirically evaluate ERGO alongside prior Sybil defenses. Additionally, we
show that ERGO can be combined with machine learning techniques for classifying
Sybil IDs, while preserving its theoretical guarantees. Based on our
experiments comparing ERGO with two previous Sybil defenses, ERGO improves on
the amount of resource burning relative to the adversary by up to 2 orders of
magnitude without machine learning, and up to 3 orders of magnitude using
machine learning.
