How XHash Works
XHash follows the same high-level principles as Ethash. We recommend reading the Ethash documentation before diving into the differences between the two.Epoch Definition
XHash uses a different epoch length than Ethash. Ethash’s 30,000-block epoch was designed for Ethereum’s 15-second block times. Since Parallax uses 10-minute blocks, the epoch length has been adjusted to 720 blocks, resulting in approximately the same ~5-day interval between DAG regenerations.Use of SHA3
Ethereum’s implementation of SHA3 was based on an earlier Keccak draft. During the finalization of the SHA3 standard, the padding rules were changed — meaning Ethereum’s “sha3_256
” and “sha3_512
” functions are actually Keccak-256 and Keccak-512, not true SHA3.
In contrast, XHash uses the finalized NIST SHA3 specifications rather than Keccak variants.This change improves interoperability with standard cryptographic libraries and eliminates Ethereum’s legacy inconsistency.
Data Aggregation Function
Ethash’s mixing function was inspired by the FNV hash, but not identical to it. XHash replaces this with a direct implementation of FNV-1, which multiplies a prime by each byte (octet) of input data in turn.Seed Hash Definition
To compute the seed hash used for mining on top of a given block, XHash introduces the following algorithm:Mining Algorithm
The mining process in XHash is defined as:2^256 / difficulty
, whereas XHash uses (2^256 - 1) / difficulty
. This subtle change aligns the target range more closely with the full 256-bit integer space, ensuring consistent mining behavior across implementations.