Skip to main content

BIP-101: Multi-Algorithm Proof-of-Work

BIP: 101
Title: Multi-Algorithm Proof-of-Work (mPoW)
Author: Bitmark Development Team
Status: Final
Type: Standards Track
Created: 2018-06-01
Activated: Block 450,947
License: MIT

Abstract

This document specifies the multi-algorithm proof-of-work (mPoW) hard fork activated at block 450,947. This upgrade introduced eight distinct mining algorithms, Dark Gravity Wave v3 (DGWv3) difficulty adjustment, and merged mining (AuxPow) support for all algorithms.

Motivation

The original single-algorithm (Scrypt) design faced several challenges by 2018:

  1. ASIC Centralization: Scrypt ASICs had become dominant, concentrating mining power
  2. Hardware Obsolescence: GPU miners were increasingly excluded
  3. Security Concerns: Single-algorithm chains are vulnerable to rental attacks
  4. Mining Diversity: Different hardware types (CPU, GPU, ASIC, FPGA) should all participate

Multi-algorithm proof-of-work addresses these issues by:

  • Distributing hash power across multiple algorithms
  • Enabling participation by diverse hardware types
  • Increasing attack costs (attacker must control majority of ALL algorithms)
  • Future-proofing against algorithm-specific hardware advances

Specification

Fork Activation

ParameterValue
Activation MethodSupermajority consensus
Threshold75% of last 100 blocks signaling version ≥ 4
First Fork Block450,947
Last Pre-Fork Block450,946

Mining Algorithms

Eight proof-of-work algorithms are supported:

IDNameTypeWeightPrimary Hardware
0SCRYPTMemory-hard8,000ASIC/GPU
1SHA256DCPU-bound1ASIC
2YESCRYPTMemory-hard800,000CPU/GPU
3ARGON2DMemory-hard4,000,000CPU
4X17Chained hash8,000GPU
5LYRA2REv2Memory-hard8,000GPU
6EQUIHASHMemory-hard8,000,000GPU/ASIC
7CRYPTONIGHTMemory-hard8,000,000CPU/GPU

Block Version Encoding

The 32-bit block version field encodes algorithm and protocol information:

Bits 0-7:   Standard version number (minimum 4 for fork)
Bit 8: AUXPOW flag (merged mining)
Bits 9-11: Algorithm selector (0-7)
Bit 12: UPDATE_SSF flag (scaling factor update)
Bits 16+: Chain ID (for AuxPow)

Dark Gravity Wave v3 (DGWv3)

Each algorithm maintains independent difficulty, adjusted using a modified DGWv3:

ParameterValue
DGW Timespan960 seconds (16 minutes)
Lookback Window25 blocks
Target Per Algorithm16 minutes
Combined Target2 minutes

Surge Protector

Prevents algorithm dominance when blocks arrive too quickly:

  • Trigger: 9 or more consecutive blocks from the same algorithm
  • Action: Divide difficulty by 3
  • Purpose: Discourage single-algorithm mining bursts

Resurrector

Restores mining viability for stalled algorithms:

  • Trigger: No blocks from algorithm for >160 minutes
  • Action: Multiply difficulty adjustment proportionally
  • Purpose: Prevent algorithm abandonment

Merged Mining (AuxPow)

All eight algorithms support merged mining:

ParameterValue
Bitmark Chain ID91 (0x5B)
Strict Chain IDtrue
Merge Mining Marker0xfa62656d6d ("fabe mm")

Rationale

Why Eight Algorithms?

Eight algorithms provide:

  1. Diversity: Multiple hardware types can participate
  2. Security: 51% attack requires controlling majority of ALL algorithms
  3. Redundancy: If one algorithm is compromised, others continue
  4. Balance: Power of 2 simplifies subsidy division

Why DGWv3?

Dark Gravity Wave offers:

  • Per-block adjustment (responsive to hashrate changes)
  • Smooth difficulty transitions
  • Proven in production (Dash, others)
  • Customizable for multi-algorithm use

Why Surge Protector and Resurrector?

  • Surge Protector: Prevents mining pools from dominating with burst mining
  • Resurrector: Ensures all algorithms remain mineable, prevents permanent abandonment

Backward Compatibility

This is a hard fork. Nodes running pre-fork software will:

  • Reject blocks with version ≥ 4 and algorithm bits set
  • Reject AuxPow blocks
  • Fork off at block 450,947

All nodes must upgrade to version 0.9.7 or later.

See Also

References

This document is licensed under the MIT License.