The project members are having doubts, so they want to wait for an audit by an independent company before making a decision. Developers themselves have different opinions about the new algorithm. So what is ProgPoW? How does it work, what is so special about it and how much can it damage ASIC performance? Let’s get into it.
Let’s start with a bit of history. Ethereum miners and other Ethash/Dagger Hashimoto coins have been quietly doing their thing with GPUs. GPU models differed in hash rate and performance, but these differences have always been reasonable. There was no super-GPU with unrivaled advantages, so everyone was happy.
This ended in April 2018, when Bitmain officially announced the Antminer E3 that boasted a hash rate of 180 mh/s and power consumption of 800 W. After that, other companies started producing ASICs as well.
One might think, what’s so bad about ASICs having better mining results? There are three problems.
- GPU rig owners suffer from drastic loss of profits and lose interest in maintaining network operations;
- Hash rate and power are concentrated in the hands of the minority;
- Decentralization is under threat.
Of course, it takes more than a hundred or even a thousand ASICs to control 51% of the Ethereum network, but the outlook is alarming. This is how the concept of the fight against ASICs was born, and it leads to three essential ideas:
- opposition to potential network centralization;
- prevention of monopoly among mining equipment manufacturers;
- possibility to build the community without fear of outside threats.
Also, there are miners that have spent a lot of money on their rigs and still haven’t paid them off. The large number of ASICs in the Ethereum network may prolong the already long payback period.
The ASIC problem concerns all GPU mining algorithms. How do developers fight against it? There are different approaches. For example, many creators of Equihash projects started switching to Equihash 144.5, because there are no ASICs for it yet. BitcoinZ programmers were the first to hardfork the network and exclude ASICs from their network. Monero developers hardfork the network several times per year, even though it doesn’t seem to help them much – in a couple of months, the ASICs appear again.
You will be forced to throw your ASIC away in a couple of months because it has become obsolete. So why spend lots of money on ASIC production?
ProgPoW is a much more elegant solution. Instead of excluding ASICs from the network, the algorithm would make them less effective, or bring them on par with GPUs. As a result, few people will want to spend a large sum of money for minimal advantage, which will benefit good old graphics cards. This way developers will achieve their goals, and GPU miners will no longer be in danger. Everyone’s happy.
What Is ProgPoW?
ProgPoW stands for ‘Programmatic Proof Of Work’. It’s an extension of the current Ethereum algorithm Ethash and is designed to make graphics cards more competitive and minimize centralization. These tasks are achievable thanks to two algorithm features.
- It regularly changes the statement of problem in mining.
- ProgPoW uses all components of graphics cards to their full extent.
The latter point is especially important because ASICs have a serious drawback. Its name speaks for itself – Application-Specific Integrated Circuit. ASICs are designed to execute only one specific task.
This is the reason why they are so good at picking combinations for blocks solution. But this is the only thing they can do – you can’t use them to play video games. GPUs, on the other hand, are flexible and can be used for both mining and gaming.
Also, the code of the new algorithm is published on GitHub. Everything is transparent. Let’s see who is behind the ProgPoW code.
Who Created ProgPoW?
The algorithm was developed by IfDefElse team. The team consists of Ms. If, Mr. Def and Mr. Else. All team members conceal their identities, except for Ms. If – her real name is Kristy-Leigh Minehan. The team solely focuses on proof-of-work mining algorithms.
By the way, Kristy-Leigh created miners well-known OHGODANETHLARGEMENTPILL for Nvidia GPUs overclocking.
How ProgPoW Works?
First, let’s see where the name comes from. ProgPoW means that each inner loop of memory access, that is, one iteration of problem-solving process, is a randomly generated program based on the block number. The program is designed for efficient operation of commodity GPUs and uses a greater portion of the GPU functionality.
Random sequence of problems makes it impossible to create fixed-function pipelines, and that’s what ASICs manufacturers do. In other words, ProgPoW requires flexibility, and ASICs can’t be flexible.
ProgPoW regularly changes the statement of problem in mining. GPUs are able to adapt quickly, thus narrowing the gap in performance compared to ASICs.
ProgPoW uses almost all components of graphics cards to their full extent. The exception is graphics pipelines and floating-point operations. The creators had to leave them out in order to make the algorithm compatible with equipment made by different manufacturers.
By the way, the IfDefElse team collaborated with Nvidia and AMD engineers to ensure impartiality. Both companies like the idea, because protection from ASICs makes graphics cards more relevant. And relevance means sales – right now AMD and Nvidia are not doing very well in this area.
Major Innovations of ProgPoW
Let’s take a look at five innovations of ProgPoW that distinguish it from Dagger Hashimoto. Thanks to them, the algorithm relies on computing power, bandwidth capacity and memory amount.
- The size of the keccak is reduced from 64-bit keccak-f1600 to 32-bit keccak-f800. The latter is optimized for 32-bit platforms, which is great for graphics cards architecture.
- Larger mix state. That is the larger number of processor registers that can store intermediate values. They are much faster than random access memory because they are inside the processor itself. ASICs have small chips and a smaller number of registers compared with graphics coprocessors. As a result, ASICs are forced to use RAM, which is much slower and deprives them of any potential advantages.
- Addition of a random computing sequence to the main loop. This feature makes it impossible to create an ASIC with a fixed-function pipeline that could have increased operation speed or decreased power consumption.
- Support of small-sized random cache reads with minimum delay. Cached reading forces ASICs to follow the rules of GPU memory hierarchy. This also limits their capacity and performance.
- An increase of DRAM from 128 bytes to 256 bytes. This is good for GPUs. For the sake of better performance, specialized ASICs can’t optimize memory controller for a small number of references.
We tested the algorithm in real life on six graphics cards from two manufacturers. Since ProgPoW uses GPUs almost to the fullest extent, the results are similar to GPU performance when it runs games or graphic design apps.
Here are GPU hash rates on ProgPoW:
AMD Radeon RX 580 – 11.56 MH/s;
AMD Radeon Vega 56 – 16.6 MH/s;
AMD Radeon Vega 64 – 18.7 MH/s;
Nvidia GeForce GTX 1070 Ti – 13.1 MH/s;
Nvidia GeForce GTX 1080 – 14.9 MH/s;
Nvidia GeForce GTX 1080 Ti – 21.8 MH/s.
And now let’s compare the performance of ASICs on ProgPoW:
GPU with GDDR on Ethash – x1;
GPU with GDDR on ProgPoW – x1;
ASIC with GDDR on Ethash – x2;
ASIC with GDDR on ProgPoW – x1.2;
ASIC with HBM on Ethash – x4;
ASIC with HBM on ProgPoW – x1.5.
As a result, the ASIC advantage decreases by as much as 2.6 times. GPU rig owners would not have to worry about their future and potential centralization of cryptocurrency projects.
Opinions about ProgPoW
The ProgPoW integration has been in question since August 2018. ETH Core developers first raised the issue on January 4th. All in all, the majority of leading programmers are in favor of the idea but want more time for testing and implementation.
Criticism by the Community
Opponents of the ProgPow think that the integration of the algorithm would mean the following:
- blind pursuit of Nvidia and AMD interests;
- diversion from Proof of Stake launch;
- potential Ethereum hardfork and network division.
Also, ASICs make the network more secure, and there doesn’t seem to be any proof of mining centralization. What is more important is that after ProgPoW activation, ASIC manufacturers would still secretly develop new technology and use it for cryptocurrency mining. In other words, ProgPoW supposedly wouldn’t change anything.
2Miners has successfully launched an Ethereum ProgPoW test network. ProgPoW pools are online, so anyone can try mining ProgPoW Ether. You could use progminer(unofficial binary) or build from the sources latest version of ethminer from Andrea Lanfranchi(download unofficial binary). Pool dashboard are available here.
Ethminer ProgPow bat file settings:
ethminer -P stratum1+tcp://YOUR_ADDRESS.RIG_ID@progpow-eth.2miners.com:2020?algo=progpow
Progminer .bat file settings:
progminer.exe -P stratum1+tcp://YOUR_ADDRESS.RIG_ID@progpow-eth.2miners.com:2020
This is a test network, so you can only mine test coins that have no real value.
The current State of ProgPoW
The miners have already started to vote for/against ProgPoW. By the term “miners” we mean “mining pools”, because it’s they who send new block solutions to the network. The major mining pool Ethermine was the first to start the voting process. If the pool supports ProgPoW it adds a special “PPYE(S)” tag to its blocks. If the pool is against it adds “PPNO”.
There are no pools by now which is against ProgPoW. All of them either vote YES or just stay away from this problem. Etherchain has created a special page with voting results from the last 24h. As you can see over 50% of Ethereum miners voting for ProgPoW.
In the same time Core Devs also evaluating signals from coin holders at progpowcarbonvote.com. At the moment 2 012 835 Ether (~2% of total ETH supply) stated their opinion on ProgPoW, with 1 821 067 Ether voting Yes.
Despite wide support of ProgPoW, Ethereum Core Devs still keep silence on next steps and doesn’t provide much information about possible hardfork date.
More than 50% of the #Ethereum hashrate is voting in favor of ProgPoW https://t.co/VcvTurIMVu It is time to move along and merge #ProgPoW support into Geth & Parity and ultimately decide on a block number when ProgPoW will activate on the Ethereum main net.
— Bitfly (@etherchain_org) February 17, 2019
Ethereum Cat Herders(the group coordinating hardforks within Ethereum Community) wants to audit the ProgPoW code first before implementing the new algorithm. At the moment devs are searching for the best available companies to do the audit and trying to raise $100K to perform it. It’s not clear why security audit should be founded with bounties and crowdfunding campaign, and why the Ethereum Foundation itself doesn’t want to take care of it. Choosing a neutral third-party auditor is also a big concern.
In a meantime, Parity already merged full ProgPoW support into the client.
We think ProgPoW integration is a great idea. Not only can the algorithm put an end to ASICs, but it can also help to maintain the affordability of mining. The entry threshold will stay low, so decentralization will still be real. We hope that the ProgPoW integration on the Ethereum network won’t take as long as the Constantinople hardfork.