Search projects, hackathons, sponsors and tech

    ← All projects

    ZK Shroud Arena

    Real-time proof-of-location game with custom zones

    Demo

    About

    The problem it solves **ZK Shroud Arena** is a zero-knowledge, location-privacy battle royale game. Players must stay within a dynamic safe zone made of **H3 cells** to earn rewards while keeping their location completely private. This is enabled by our **Rust** and **Arkworks** based ZK circuit, which proves that a point is within the designated area without revealing coordinates. It supports high-fidelity maps, generates proofs in **under 1 second**, and has a circuit size of only **around 42,000 constraints**, making it suitable for real-time and IoT-constrained environments. Unlike existing approaches that support only one simple shape, our circuit accepts up to **1,024 convex polygons** with configurable vertex limits (default: 6). Because the circuit supports convex polygons with up to 6 vertices, it is naturally compatible with the **H3 grid system**, which represents each cell as a hexagon. The circuit is written in **Rust** for ZK ecosystem compatibility and is **MIT licensed** for open use. Beyond gaming, this circuit can be applied to other privacy-preserving location use cases. For example, ensuring that a **rented car stays within a permitted zone** without exposing its actual route, or enforcing zone compliance in **airsoft matches** without revealing player positions. Because the proof generation time is fast enough for real-time use and the circuit can represent complex areas, this project aims to serve as a foundation for what **proof-of-location protocols** should be capable of.

    How it's made

    Challenges we ran into ## Arkworks Complexity Arkworks is a robust library for building ZK circuits, supporting both Groth16 and PLONK and offering BN254 and BLS12-381 curves. We chose Arkworks with Groth16 and BN254 for fast proof generation. However, the **lack of documentation** and **API changes across versions** (current version 0.5) make development difficult. Even simple tasks, such as initializing Poseidon, could require importing many several crates. We managed to work through these challenges by consulting our reliable friend, ChatGPT o3. ## Blockchain Integration Most ZK frameworks provide a straightforward way to generate a Solidity verifier, but Arkworks does not. Fortunately, the community project **arkworks-solidity-verifier** works surprisingly well. Though, we had to downgrade Arkworks to version 0.3 to make it work, since that repository has not been updated in two years. ## GPS Accuracy Limits GPS is highly accurate in outdoor environments but becomes unreliable indoors. If the allowed zone is too small and does not account for this limitation, players might appear to be outside the zone even when they are actually inside. On the bright side, GPS remains reliable in most outdoor settings, even in areas with tree cover, as long as the user stays outside. ## GPS Spoofing Concerns This project assumes that the GPS signal is not spoofed and that the proof generation process is done with some trusted hardware, such as a box inside a rented car, where no one should open the box for modifications. As for ways to overcome this problem, we encourage people in the future who read this project description to continue improving and to set a newer standard for proof-of-location protocols even further.