I. Introduction
Trusted execution environments (TEEs), ., Intel SGX [1],[2], give developers a set of hardware tools to protect their applications from various threats against the confidentiality and integrity of their data and code. TEEs allow developers to deploy and run systems in untrusted environments, such as public clouds, tolerating strong adversarial models under minimal trust constraints. Developers only need to trust the processor manufacturers. Unfortunately, TEEs do not protect against rollback attacks, in which an attacker tries to rollback an application state from a previous state to gain some benefits. Examples of such attacks include using already-expired software licenses ., version downgrade attacks), undoing certain transactions, or revert to old software versions to exploit known bugs [3]–[5]. While some solutions exist to protect TEEs against rollbacks [6],[7], they present a few drawbacks. LCM [7] relies on clients to ensure state continuity. Rote [6] assumes that at least one replica survives power outages to maintain the counter value.