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:
- ASIC Centralization: Scrypt ASICs had become dominant, concentrating mining power
- Hardware Obsolescence: GPU miners were increasingly excluded
- Security Concerns: Single-algorithm chains are vulnerable to rental attacks
- 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
| Parameter | Value |
|---|---|
| Activation Method | Supermajority consensus |
| Threshold | 75% of last 100 blocks signaling version ≥ 4 |
| First Fork Block | 450,947 |
| Last Pre-Fork Block | 450,946 |
Mining Algorithms
Eight proof-of-work algorithms are supported:
| ID | Name | Type | Weight | Primary Hardware |
|---|---|---|---|---|
| 0 | SCRYPT | Memory-hard | 8,000 | ASIC/GPU |
| 1 | SHA256D | CPU-bound | 1 | ASIC |
| 2 | YESCRYPT | Memory-hard | 800,000 | CPU/GPU |
| 3 | ARGON2D | Memory-hard | 4,000,000 | CPU |
| 4 | X17 | Chained hash | 8,000 | GPU |
| 5 | LYRA2REv2 | Memory-hard | 8,000 | GPU |
| 6 | EQUIHASH | Memory-hard | 8,000,000 | GPU/ASIC |
| 7 | CRYPTONIGHT | Memory-hard | 8,000,000 | CPU/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:
| Parameter | Value |
|---|---|
| DGW Timespan | 960 seconds (16 minutes) |
| Lookback Window | 25 blocks |
| Target Per Algorithm | 16 minutes |
| Combined Target | 2 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:
| Parameter | Value |
|---|---|
| Bitmark Chain ID | 91 (0x5B) |
| Strict Chain ID | true |
| Merge Mining Marker | 0xfa62656d6d ("fabe mm") |
Rationale
Why Eight Algorithms?
Eight algorithms provide:
- Diversity: Multiple hardware types can participate
- Security: 51% attack requires controlling majority of ALL algorithms
- Redundancy: If one algorithm is compromised, others continue
- 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
Copyright
This document is licensed under the MIT License.