Overview
ComputeNet relies on various cryptographic primitives for security. This document describes the cryptographic components and their roles in the protocol.
Hash Functions
Hash functions are used for commitments, identifiers, and integrity:
- SHA-256 — General purpose hashing
- BLAKE3 — High-performance hashing (under consideration)
- Poseidon — ZK-friendly hashing for proofs
Digital Signatures
Signatures authenticate validator attestations and messages:
- Ed25519 — Validator signing keys
- BLS — Aggregatable signatures for attestations
Experimental
The specific cryptographic choices are still being evaluated. Final selections will be documented before mainnet.
Zero-Knowledge Proofs
ZK proofs enable verified computation without re-execution:
- SNARKs — Succinct proofs for general computation
- STARKs — Transparent proofs (no trusted setup)
- Proof aggregation — Combining multiple proofs
Key Derivation
Key derivation for wallet and identity management:
- BIP-39 compatible mnemonic phrases
- Hierarchical deterministic key derivation
- Separate keys for different operations
Encryption
Encryption for confidential inputs and communications:
- AES-256-GCM — Symmetric encryption
- X25519 — Key exchange
- ChaCha20-Poly1305 — Alternative cipher suite
Random Number Generation
Secure randomness is critical for validator selection:
- Verifiable random functions (VRFs)
- Commit-reveal schemes
- On-chain randomness beacons
Implementation Notes
Security considerations for implementations:
- Use audited cryptographic libraries
- Constant-time implementations to prevent timing attacks
- Proper random number generation
- Secure key storage and handling