ProgPoW, Sha-3, Dag, Oh My! — Changing the Ethereum Classic PoW Algorithm

Stevan Lohja
3 min readNov 26, 2019

--

Ethereum Classic core developers and stakeholders participated in a public call Thursday, November 21, 2019, at 1 pm UTC [1] to discuss proposals to change the Proof of Work (PoW) algorithm.

Miners in a PoW system use GPUs or ASICs running computational cycles to solve a math problem with the goal of reaching a set number previously provided to them. This set number is called a “target”, which is an Ethash hash and the “difficulty” of this “target”. Ethereum Classic and Ethereum are born from the same Ethash PoW mining algorithm and there are many more PoW algorithms used throughout the cryptocurrency space.

Ethash is the current status quo PoW algorithm for Ethereum Classic. However, the below have been proposed and being debated:

  • ECIP-1070 — ProgPoW: Programmable Proof of Work [2]
  • ECIP-1049 — Keccak-256: A variant of the Sha3–256 algorithm. [3]
  • ECIP-1043 — Restrict the Dag: Restrict the size of the Dag in Ethash. [4]
  • ECIP-1047 — Reduce Gas Limit: Reduce the gas limit by 8x [5]
  • No change, keep Ethash.

In short summary, there was progress. ProgPoW was officially rejected and Keccak-256 is inconclusive.

ECIP-1070 — ProgPoW 👎

ProgPoW is a proof-of-work algorithm designed to close the efficiency gap available to specialized ASICs.

ProgPoW was rejected due to a lack of support and has been greatly contentious in both Ethereum Classic and Ethereum communities.

ECIP-1049 — Keccak-256 🤔

Keccak-256 is designed to be more secure than Sha-256 and more performant.

Keccak-256 is a variant of Sha-3–256, but not Sha-3–256 Standard. Therefore, it’s important to separate the two. Most agree Keccak-256 has technical merits, but a decision regarding the algorithm could not be made. Instead, more data and research is needed to make a conclusive decision. It’s a possibility that Keccak-256 would make GPU mining more efficient and ASICs more affordable, but there is a lack of data to drive a concrete decision at this time.

In fact, Ethash’s underlining algorithm is based on Keccak-256.

Ethash —📌

Ethash remains the current status quo as there was no concrete decision to accept an alternative algorithm.

As mentioned above, Ethash = (Keccak-256 + Dag). The Dag contributed memory intensity to the PoW algorithm which was said to be an ASIC resistant feature. However, Ethash ASICs exist and the Dag failed to prevent them. The Dag, as well as Ethereum Ice Age, are arguably bias designs to influence the network to move to Proof of Stake.

In May of 2018, the Ethereum Classic network defused the difficulty bomb.

The following did not have enough time to discuss:

  • ECIP-1043 — Restrict the Dag: Restrict the size of the Dag in Ethash.
  • ECIP-1047 — Reduce Gas Limit: Reduce the gas limit by 8x

Conclusion

ProgPoW is officially rejected and the Ethereum Classic community and core developers continue to discuss features and upgrades, but not limited to algorithm changes.

Listen to the full meeting 🎬

#3 Ethereum Classic Core Devs Meeting — Changing the mining algorithm [2019–11–21]

--

--