ProgPoW: A Programmatic Proof of Work

What is ProgPoW?

ProgPoW, or Programmatic Proof of Work, is an enhanced version of the current Ethereum mining algorithm, Ethash. Like Ethash, ProgPoW mining is accessible with commodity consumer hardware known as Graphics Processing Units (GPUs). GPUs are readily available computer hardware distributed around the world from a multitude of large and small retailers.

The ProgPoW EIP can be found on Github at

The full ProgPoW code base can be found at

Why is ProgPoW better than Ethash?

While Ethash was designed to utilize the memory component of a GPU, ProgPoW was designed to make use of all parts of currently available GPU architectures. Included in the algorithm design are tuning parameters to allow adaptation to changing production and technologies.

In addition, as ProgPoW attempts to saturate all parts of a commodity GPU, the efficiencies available through specialty hardware design and production may be reduced versus the current ethash algorithm. Effectively, to design a specialty hardware device for ProgPoW is to design something very similar to a consumer grade GPU.

What does this mean for Ethereum?

The Proof of Work component of Ethereum has existed longer than expectations. While progress is being made to move to Serenity, the Ethereum 2.0 Proof of Stake and sharding implementation, the Ethereum 1.0 and 1.x network will operate under a Proof of Work consensus mechanism for the medium term. With the increased lifetime of PoW, it is important to keep aligned with the initial intention of Ethereum’s PoW mechanism: to be ASIC resistant and accessible via commodity hardware.

Why does continued ASIC resistance matter?

A large portion of the ethereum network user-base was bootstrapped through mining incentives. With hundreds of thousands of active wallet addresses associated with ethereum mining, the network has successfully attracted users by keeping its mining algorithm accessible via readily available consumer grade hardware.

With the introduction of specialty fixed function hardware (ASICs), the barrier to entry for many market participants increases. While consumer grade hardware can be purchased at many online and brick and mortar retailers, ASICs are typically only available directly from the manufacturer, and the concentrated R&D work to create a performant ASIC allows manufacturers to dictate the release schedule (and manufacturers may elect to control who is able to purchase their ASIC, and in what quantities). The economic incentives associated with developing a better ASIC are enormous, creating substantial misalignments of interest among network participants and stakeholders.

Because of the distribution channel differences between Fortune 100 technology companies and cryptocurrency mining ASIC manufacturers, the prevalence of ASIC hardware in a network also increases the centralization of hashpower. With a smaller pool of potential buyers, the ASIC hardware is inherently distributed to fewer participants.

Without readily accessible hardware competing in the ethereum mining ecosystem, the large user-base that has been built since 2015 is put at risk.

Where can I read about Ethereum's plan to be ASIC resistant?

The Ethereum Yellow Paper outlines the decision to target ASIC resistance for the provision of network security and transaction processing services. The Yellow Paper reads:

11.5. Mining Proof-of-Work. The mining proof-ofwork (PoW) exists as a cryptographically secure nonce that proves beyond reasonable doubt that a particular amount of computation has been expended in the determination of some token value n. It is utilised to enforce the blockchain security by giving meaning and credence to the notion of difficulty (and, by extension, total difficulty). However, since mining new blocks comes with an attached reward, the proof-of-work not only functions as a method of securing confidence that the blockchain will remain canonical into the future, but also as a wealth distribution mechanism.

For both reasons, there are two important goals of the proof-of-work function; firstly, it should be as accessible as possible to as many people as possible. The requirement of, or reward from, specialised and uncommon hardware should be minimised. This makes the distribution model as open as possible, and, ideally, makes the act of mining a simple swap from electricity to Ether at roughly the same rate for anyone around the world.

Secondly, it should not be possible to make super-linear profits, and especially not so with a high initial barrier. Such a mechanism allows a well-funded adversary to gain a troublesome amount of the network’s total mining power and as such gives them a super-linear reward (thus skewing distribution in their favour) as well as reducing the network security.

One plague of the Bitcoin world is ASICs. These are specialised pieces of compute hardware that exist only to do a single task (Smith [1997]). In Bitcoin’s case the task is the SHA256 hash function (Courtois et al. [2014]). While ASICs exist for a proof-of-work function, both goals are placed in jeopardy. Because of this, a proof-of-work function that is ASIC-resistant (i.e. difficult or economically inefficient to implement in specialised compute hardware) has been identified as the proverbial silver bullet.

How do I support ProgPoW?

As an investor, participate in the ProgPoW carbon vote at

As a miner, choose to mine on a pool that is signaling PPYE (ProgPoW YES) to the network.

As of February 18th, the following pools are signaling PPYE:

How does miner voting work?

Each mined block has a field called extra data. Pool operators decide what goes into the extra data, usually it contains an identifier for the pool, such as “ethermine” or “sparkpool”. By adding PPYE as the first characters in this field, the pool can signal that it is voting yes to ProgPoW on behalf of its users. The results of the miner vote and which pools are currently signaling for ASIC resistance can be tracked at:

Where can I learn more

There is an active community discussing ProgPoW as well as many other aspects of the Ethereum ecosystem. It can be accessed and found on the following: