cosmosdevs / GameOfZones

Welcome to Game of Zones. The Incentivized IBC Testnet.
Apache License 2.0
33 stars 121 forks source link

Game of Zones: Challenge

Last year, the Cosmos Network hosted the first-ever adversarial testnet to prepare network operators for the launch of the first-ever BFT network. This year, the team that brought you Game of Stakes is back again with Game of Zones: on May 1, 2020, we’re kicking off another series of adversarial testnet challenges designed to prepare the Cosmos ecosystem for the upcoming launch of the IBC module.

Registration is closed.

Connecting to the Hub for Phase 3

The Game of Zones Hub for Phase 3 will launch on Sunday, May 31st. There is a single line bug fix from the Phase 2 Hub so we can assume the the stability will persist. The team is continuing to experiment with configuration changes to Tendermint to increase stability and throughput for the remaining competition.

c1082e463b3570c93fddcf3a68405cee2c9d5daf@35.233.155.199:26656
0b9234038eed6704a221aea21d2affaf296ec540@34.83.218.4:26656
0c625b3d653cc6d5dcc41e28531d811803e56c1d@34.83.0.237:26656

Software for Phase 3

The Game of Zones Team will begin the launch process for the hub on Sunday, 31st of May. In order to connect to the hub, you will need to be using the following versions of software:

Gaia (9b59c43) :https://github.com/cosmos/gaia/releases/tag/goz-phase-3 Relayer (f7c0b90): https://github.com/iqlusioninc/relayer/releases/tag/v0.5.4

And for custom zone operators, update to the following CosmosSDK version:

Cosmos-SDK: https://github.com/cosmos/cosmos-sdk/tree/jack/goz-phase-2

The Chain ID for the hub will be gameofzoneshub-3. For this phase of the competition, teams should append the phase number to their chain ID before phase launch.

Game of Zones Phase 3

The main objective for the last phase of the competition is to stress test the security model of IBC, and the winner will be the team that executes the best confusion or deception attacks against other zones.

The Weekly Challenge Winner for Phase 3 will be the team who develops the best attacks or custom protocols to gain an advantage over other competitors, or a team who successfully executes a double spend attack. We expect competitors to provide technical write ups that include a Proof-of-Concept to show the work they’ve done to win.

Please also look out for the other cumulative prizes for the Game of Zones.

Connecting to the Hub for Phase 2

The Game of Zones Hub for Phase 2 will launch on Friday, May 22nd, and is expected to achieve over 48 hours of required stability needed to begin the next phase of the competition.

The details below are the same as they were for Phase 1b:

Publicly available sentry nodes are available at:

6ed008bf3a2ad341d84391bf47ea46e75a87e35e@35.233.155.199:26656
7cb9cbba21fdc3b004f098c116e5e2c2ac77ddfb@34.83.218.4:26656
ef36b3167b8599c46b0daf799f089068360c3911@34.83.0.237:26656

Seed Node

d95a9f97e31f36d0a467e6855c71f5e5b8eccf65@34.83.90.172:26656

The hub will be centralized during the combination. The staking tokens are all controlled by iqlusion, and an allocation of doubloons will be issued to all teams registered in the competition.

Software for Phase 2

The Game of Zones Team will begin the launch process for the hub on Friday, 22nd. In order to connect to the hub, you will need to be using the following versions of software:

Gaia (2d61264) :https://github.com/cosmos/gaia/releases/tag/goz-phase-2 Relayer (f7c0b90): https://github.com/iqlusioninc/relayer/releases/tag/v0.5.4

And for custom zone operators, update to the following CosmosSDK version:

Cosmos-SDK: https://github.com/cosmos/cosmos-sdk/tree/jack/goz-phase-2

The Chain ID for the hub will be gameofzoneshub-2a. For this phase of the competition, teams should append the phase number to their chain ID before phase launch.

Game of Zones Phase 2

Phase 2 of Game of Zones will officially begin Monday, May 25th at 12am PST 7am UTC.

The main focus of the second phase of Game of Zones is throughput, and the winning team will be the team that relays the most packets with their relayer key on the GoZ Hub and in the wider Game of Zones network. All teams will be given 1 billion doubloonsfor Phase 2.

In terms of scoring,

From a judging perspective, we will only be able to count packets relayed with the Relayer key listed in the Phase 2 Roster.

Connecting to the Hub for Phase 1b

The Game of Zones Hub for Phase 1b began launching on May 15th around 1:00am UTC, and has achieved well over the 24 hours of required stability needed to begin the next phase of the competition. A complete roster of participating teams is available available here.

Publicly available sentry nodes are available at:

6ed008bf3a2ad341d84391bf47ea46e75a87e35e@35.233.155.199:26656
7cb9cbba21fdc3b004f098c116e5e2c2ac77ddfb@34.83.218.4:26656
ef36b3167b8599c46b0daf799f089068360c3911@34.83.0.237:26656

Seed Node

d95a9f97e31f36d0a467e6855c71f5e5b8eccf65@34.83.90.172:26656

The hub will be centralized during the combination. The staking tokens are all controlled by iqlusion, and an allocation of doubloons will be issued to all teams registered in the competition.

Documentation about trust periods is available here.

Game of Zones Phase 1b

Phase 1b will begin Monday, May 18th at 7:00am UTC, and will end on Thursday, May 21st at 6:59am UTC.

To recapture the original spirit of Phase 1a, the objectives for Phase 1b will be different than the initial challenge. During Phase 1b, we will be limiting the number of tokens given to each team to improve the stability of the hub, removing restrictions on trust periods in the software, and disqualifying any team that pools their genesis allocated doubloons for additional gas.

Before the phase begins, the GoZ Team will provide detailed documentation that shows participants how to adjust the trust period in the Relayer, how to optimize gas, how to deal with errors and recovery, and how to ensure that a client is kept alive.

The winning team for Phase 1b will have the smallest trust period on their client while maintaining the longest period of liveness. If Team A were to achieve a client trust period of 11 minutes, and Team B were to achieve a trust period of 15 minutes and both teams keep their clients alive for 72 hours, Team A would score higher. If no team is able to maintain a connection for the full 4320 minutes of Phase 1b, the winner will be decided by scoring the length of the longest lived connection over the trust period.

In terms of judging, we will combine the data from Phase 1a and Phase 1b to declare a challenge winner. During this phase of the competition, we expect to provide an overview of the active clients published to the Game of Zones GitHub repo multiple times a day.

Software for Phase 1b

The Game of Zones Team will begin the launch process for the hub on Friday, May 15th around 1:00am UTC. In order to connect to the hub, you will need to be using the following versions of software:

Gaia (cbc3321): https://github.com/cosmos/gaia/releases/tag/goz-phase-1 Relayer (34f0fdf): https://github.com/iqlusioninc/relayer/releases/tag/v0.5.2

And for custom zone operators, update to the following CosmosSDK version:

Cosmos-SDK(80be503): https://github.com/cosmos/cosmos-sdk/releases/tag/goz-phase-1

The Chain ID for the hub will be gameofzoneshub-1b. For each phase of the competition, teams should be prepared to append the phase number to their chain ID before phase launch.

Game of Zones Phase 1

Starting on May 1st, the iqlusion team has launched the iqlusion Game of Zones Hub. Phase 1 of the competition will launch on Wednesday, May 6th at 12AM PST/ 7AM UTC. The Game of Zones scoreboard will be available to participants several hours after the competition kicks off.

The Genesis file is this repo.

We have a publicly available sentry nodes available over p2p:

tcp://7cb9cbba21fdc3b004f098c116e5e2c2ac77ddfb@34.83.218.4:26656
tcp://6e4e0fad3d152b4086e24fd84602f71c6815832d@35.233.155.199:26656
tcp://ef36b3167b8599c46b0daf799f089068360c3911@34.83.0.237:26656

As well as the following open RPC endpoints:

http://34.83.218.4:26657
http://35.233.155.199:26657
http://34.83.0.237:26657

And 1 seed node:

tcp://d95a9f97e31f36d0a467e6855c71f5e5b8eccf65@34.83.90.172:26656

This hub will be centralized during the combination. The staking tokens are all controlled by iqlusion and doubloons will be issued to all players.

You should have recieved 10 million doubloons to your account.

Software for Phase 1

Players should use the following versions of relayer, gaia and/or cosmos-sdk respectively to participate in Phase 1:

CosmosSDK: 7557f0e (PR (closed): https://github.com/cosmos/cosmos-sdk/pull/6127)
Gaia: b617e2b (PR: https://github.com/cosmos/gaia/pull/386)
$ gaiad version --long
name: gaia
server_name: gaiad
client_name: gaiacli
version: 0.0.0-186-gb617e2b
commit: b617e2bd10f179f8a9722c0d9e329a16611e6e2a
build_tags: netgo,ledger
go: go version go1.14 darwin/amd64

Relayer: 2282f8b (PR: https://github.com/iqlusioninc/relayer/pull/221)
$ rly version
version: 0.3.1-5-g2282f8b
commit: 2282f8b33c7025a5e9dc6d7eacfb8c1ad9572897
cosmos-sdk: v0.34.4-0.20200430150743-930802e7a13c
go: go1.14 darwin/amd64

Code of Conduct

The Game of Zones team is dedicated to providing an inclusive and harrassment free experience for contributors. Please visit Code of Conduct for more information.

The Challenge

Game of Zones will launch on May 1, 2020, and will comprise three separate, week-long stages with different Capture-the-Flag style objectives.

Weekly Challenge Rewards:

Cumulative Contest Challenge Rewards will be given for:

The Rules of Engagement

The goal of running an adversarial testnet challenge is to stress test the protocol-level of the Cosmos network and the IBC module. As the community and network operators become acquainted with the IBC module and setting up zones, the code will be pushed to its limit (and perhaps beyond!), as a way to observe its performance before it is released as production-ready software.

Throughout the competition, we expect to see validators running their own zones and attempting to attack other zones through spamming or exploiting configurations. We also expect to see non-traditional configurations of core protocols and software that might provide specific advantages to our network operators. Additionally, we hope to observe numerous multi-hop transactions, proposer priority attacks, double spending attacks, unnoticed equivocations, and other confusion attacks that attempt to disrupt communication and operations between zones and relayers. During Phase 1b of the challenge, any team that pools their genesis allocated doubloons for additional gas will be disqualified.

During the course of the game, it is forbidden to exploit security vulnerabilities in attempt to win the challenge. Participants who exploit software vulnerabilities in the IBC module or Cosmos Network will be disqualified. Participants who use social engineering or malware to attack fellow competitors will also be disqualified from the challenge. If you find a software vulnerability during the competition, please report it to security@cosmosnetwork.dev — once IBC is added to the bug bounty program, all security bugs reported will be eligible for a bonus reward.

The Reward

As a reward for their efforts, competitors could receive prizes from a pool of 100,000 ATOM. At the close of the challenge, we expect to distribute rewards to:

Competitors will be able to track their performance and progress on a scoreboard that will launch at the beginning of the competition. Rewards and reward amounts will be announced to all participants during Closing Ceremonies for Game of Zones. In order to receive rewards, winners will be asked to provide information during a KYC process in order to receive a payout in ATOM.

Eligibility

All members of the Cosmos Community are eligible and encouraged to participate in Game of Zones, but not all participants are eligible to receive rewards from the prize pool.

Important Dates

Save these important competition dates on your calendar:

Wherever possible, we will strive to find times that are convenient for participants distributed across diverse time zones.

Contact Us

If you have any questions about the competition, or just want to say hi, the only way to get a response is to email gameofzones@cosmosnetwork.dev . The Game of Zones team will create a FAQ based on questions that we receive, and regularly update it throughout the course of the competition.

To get the latest Game of Zones release candidate software and track progress for launch, follow @cosmosdevs on Github.

To receive the latest updates about Game of Zones, follow @cosmosdevs on Twitter.

To report violations of the Code of Conduct, please send an email to conduct@cosmosnetwork.dev .