TSP-0003 Consensus
This proposal defines the genesis consensus algorithm of Tondi: a BLAKE3-based PoW function augmented with light memory-touch randomness (MTR, Memo...
Proposal Number: TSP-0003
Proposal Name: ASIC-Resistant Proof-of-Work Hashing with BLAKE3 + Memory-Touched Randomness (MTR)
Proposal Status: Draft
Author: Tondi Foundation Development Team
Creation Date: 2025-05-05
Target Version: Tondi Mainnet Genesis (v2026b)
Protocol Scope: Consensus hashing (mining), PoW algorithm structure, client validation logic
๐ Overview
This proposal defines the genesis consensus algorithm of Tondi: a BLAKE3-based PoW function augmented with light memory-touch randomness (MTR, Memory-Touched Randomness). The design combines the cryptographic performance of BLAKE3 with randomized memory access patterns to achieve the following goals:
- Delay the entry of specialized ASICs, extending the CPU/GPU-dominant phase;
- Preserve fast verification for full nodes and light clients, ensuring compatibility with DAG-based high-frequency block production;
- Align with TSP-0002, which standardizes BLAKE3 as the universal hash across the protocol;
- Provide adjustable parameters for future tuning of the โanti-centralization factor.โ
๐ฏ Core Objectives
- ASIC Resistance: Raise the cost and complexity of designing ASICs by enforcing randomized memory reads that disrupt pure hash-pipeline optimization.
- Fair Mining: Encourage broader participation from CPUs and GPUs, maintaining a decentralized distribution of hashrate in the early growth phase.
- Fast Verification: Ensure that while mining is memory-bound, verification remains lightweight (only one hashing + memory path validation).
- Eco-conscious Mining: Keep the memory footprint moderate (e.g., 64โ128 MB scratchpad), avoiding wasteful energy arms races while still neutralizing ASIC efficiency gains.
- Future Flexibility: Allow parameters such as memory size, number of touches, and entropy sources to be soft-fork adjustable.
๐ง Technical Structure: BLAKE3-MTR (Memory-Touched Randomness)
Hashing process:
-
Inputs:
header_bytes = serialized_block_header nonce = 64-bit random value -
Seed Derivation:
seed = blake3(header_bytes || nonce) -
Random Memory Access Path:
-
Pre-fill a pseudo-random memory layout (
scratchpad, e.g., 64 MB). -
Derive offsets:
access_offsets = derive_offsets(seed, N=128)
-
-
Mixing Step:
-
Collect memory fragments:
scratchpad_data = read(memory_layout, access_offsets) -
Combine into digest:
pow_digest = blake3(header_bytes || scratchpad_data)
-
-
Difficulty Comparison:
if pow_digest < target_difficulty: success
๐ Parameter Specification (Recommended Defaults)
-
Hash core: BLAKE3 v1.3 (256-bit digest).
-
Memory footprint: 64 MB scratchpad (scalable to 128 MB via future soft fork).
-
Access count: 128 random reads per attempt.
-
Derivation function: Offsets derived via keyed BLAKE3 with domain separation.
-
Verification: Only requires re-running BLAKE3 with the same memory access path; O(1) complexity for clients.
-
Domain separation tags:
"tondi.pow.seed"for seed derivation"tondi.pow.offsets"for memory offset schedule
โ Technical Advantages
- ASIC deterrence: Random memory access prevents linear hash pipelines; ASICs would require large, fast SRAM banks, increasing cost and reducing efficiency advantage.
- Eco-friendly: By fixing memory use to tens of MB rather than gigabytes, energy waste is minimized while still achieving resistance.
- DAG compatibility: Lightweight verification fits into Tondiโs high-frequency block model without bloating validation.
- Cross-platform feasibility: Optimized implementations available in Rust, C, ARM (NEON), and WASM, ensuring broad compatibility.
- Soft-fork adjustable: Parameters (memory size, N, access entropy) can be tuned later without breaking consensus history.
โ ๏ธ Considerations
- Not permanent ASIC-proof: The goal is to delay ASIC dominance (2โ5 years), not eliminate it.
- Dynamic evolution: Regular TSP upgrades may adjust parameters to maintain decentralization.
- Cross-chain deployment: This PoW can become the reference standard across the Avato federated chain family.
๐ Implementation Plan
-
Phase 1 โ Reference Implementation (2025 Q2โQ3)
- Implement BLAKE3-MTR miner in Rust + C bindings.
- Benchmark CPU vs GPU performance across Linux, macOS, ARM devices.
- Publish verification library for light clients.
-
Phase 2 โ Testnet Deployment (2025 Q4)
- Launch PoW testnet with enforced BLAKE3-MTR.
- Collect performance metrics (hashrate, block propagation, energy profile).
- Security audit for collision/fairness issues.
-
Phase 3 โ Mainnet Genesis Integration (2026 Q1)
- BLAKE3-MTR locked as the genesis PoW algorithm.
- Distribute mining SDKs (Rust, Go, Python, WASM).
- Establish monitoring of hashrate distribution to detect early ASIC entry.
-
Phase 4 โ Eco-Monitoring (post-genesis)
- Introduce energy profile dashboard to track network efficiency.
- Research hybrid extensions (PoW + staking/PoS) for further eco-balance.
- Prepare TSP follow-up proposals for parameter tuning.
๐ Notes
- Inspiration is drawn from RandomX but simplified: no heavy VM or JIT overhead.
- This design avoids massive RAM usage (as in RandomX), keeping mining accessible to consumer-grade hardware while maintaining ASIC resistance.
- Future upgrades may integrate hybrid consensus (PoW + staking contracts within the Lexum framework).
- BLAKE3-MTR is explicitly designed to prioritize decentralization and environmental sustainability over maximum raw hashrate.
If approved, TSP-0003 will establish the genesis Proof-of-Work standard for Tondi, securing the network with an eco-conscious, ASIC-resistant, BLAKE3-based hashing function.