4 Important Updates about Phase 1 of Game of Zones

Throughout the day, the GoZ team and Iqlusion teams have worked with core Cosmos developers to resolve the issues that impacted the Game of Zones Hub over the weekend. As of this evening, the GoZ Hub has achieved a 24 hour period of testnet stability that is required to launch the competition. This important development means that Phase 1 of Game of Zones will launch on Wednesday, May 6th at 12am PST / 7AM UTC. 

  • Today’s software release resolves stability issues within the capabilities initiation implementation of the code without breaking changes, and it will not require a hub restart for the competition.
  • Phase 1 of the contest will run on version 0.34.4-0.20200430150743-930802e7a13c of the Cosmos SDK, version 0.0.0-185-g9f47782 of Gaia, and version 0.3.1-3-g6685579 of the Relayer
  • More information about the software and updates to the Game of Zones Challenge Scope are available in the official GoZ Github Repo
  • The Game of Zones Scoreboard will be shared with participants several hours after Phase 1 begins on Wednesday, May 6th. 

Before launching Phase 1 of Game of Zones, we will also be making a change to the Challenge Scope that governs the challenge. This is in light of several questions that have been asked by participants about the requirement to send a packet to keep a connection alive and the capabilities of the underlying code. 

In the contest scope, we initially stated that the winner of Phase 1 would be the team that pushes the limits of packet connections by maintaining the longest lived connection with the fewest packets sent. We will be updating the Challenge Scope to clarify that we are looking for teams to send the fewest packets possible while keeping the client alive.

To ensure that all participants are aware of official start time for Phase 1, we will be sending an email and sharing this information across our official Game of Zones channels. If you have any questions about these changes, the best way to get in touch is to send us an email at gameofzones@cosmosnetwork.dev or join us on Friday, May 8th for our Phase 1 Live Stream.

An Update on Phase 1 of Game of Zones

Over the weekend, the Game of Zones and Iqlusion teams have debugged and resolved several issues that impacted the launch of the Game of Zones Hub.  Though we were able to get the Hub up and  running over the weekend,  the hub did not achieve the necessary 24 hours of stability required to start Phase 1 of the competition. As a result, we will be pushing back the start time for Phase 1 of Game of Zones to Wednesday, May 5th.

  • At present, we are working towards resolving this issue discovered by Yelong from the IRISnet team.
    • We expect this bug to take about a business day to resolve, and we are aiming to cut a release with a fix for this issue on or before Tuesday, May 5th.
  • In order to launch the competition, the hub will need to achieve 24 hours of testnet stability.  
    • If a release is cut on or before Tuesday, the earliest that Phase 1 of Game of Zones could launch is Wednesday, May 6th.
  • The Game of Zones scoreboard will be shared with participants on the first official day of the competition. 
    • The scoreboard will be available to participants within a few hours of the official starting time.
  • Phase 1 will likely run on an abbreviated schedule that begins on May 6th and ends on May 10th. 
    • The schedule may be amended to provide a short break between Phases 1 and 2.

The contributions from the community towards resolving issues with the Hub were incredible, and we are looking forward to launching the competition as quickly as we can.Though Game of Zones will start a couple of days later than projected, it’s been our priority to achieve an initial period of stability before Phases 2 and 3 kick off. Later this week, we’ll provide technical details of the issues that impacted Hub launch.

Throughout Monday and Tuesday, we will provide updates on our progress and communicate an official starting time through our official communications channels and we will send an official communication with the new starting time to all participants. To ensure that you’re receiving the most up to date information, follow us on Twitter and be sure to watch the Github repos for the competition.

How to Stress the IBC Security Model to Win Game of Zones


When we started thinking about Game of Zones in 2019, one of the most important goals we set was to use the challenge to prepare network operators for a whole new internet of blockchains. Once participants master liveness and throughput during Game of Zones, their final task will be to stress test the IBC Security Model. This exercise in adversarial thinking is designed to help teams identify and detect deception attacks in the wild, and to encourage the development of observability tooling to monitor for and alert on confusion attacks on the network.

The Double Spend Problem

Blockchains are notorious for attempting to implement solutions for the double spend problem. But the typical approach to solving this problem usually requires a world computer that runs about as fast as a calculator. Trying to scale solutions to the double spend problem has driven innovation and demand for zero knowledge proofs, random beacons, and complex sharding architectures. 

In designing IBC, we took a different approach that was inspired by the early works of the Agoric team and we focused on sovereignty. Core concept of sovereignty is that every user of a system needs to look at their own trust boundaries and preferences when choosing what chains, objects and tokens to interact with. With Game of Zones, we get to make that process of attack and defense real.

Token Distribution and ICS 20

At the launch of the GoZ Hub, we will be distributing tokens to each participating zone. Each of the zones will receive an equal number of tokens at the beginning of the competition, and those tokens will circulate in the IBC Network. While those tokens will not be a deciding factor in the first two phases of the competition, they are very important in assessing performance during the Phase 3. This is when we will look for confusion and deception attacks that trick users into accepting tokens that have been counterfeited and debased as if they were the real deal. The team with the most coins on the Hub may be the most likely to win. 

To compete in Game of Zones, your chain must support the ICS20 token transfer protocols during Phase 1 and Phase 2. If you want to bring a chain without ICS 20 support in the third phase, we suggest running a standard gaia in the first and second phases. We will be judging other application protocols during Phase 3, but they won’t be able to test the security model in the same way.

Confusion + Deception Attacks

One trend that we expect to emerge from participating teams during Phase 3 is fraudulent coin generation. An interesting implementation of this could be creating fractional exchange rates that enable zones to mint new coins out of nothing, and then send them on to other zones to convince other players to accept these coins. Though these tokens would never be redeemable, it would be difficult to judge whether they are valid coins or not.

Teams that are considering fraudulent coin strategies should pay special attention to the logic in the ics-20 implementation. Carefully manipulating the escrow and denom creation may also be a successful approach to trying to create underhanded state machines.


   if source {
       // clear the denomination from the prefix to send the coins to the escrow account
       coins := make(sdk.Coins, len(amount))
       for i, coin := range amount {
           if strings.HasPrefix(coin.Denom, prefix) {
               coins[i] = sdk.NewCoin(coin.Denom[len(prefix):], coin.Amount)
           } else {
               coins[i] = coin
           }
       }
 
       // escrow tokens if the destination chain is the same as the sender's
       escrowAddress := types.GetEscrowAddress(sourcePort, sourceChannel)
 
       // escrow source tokens. It fails if balance insufficient.
       if err := k.bankKeeper.SendCoins(
           ctx, sender, escrowAddress, coins,
       ); err != nil {
           return err
       }
 
   } else {
       // build the receiving denomination prefix if it's not present
       prefix = types.GetDenomPrefix(sourcePort, sourceChannel)
       for _, coin := range amount {
           if !strings.HasPrefix(coin.Denom, prefix) {
               return sdkerrors.Wrapf(types.ErrInvalidDenomForTransfer, "denom was: %s", coin.Denom)
           }
       }
 
       // transfer the coins to the module account and burn them
       if err := k.supplyKeeper.SendCoinsFromAccountToModule(
           ctx, sender, types.GetModuleAccountName(), amount,
       ); err != nil {
           return err
       }
 
       // burn vouchers from the sender's balance if the source is from another chain
       if err := k.supplyKeeper.BurnCoins(
           ctx, types.GetModuleAccountName(), amount,
       ); err != nil {
           // NOTE: should not happen as the module account was
           // retrieved on the step above and it has enough balance
           // to burn.
           return err
       }



Other attacks we expect to see during the competition include using a validator set to create difficult to detect light client forks and using state machines that conceal back doors and create tokens with arbitrary denominations to trick IBC users. Hopefully, we will see new ideas that we haven’t thought of before: to win this round of Game of Zones, teams will need to show their work by publishing technical details and write ups of their attacks once they’ve been carried out.

Has your team started working on your strategy for Phase 3? If not, take a closer look at ICS 20 and spend an afternoon with your team thinking about you would defend against deception attacks.

6 Important Updates from Game of Zones Opening Ceremonies

It’s almost here! Right now, the Game of Zones and Iqlusion teams are currently debugging the GoZ Hub. The launch of the Game of Zones is imminent– and Opening Ceremonies for the competition began this morning at 9am PST // 4pm UTC.

Prizes and Phase Objectives

One of the biggest updates we shared with GoZ participants this week was focused on challenge phase objectives and contest rewards. We designed the weekly phase challenge prizes to reward performance for specific contest goals, and contest prizes are intended to reward innovation and creativity throughout the competition. You can learn more about the opportunities to win Game of Zones here, or to listen to our commentary on prizes and challenge objectives at the beginning of the live stream.

Reuniting the Core IBC Team 

During Opening Ceremonies, we were joined by several core IBC developers to celebrate the beginning of Game of Zones. One common sentiment that Anca Zamfir, Chris Goes, Federico Kunze Küllmer and Aditya Sripal shared about working on IBC was the importance of developing decentralized protocols to power the future of the internet. This group of core developers also expressed their excitement about seeing IBC in action, and they looked forward to seeing challenge participants break IBC so they could return to the code to make it stronger and more resilient. 

Standing up the GoZ Hub

From today through Sunday, we will begin the launch process for the Game of Zones Hub that will run on the current version of gaia. Throughout the competition, we are expecting patch releases for gaia: there will definitely be a new version of gaia for Phase 2, and teams should be prepared for a new version of gaia to become available for Phase 3.

The GoZ Scoreboard

Over the past few weeks, the Game of Zones team and Iqlusion have been heads down building a Sagan-powered scoreboard. After the official launch of Phase 1, we will share this scoreboard with participants so that everyone is able to track their performance in the competition.

Judging criteria for the first two phases of the competition is quantitative and relatively straightforward, and the scoreboard will be an important tool that informs who will win each Phase. During Phase 3, observability becomes more of a challenge — we may not have full visibility into attacks taking place on the network. Throughout the competition, we expect many teams to share their network visualization tools as another way to experience the challenge.

Contest Pacing + Updates

During the planning of Game of Zones, we began thinking about contest design in terms of the start process for a race.The first weekend of the contest (May 1-3) is designed to help teams get into a strong starting position by standing up their nodes and making a connection to the GoZ hub in advance of official Phase 1 Launch on Monday. Because we are measuring performance from Monday through Friday each week, the weekends are essentially a pit stop for each team — you can use this down time to take a break before the next phase, build new tools or automation to set you up for success, or use the time to prepare for upcoming software updates. And on Fridays at noon PST, for anyone in the mood to come and hang out a bit, we will be hosting live-streams to recap the action that took place during the week and share important announcements with participants. 

Official Communication Channels

Throughout Game of Zones, the best way to get updates about the competition is through Twitter, our blog, and Github. Wherever we can, we will work to communicate updates and important competition details to the community all at once. If you need to get in touch with the Game of Zones team for any reason– to ask a question about the contest rules, see if we’re able to share data with your visualizer, or just to say hi– it is best to send an email to gameofzones@cosmosnetwork.dev. Sending an email is the fastest way to get a direct response from one of us.

The Game of Zones hub launch process will take place through the weekend, and Phase 1 of the Competition begins Monday, May 4th at 12am PST // 7am UTC, so be sure to connect to the node and watch for the Game of Zones scoreboard announcement on Monday morning. Best of luck to everyone competing in Game of Zones — we can’t wait to see what incredible things come out of the competition!

Everything Your Team Needs to Know to Win Game of Zones

It’s almost here: Game of Zones begins in less than 48 hours!

Just in time for the start of the competition, the Game of Zones Team is proud to share the goals for each phase of the challenge, and all of the ways your team could take home a prize from the competition.

If your team registered to participate, be sure to check your inbox and follow the steps in your confirmation email to finalize your place in the competition.

4 Things Every Team Must Do by 4/30 for Game of Zones Launch

Over the past few weeks, we’ve had an overwhelming response to the call for registrations for Game of Zones– by far, this will be the largest competition ever held in the Cosmos universe. To ensure a smooth start to the challenge, we are asking each team to complete these four important tasks no later than April 30th.

1)  Check your inbox for an email from the Game of Zones team and confirm that your team’s registration information is correct.

We’ve sent out the first batch of emails to confirm the information we’ve gathered from each team, and the second batch will go out within the next few hours. If you would like to change anything in your registration info, please contact us on or before 4/30 — the earlier, the better! This is especially important if you want to change your chain_ID, or if you need to update the Cosmos address you will be using for the official Game of Zones testnet. 

2) Submit a pull request to the official Game of Zones Github repo in the contestant_info folder with your Team Name and IPC endpoint in the title.

Each team must share an RPC endpoint with the GoZ team to be included in the official Game of Zones scoreboard and to be eligible for rewards. Providing these endpoints will also enable third party network visualizers to have deeper visibility into the competition. 

3) Whitelist the IP addresses in your confirmation email for Tendermint RPC port 26657 to ensure that your team’s participation makes it onto the GoZ scoreboard.

Each team must whitelist these IP addresses to ensure that their participation is tracked, scored, and assessed with accuracy. The Game of Zones team will be subscribing to the Tendermint websocket, and pulling down every transaction on your chain throughout the competition.

4) Mark your calendar with these important competition dates, and join us each week (if you can!)  to learn more about what’s next in Game of Zones.

At launch, we will be giving teams a couple of days to join the competition testnet and to fine-tune their setups before the competition gets into full gear on Monday, May 5th. And throughout the competition, we will be measuring participation from Monday through Friday — this will give participating teams a chance to devise new attacks, build new tools, write blog posts about best practices and Proof-of-Concepts for novel ideas and attacks, or take a much-needed break to prepare for the week ahead. 

  • GoZ Opening Ceremonies are on 5/1 at 9am PST— join us and a few special guests on Twitch!
  • Phase 1 begins at 12am PST on 5/4 to 11:59am PST on 5/8, and the P1 Live Stream recap will be on 5/8 at 12pm PST.
  • Phase 2 begins at 12am PST on 5/11 to 11:59PM PST on 5/15, and the P2 Live Stream recap will be on 5/15 at 12pm PST.
  • Phase 3 begins at 12am PST on 5/18 to 11:59pm PST on 5/22, and the P3 Live Stream recap will be on 5/22 at 12pm PST
  • Closing Ceremonies will be on 5/28 at 9am PST.

To ensure your team’s participation and eligibility to win the competition, you must complete the action items above no later than 4/30. Any delay in updating your team info, submitting a PR to the official GoZ Github repo, or in whitelisting the IP addresses for the scoreboard may negatively impact your team’s performance in the first phase of Game of Zones. And of course, If you have any questions, please contact us at gameofzones@cosmosnetwork.dev

Everything You Need to Know about Game of Zones

One of the most important aspects of running Game of Zones is ensuring that the participating teams have the opportunity to learn everything about the competition, the Relayer software, and what to expect from IBC. Throughout the registration period, the Game of Zones team has helped participants get ready for the challenge by holding several live-stream sessions to answer questions from the community and discuss every aspect of the competition. 

Competition Scoring

To ensure that all Cosmos validators and developers are ready for the internet of blockchains,  we’ve designed the challenges in Game of Zones to build on one another as the competition progresses. Each week, we will be looking for something different from competitors, with Week 1 focusing on uptime, Week 2 focusing on throughput, and Week 3 being all about deception, confusion attacks, and stress testing the security model of IBC. While incurring downtime during the competition may impact your final reward distribution, if there are uptime issues that come from significant flaws in the code, we’ll make sure that they do not  negatively impact scoring. (We are still working with experimental code that’s not quite production ready, after all!)

Scoreboards + Observability

In order to participate in the competition, teams should be prepared to share some data with us, namely RPC endpoints, in advance of GoZ Launch.  The RPC endpoints we collect will be used to power a regularly updated scoreboard that will give participants a way to track their participation in the competition, though this may be a challenge for us during Phase 3.  Throughout the challenge, teams will need to set up some automation to support sending a packet at least every 90 minutes, a liveness metric that we will be measuring liveness through the Relayer.

We will begin collecting RPC endpoints and a few other details soon, so keep an eye out for an email from us. And for teams (like this one) who are interested in developing network visualizers or monitoring/detection logic to support the competition, we’re happy to work with you to share some of the information we collect — just reach out to us at gameofzones@cosmosnetwork.dev!

Prize Distribution

From learning the ins and outs of the Relayer software (and IBC!) to building automation that will help teams get ahead of the competition, preparing for Game of Zones requires participants to invest both time and expertise. Similar to how we handled the prize distribution for Game of Stakes, participants who are able to complete the first Game of Zones phase designed around liveness are eligible to receive rewards from the competition’s 100,000 ATOM prize pool.  At present, we are currently finalizing the details of how we will manage the participant distribution, especially for cases where people are competing as both an individual and as a team. So far, we are able to share that:

  • 50,000 ATOM will be split among the 3 weekly challenge winners and 5 cumulative challenge winners. We will share the more details about this split during opening ceremonies on 5/1.
  • 50,000 ATOM will be split among participating teams.  We’ll be able to share a projection of what this may look like during opening ceremonies on 5/1.

On your mark, get set…


Anyone who has ever won a Capture the Flag competition or Hackathon knows the biggest secret to success is being prepared. In any challenge, it is important to have your strategy, tooling, and automation ready before you cross the start line. From now through May 1, here are a few things your team can do to build a winning strategy: 

  • If you’re preparing for the competition, it’s important to spend some time checking out the Relayer software. Getting to know the relayer will help you understand the kinds of automation that are important for succeeding in the competition– especially since you will need to maintain a keep alive connection that sends a packet at least every 90 minutes throughout Game of Zones. 
  • For those of you wondering what a Chain ID is and how token distribution will work, the best way to learn more about IBC and this competition is to get familiar with the current IBC testnet that was restarted this past Monday. 
  • If your team is thinking ahead to your Phase 3 strategy, watch our live stream with Agoric from Wednesday to learn more about Dynamic IBC, and a few novel ways you may be able to use virtualization to create a winning strategy. 

Registration for Game of Zones closes on 4/25 @ 11:59pm PST. Don’t miss out! If you haven’t signed up yet, build a team now and register before it’s too late.  And if you’re having trouble figuring out what a Chain ID is, please note that in your registration and we will follow up with you to ensure you’re ready to go before launch on May 1. 

A Whole New World: Testnets in the IBC Era

From running some of the first BFT systems over the open internet to developing Game of Stakes, the first-ever incentivized Proof of Stake testnet, the Cosmos community consistently innovates using testnets to drive network operator readiness. As we approach launch time for Game of Zones, it is important that teams participating in the challenge take some time to learn how IBC testnets differ from the traditional Cosmos testnets we all know and love.

If you are reading this, it is likely that you have participated in a Cosmos testnet. Traditionally, Cosmos testnets function by connecting nodes in a BFT network. To join, each new node makes a network request to other nodes in the network to join the P2P network. Being a part of the P2P network exposes quite a bit of information about each node (IP, node id, networking information, etc…) so that each new node on the network can easily find peers. From there, peer discovery happens automagically.

Joining an IBC testnet differs significantly from joining a traditional Cosmos testnet where acquiring information about other validators was automatic. The new world of IBC introduces the concept of Bring Your Own Blockchain where testnets may consist of shallow forks of gaia, novel CosmosSDK chains, and more exotic Tendermint chains. There is no central place to discover where a relayer connects and what protocols are supported, and there is also no requirement to publicly share this information to operate. On the internet, the problem of service discovery is generally solved by technologies like DNS — but with IBC, a network that is much more like the “dark web,” services are only discoverable if you know where to find them. To aid discovery in the world of IBC, testnet participants must share an open RPC endpoint and some additional information that will allow other users to connect to their chain and query its information.

Because participating in an IBC testnet differs so much from standing up a traditional Cosmos testnet, part of your team’s preparation for competing in the Game of Zones should include checking out relayer testnets directory and automating testing against the latest version of hub software with this continuous integration framework. If you are looking to learn more about the dynamics of IBC testnets, join us next Monday to restart the current IBC testnet and  test out the last set of changes before we cut the Game of Zones release.