How do you test a protocol that connects blockchains before the blockchains exist?

That was the problem with IBC. The spec was solid. The implementation looked good. But IBC wouldn’t run on one chain—it would run between dozens of chains operated by teams with different incentives, different infrastructure, different failure modes. Unit tests and local devnets couldn’t surface those problems.

Game of Stakes had worked for Tendermint consensus. An adversarial testnet where operators tried to break things, with real money on the line. We needed the same thing for IBC.


The Structure#

Game of Zones launched May 1, 2020 and ran for about five weeks. Three phases, each with different objectives:

Phase 1 — Liveness. Keep your IBC connections alive. Teams needed to relay at least one packet every 90 minutes and update light clients within the unbonding period. The winners maintained the longest-lived connections with minimal packet overhead.

Phase 2 — Throughput. Relay as many packets as possible. Each team got a billion test tokens (doubloons) and scored based on packets relayed: full points for packets to the hub, partial points for packets between other zones. Sentinel won this phase with a custom relayer modification that dramatically increased their throughput.

Phase 3 — Security. Break IBC. Execute confusion attacks, deception attacks, anything that would exploit the security model. P2P.org won by demonstrating a double-spend attack through double-signing—exactly the kind of edge case we needed to find before mainnet.


What We Found#

The competition surfaced real issues:

  • Light client update timing was fragile. Miss the unbonding window and you’re starting over.
  • Relayer efficiency varied wildly. The reference implementation worked, but teams that optimized for throughput saw 10x improvements.
  • The security model held. Phase 3 was designed to break IBC, and while teams found creative attacks, nothing was fundamentally broken. The double-spend attack required double-signing—a validator slashing offense—which meant the economic security worked as designed.

The relayer I’d built for testing became the foundation for what teams used in competition. Watching 150+ teams push it to its limits was the best stress test imaginable.


The Team#

Zaki Manian from Iqlusion and I organized the competition, with Jessy Irwin handling security and communications. The Interchain Foundation sponsored the 100,000 ATOM prize pool.

Building the scoreboard was its own challenge. We used Sagan and Datadog to track packet relays across all the zones in real-time. When you’re judging “most packets relayed” across a network of competing chains, you need reliable telemetry.


Why It Mattered#

Game of Zones was IBC’s final exam before production. Six months later, IBC launched on the Cosmos Hub. The validators who’d competed knew what they were getting into. The relayer operators had battle-tested software. The protocol had been attacked by people with real incentive to break it.

Adversarial testnets work. When you’re shipping infrastructure that will secure billions of dollars, you want the bugs found by competitors on a testnet, not by attackers on mainnet.


The competition site is still up. Code and final results at github.com/cosmosdevs/GameOfZones.