  Sidechain technology has been envisioned as a promising solution to
accelerate today's public blockchains in terms of scalability and
interoperability. By relying on the mainchain for security, different
sidechains can formulate their own rules to reach consensus. Although the
literature has considered the possibility of using consensus protocols in the
sidechain, so far a tailor-made consensus protocol for sidechains with high
performance and formal security proof has not been attempted. To fill this gap,
we introduce Cumulus, a low overhead, highly efficient, security provable
sidechain protocol. Cumulus makes use of smart contracts to ensure that only
one block proposed in the sidechain will be enforced on the mainchain in each
round, thereby achieving consensus in an efficient manner. We give a formal
specification of Cumulus which ensures safety and liveness without any online
requirements of clients. For security analysis, we provide formal security
definitions and proofs under Universally Composable Security (UCS) model. As a
proof of concept, we implement Cumulus and evaluate it in an Ethereum testnet.
