Cryptography

Cryptographic primitives used in ComputeNet

Experimental Feature

This feature is experimental and may change significantly in future versions.

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