zkEngine
Last updated
Last updated
zkEngine is a trustless, fully decentralized engine designed to meet the requirements of fairness, transparency, and decentralization in the integration of gaming with Web3. It minimizes disruption to game development and operational performance while swiftly verifying output results of engine components through zk-proof's non-deterministic polynomial characteristics.
The four components of the zkEngine include:
zkVRP (Zero-Knowledge Verifiable Randomness Protocol) is a decentralized protocol for fast verification of random number generation. It ensures randomness, tamper resistance, and anti-counterfeiting, crucial for fair and secure gaming environments. The protocol comprises Distributed Key Generation (DKG) and Decentralized Random Number Generation (DRNG).
DKG combines distributed key sharing and threshold signature technology, allowing multiple parties to collaboratively generate a public key without any single party possessing the complete private key. This enhances security against single points of failure and malicious activities.
DRNG relies on the BLS signature algorithm for efficient aggregation of participant-generated signatures into a single random number. It ensures deterministic yet unpredictable random number generation critical for secure applications like encryption and random seed generation.
zkTimelock is a decentralized time-lock protocol based on zkVRP, ensuring that specific operations can only occur after a scheduled time for enhanced game security. It uses cryptographic techniques to prevent premature decryption of encrypted content, without relying on centralized authorities or third-party services. This approach is valuable for timed information releases, contract executions, or asset unlocking scenarios, providing robust security and privacy protection through zero-knowledge proofs. zkTimelock involves two procedures:
TRKG (Threshold Round-Key Generation) involves multiple participants collaboratively generating an encryption key tied to a future time point within zkVRP. Until that time, no participant reveals their information, ensuring the decryption key remains secure. A corresponding public key is also generated, allowing encryption of information that can only be decrypted at the specified time.
TLSS (Timelock Secret Sharing) encrypts sensitive data using the key generated by TRKG, splitting it into parts using Shamir Secret Sharing and Feldman's VSS with zero-knowledge techniques. These parts are distributed among participants, ensuring the secret remains inaccessible until enough participants collaborate to decrypt it using the disclosed public key from zkVRP.
zkAssets is a protocol ensuring secure in-game asset circulation by preventing double-spending, comprising:
zkAssetTree: Uses zero-knowledge proofs to verify asset existence and total supply securely and privately, enabling external validation without accessing detailed data.
Client Side Validation: Validates asset authenticity using complete historical records and signatures, reducing reliance on centralized verification and enhancing decentralization and security.
zkRuntime is a zero-knowledge proof-based runtime environment ensuring program integrity and privacy by running game logic on WASM and EVM bytecode. Each execution produces a zkProof, quickly verifiable to confirm correct execution without revealing details, ideal for high-security applications. Operating principles of zkRuntime:
Program Execution: Game logic is written and deployed within zkRuntime. When executed, it runs within a secure, verifiable computing environment.
Generating zkProof: After execution, zkRuntime produces a zkProof containing sufficient information for external verifiers to confirm correct execution without revealing execution details or data.
Ensuring Logic Integrity: Due to zkProof's properties, any tampering with the program's execution results would be detected during verification. Thus, users and counterparties can trust that program logic was upheld without modification through zkProof verification.