  The security of blockchain protocols is a combination of two properties:
safety and liveness. It is well known that no blockchain protocol can provide
both to sleepy (intermittently online) clients under adversarial majority.
However, safety is more critical in that a single safety violation can cause
users to lose money. At the same time, liveness must not be lost forever. We
show that, in a synchronous network, it is possible to maintain safety for all
clients even during adversarial majority, and recover liveness after honest
majority is restored. Our solution takes the form of a recovery gadget that can
be applied to any protocol with certificates (such as HotStuff, Streamlet,
Tendermint, and their variants).
