© 2021 Long Rock Labs

20 August 2021

The exploration era begins

Dark Forest is a decentralized MMO game where player expands their galactic empire by conquering planets in the universe. The game uses cryptography (in this case, zkSNARKS) to keep information about the universe secret. When a new player starts playing the game, they are greeted with an empty map and their home planet. The first thing a player has to do is to explore the universe to find suitable planets to be conquered.

With this article, we unveil a new explorer that enables players to explore the universe at light speed. From our testing, it's possible to explore between 700 000 and 800 000 locations per second for less than 10$ per hour.

Screenshot of Blue Space in action.

The explorer is open source and we provide binary packages for Ubuntu. You need to install the accompanying plugin after installing the explorer on your system. The explorer includes a preview of the GPU-powered explorer. This version of the explorer requires Nvidia Cuda to be installed. The GPU explorer does not have all the performance optimization that the CPU explorer has. The GPU miner is targeted at users that have a high-end GPU in their system and want to take advantage of it while playing Dark Forest. If you have any problem installing the explorer, please drop us a line on Twitter or Discord.

How the explorer works

Exploration in Dark Forest is done by hashing the coordinate of a point in the universe to obtain a unique hash. You can think of a hash function as a function that is easy to compute forward but difficult or impossible to reverse. Dark Forest uses a MiMC-like hash function that takes as input the coordinates (x, y) of a location in space and returns a hash. The hash is then used to compute if a planet exists at the given location and its attributes.

The MiMC hash. Image from https://byt3bit.github.io/primesym/mimc/

The hasher uses a sponge construction where the values of x and y are absorbed subsequently. The Blue Space explorer reduces the total number of operations required to mine a chunk of space by caching the state of the hasher for each x coordinate. This optimization reduces the number of operations to half.

Sponge construction. Thanks to Wikipedia for the image

If you are interested in the low-level details of the explorer or want to contribute, you can find the source code available on GitHub.

Francesco Ceccon

Francesco Ceccon