Welcome to ZK Multiverse, where learning cryptography becomes an exciting journey through a universe filled with challenges, puzzles, and practical applications. This web game is designed to help developers master the art of building zk circuits using Circom or Noir while understanding the underlying cryptography and mathematical principles.
Cryptography can be daunting, especially when most of the available resources focus on theoretical concepts with little emphasis on hands-on practice. ZK Multiverse aims to change that by providing an engaging and interactive learning environment.
-
Too Much Theory, Not Enough Practice: Cryptography is often surrounded by complex theories with few practical examples. ZK Multiverse bridges this gap by offering practical, real-world scenarios where you can apply what you’ve learned.
-
Information Overload: With so many cryptographic concepts and resources available, it’s easy for developers to get sidetracked or overwhelmed. ZK Multiverse guides you through a curated learning path, ensuring you stay focused and gain the essential skills needed to excel in zero-knowledge proof development.
- Zero-Knowledge Circuits: Gain practical experience in building zk circuits using Circom or Noir.
- Cryptography Fundamentals: Understand the basics of cryptography, including essential concepts like encryption, decryption, hashing, and more.
- Mathematical Foundations: Dive into the mathematical principles that underpin cryptographic techniques, with hands-on exercises to solidify your knowledge.
-
Interactive Challenges: Complete various challenges that simulate real-world cryptographic problems. Each challenge is designed to help you apply your knowledge in a practical context.
-
Guided Learning Path: Follow a structured path that gradually increases in difficulty, ensuring you build your skills step-by-step without feeling overwhelmed.
-
Fun and Engaging: ZK Multiverse transforms learning into an adventure, making the process enjoyable and memorable.
To get started with ZK Multiverse, follow the steps below:
-
Clone the Repository: Begin your journey by cloning this repository to your local machine.
git clone https://github.com/yourusername/zk-multiverse.git cd zk-multiverse```
-
Install Dependencies: Install the required dependencies to run the game.
yarn install
-
Run a Local Network: Start a local Ethereum network using Hardhat in the first terminal.
yarn chain
-
Deploy the Test Contract: Deploy a test smart contract to the local network in a second terminal.
yarn deploy
-
Start Your NextJS App: Launch the NextJS app in a third terminal.
yarn start
Visit your app on: `http://localhost:3000\`. You can interact with your smart contract using the `Debug Contracts` page.
-
Run Smart Contract Tests: Test your smart contracts using Hardhat.
yarn hardhat:test
We welcome contributions! Whether you’re adding new challenges, improving the existing codebase, or suggesting new features, your input is valuable.
-
Fork the Repository: Create a fork of the repository on GitHub.
-
Create a Feature Branch: Work on your feature in a new branch.
git checkout -b feature-name
- Submit a Pull Request: Once your feature is complete, submit a pull request for review.