1. What is ProgPoW?
ProgPoW, short for Programmatic Proof-of-Work, is also sometimes used jokingly as PorgyPoW (from the name of the porgy birds from the fifth episode of Star Wars: The Last Jedi) and is an updated version of the Ethash consensus algorithm.
2. What is the purpose of ProgPoW?
The purpose of ProgPoW is to increase the efficiency of CPU/GPU mining and increase its advantage in competition with mining on ASIC devices.
The proliferation of ASIC devices potentially threatens:
- A drop in income for CPU/GPU owners and a decrease in their motivation to keep the network running;
- manipulation of the protocol by the big miners;
- centralization of mining.
With the emergence and proliferation of ASIC devices, developers began to create new iterations of the original PoW (“proof-of-work”) algorithm, designed to be “ASIC-resistant”.
Creating an algorithm that is hardware-proof with selected optimal characteristics has always been a challenge. The Ethash algorithm used in Ethereum mining was also designed to be ASIC-resistant, but proved ineffective.
3. Who developed ProgPoW, when, and how?
ProgPoW was created in 2018 by members of the ifdefelse development team: Miss If (Kristy Lee-Minahan, a.k.a OhGodAGirl), Mr. Else (a.k.a RadixPi), and Mr. Def.
The impetus for the development of ProgPoW came from discussions of ASIC resilience on the Internet in March 2018. An Ethereum developer nicknamed Pipermerriam published EIP958 (Ethereum Improvement Proposal) to make Ethash ASIC-resistant.
The development process was accelerated by the start of sales of Antminer E3, an ASIC miner that works with the Ethash algorithm. Although it later became clear that the Antminer E3 was a rather “raw” device, critical sentiments about ASIC resilience began to grow among users.
In April 2018, Ethereum developer Vlad Zamfir conducted a poll titled “Would you support a hardfork that would make ASIC miners inefficient?” 57% of respondents were in favor of the hardforge.
Around the same time, EIP 969 proposed a change to Ethash.
These two EIPs, the ongoing discussion around ASIC resilience, and the fact that 2018 approximately a thousand people voted on GitHub for an ASIC resilience study prompted IfDefElse members to start developing a truly hardware-resilient algorithm.
4. Technical features of ProgPoW
ProgPoW is an optimized Ethash. As part of the operation of this algorithm, each iteration in the search for a solution to a problem (internal memory access cycle) is a randomly generated program based on the block number. This working model requires full use of the GPU resources and its potential (except for floating point operations and graphics pipelines, which had to be abandoned to make the algorithm suitable for hardware from different manufacturers).
ProgPoW makes the task condition for mining inconsistent – ASIC miner is able to perform only one specific task, as indicated by its very name, “specialized integrated circuit”, and therefore is not flexible enough to work with ProgPoW. Unlike an ASIC, a GPU is capable of rapidly adapting to constantly changing task conditions for mining. Using ProgPoW allows GPUs to achieve performance figures comparable to those of ASICs.
5. Criticism of ProgPoW and the current state
Opposition to ProgPoW was moderate in 2018, as ASIC resilience remained an important goal for the Ethereum community.
In September 2018, Linzhi Mining announced the release of an efficient ASIC device for Ethash. The company took an extremely hostile stance toward ProgPoW and even claimed to be capable of developing an ASIC for ProgPoW. Rumors surfaced that ProgPoW was created by two major GPU manufacturers, AMD and Nvidia.
In early 2019, Ethereum users began voting on ProgPoW. By April 2019, 93% of respondents controlling 2.93 million ETH supported ProgPoW. The Ethereum development team agreed with their opinion several times and then changed their position. In the end, it was decided to implement ProgPoW on the condition that the new algorithm would pass audits. The audits were successful, and in January the developers tentatively agreed on the ProgPoW proposal (EIP-1057).
On February 21, 2020, the developers agreed that the code activation would tentatively take place in July.
On February 24, Vitalik Buterin expressed bewilderment that ProgPoW, once shelved until better times, was back on the agenda and even considered for inclusion in the next Ethereum hardfork.
On February 27, 2020, a number of prominent members of the Ethereum community signed a petition urging them not to activate ProgPoW. They believe the proposal is hasty, and could potentially even lead to a network split.According to them, the necessary support for the adoption of ProgPoW is currently lacking.
However, Ethereum developer James Hancock is convinced that a split is unlikely. Moreover, he believes that ProgPoW is one of the “most ready” proposals for activation. Martin Svende of the Ethereum Foundation agrees with him, also insisting that activation is advisable.
According to Christy Lee-Minahan and Vitalik Buterin, a “lack of communication” is the reason for the serious controversy that has arisen in the community over the new algorithm.
The vulnerability discovered in ProgPoW on March 4, 2020, launched a new round of discussion.
By now, Ethereum users seem to have grown tired of the discussions that have been going on for several years. Vitalik Buterin stated that he was “happy with any solution.