Consensus

Consensus Mechanism

Change Chain employs a modified Proof-of-Work consensus algorithm optimized for high throughput and energy efficiency. This consensus mechanism ensures that all transactions are securely validated and recorded on the blockchain.

Mining Algorithm

  • Memory-Hard Hashing Algorithm (Equihash-CX):

    • Rationale: To prevent ASIC domination and promote decentralization, Change Chain uses Equihash-CX, a memory-hard algorithm that requires significant RAM resources, making it more suitable for GPU mining.

    • Parameters:

      • n: 144 (memory parameter)

      • k: 5 (time parameter)

      • These parameters balance memory usage and computational effort, ensuring a fair mining environment.

Block Structure

  • Block Header:

    • Version: Indicates the version of the block protocol.

    • Previous Block Hash: Links to the preceding block, ensuring chain integrity.

    • Merkle Root: Hash of all transactions in the block, enabling efficient verification.

    • Timestamp: Unix epoch time when the block was created.

    • Difficulty Target: Current network difficulty.

    • Nonce: Value adjusted by miners to find a valid hash.

  • Block Body:

    • Transactions: List of all transactions included in the block.

    • Miner's Reward Transaction (Coinbase): First transaction that awards the miner their block reward and fees.

Block Time: Targets a sub 1-second block time

Difficulty Adjustment

Dynamic Difficulty Adjustment Algorithm (DAA):

  • Adjusts every block to maintain an average block time of less than 1 second.

  • Uses a Weighted Harmonic Mean (WHM) of recent block times to smooth out fluctuations.

  • Prevents sudden spikes or drops in difficulty, ensuring network stability.

n+1n=DTactual×TtargetD\frac{n+1}{n}=\frac{D}{T_{actual}}\times\frac{T_{target}}{D}

Where:

  • Dn+1D_{n+1}Dn+1​ = Next difficulty

  • DnD_nDn​ = Current difficulty

  • TtargetT_{target}Ttarget​ = Target block time

  • TactualT_{actual}Tactual​ = Actual time taken to mine the last block

n+1n=DTactual×TtargetD\frac{n+1}{n}=\frac{D}{T_{actual}}\times\frac{T_{target}}{D}

Last updated