The primary distinction between ZK-Rollups and sidechains is the mechanism by which transaction data is stored. Whereas rollups aggregate Layer 2 transactions and then submit them to the mainchain, sidechains establish whole independent chains — and then submit only the deposit and withdrawal to the mainchain. While ZK-Rollups can rely on the mainchain's security, sidechains are entirely on their own. Additionally, like any sidechain, the operators responsible for forging new blocks may cease production or restrict withdrawals. Sidechains, like mainchains, are vulnerable to 51 percent attacks.