ProgPoW : the never-ending debate
Disclaimer : I’ve been involved in the “implementation” (not design) of he algo and I’m listed among the proponents. What follows is my, and mine only, view of the current situation.
Where does ProgPoW come from ?
ProgPoW (Programmable Proof of Work) is an additional layer on top of well known algorthm ethash which is actually used by both ethereum and ethereum classic to seal their respective blocks. I won’t dig that much into technicalities of the algo but there are sources where you can learn more about that. (Understanding ProgPoW)
The foundation of ProgPoW proposal is to improve/extend the characteristics of resistance to ASIC’s penetration in the PoW mining of the chain. This concept is clearly stated in Ethereum’s Yellow Paper and, to me, sounds like a strong social contract among the project and its userbase. Ethash has proven good so far attaining far better results than many other chain projects relying on ProofOfWork. Nevertheless, proposals to change ethash, came to light even before ProgPoW was released (EIP-958)
The proposal of ProgPoW as formally advanced with EIP-1057 by a team of three people bound under the single nickname of IfDefElse where Miss If is Kristy Leigh Minehan (aka OhGodAGirl) while Def and Else preferred to stay anonymous.
Why “ASIC resistance” is a thing ?
Is not a mistery early adopters of PoW chains, and their minted coins, are miners. GPU (graphic cards) miners in particular: the large availability of hardware, the relative small investments needed to begin and the availability of a large base of mining softwares allows the bloom of a very dis-homogenous community (of miners) which range from hobbysts/enthusiasts to large “farms”. This means an enforcement of a “de-centralized and distributed” mining activity. On this foundation a large (really large) number of miners got onboarded on the ETH ship and began transferring value from fiat economy (capex and opex) to crypto economy providing two benefits:
- secure the chain
- contribute to the flourishing of trading for minted tokens
The 2017/2018 hype have pushed further investments and now, along with small to micro sized mining facilities, large farms are also struggling with razor thin margins yet providing, all of them combined, an astonishing hashrate on ethereum chain. This despite a clear roadmap for ethereum to replace PoW with PoS (if you don’t know what PoS, in the scope of this argument, is enough to understand PoS does not require any kind of hardware to “mine”).
The advent of “ethash” ASICs could change, not trivially, how mining of Ethereum is actually provided. Should machines with superlinear advantages over “regular” GPUs begin to hash ethereum, we should expect the vast majority of “GPU miners” (meant as individuals) abandon the chain weakening the plural composition of “users” (yes miners are also users eth) who participate the project.
My main concern is hardware availability: while you can buy a GPU in the store nearby, you actually can’t with mining ASICs. You won’t find them on shelves along with PCs or TV sets. If you want them you need to directly order from manufacturer which imposes advanced payments and, in some cases, may also be unable to ship to your country. You have to deal with customs and, if any technical problem should arise, you’d have to deal with very complex return policies and or replacements.
This leads to a consequence : only large buyers will be favored in accesing ASICs and, due to economies of scale, will easily concentrate mining power in a handful of actors. But what is most important is they will do everything in their power to prevent their investments and ROI. Meaning they won’t particularly like the transition to PoS planned for ethereum. Why ? It is simple: while GPU miners have backup options (resell, change coin, use for rendering or AI) when mining is not profitable or impossible, ASIC owners don’t. Their hardware becomes as valuable as their weight in scrap metal in minutes.
So why ProgPoW ?
ProgPoW (or better Ethash-ProgPoW) is not an “ASIC proof” algorithm, which means an ASIC may be built on top of it. But that ASIC would be dramatically more difficult to build and won’t have that incredible advantage over commodity GPUs. Its advantage would be limited to a single figure multiplier (1.5x to 2 x) thus levelling the field for dis-homogenous hardware and by consequence keeping at maximum extent possible the plurality of miners.
To me this also binds to another important aspect: probably the most evident rationale behind the adoption of PoS is the environmental one: prevent “waste” (arguable definition) of gazillions of Watts to secure the network. If we could also prevent the rush to build and market billions in ASICs which eventually will be totally useless after the complete transition to PoS would be a further compliance for Ethereum in his environmental friendlyness.
Is ProgPoW secure ?
The tormented life of EIP-1057 has led to the conduct of a full audit from which no flaws emerged. Private testnets have also ran the algo for over a million blocks without experiencing any issue. This said an official eth tesnet to adopt it (Ropsten ? Goerli ?) would help dissipate any concern.
Which are the reasons to oppose ProgPoW ?
What follows is the result of my personal efforts in pushing ProgPoW and all I’ve collected with personal messages or public statements on Twitter, Reddit, Ethereum Magicians, Gitter … etc. I’ll try to summarize them providing counterarguments when possible. Probably something will be missing and any addition in the comments is welcome (as long is detailed and not individually addressed).
Designers of ProgPoW are not trustable.
Among the mostly raised concerns ther’s the anonymity of Def and Else (from IfDefElse) and the controversial figure of Miss If (aka OhGodAGirl — aka Kristy Leigh Minehan).
I strongly believe in the right of Def and Else to say anon as long as they want especially in light of recent (very harsh) opposition to ProgPoW. Talkin about Kristy I knew her only in late 2018 (had emails and voice calls all related to ProgPoW) and in her defense I must say I’ve always found a kind and helpful person. I don’t know anything about her previous enterprises in the crypto space but I always found her hints and insights of the mining world extremely accurate and enlightning.
This despite the strong efforts by Bob Summerwill who tried in any possible way to delegitimize and diminish her personally.
To counter argument this opposition I think the best words are from Hudson Jameson in his reddit post
the meaning of PR as a Pull Request — don’t trust the person,trust the code.
especially when a full audit has been carried out.
ProgPoW has been funded by NVIDIA
This is the most bizarre argument I heard.
IfDefElse have stated multiple times the code has been reviewed by NVIDIA and I personally had email conversations with AMD while trying to solve an issue for OpenCL implementation. Other than this there is no evidence of any funding from either of those: only FUD.
ProgPoW is faster on NVIDIA cards than on AMD cards
This is a bit paranoid even if it has been addressed and amended (see below).
Basically AMD cards owners (which apparently are majority in ethash gpu mining) complain about a catch-up in performances by NVIDIA competitors completely disregarding the fact that cutting-off ASICs is benefit for both NVIDIA and AMD owners. Somehow the objection, to me, sounds like whiny babies saying “better nothing than something”.
Nevertheless the problem has been studied and addressed by the release of ProgPoW specs 0.9.3. which reduce the computational power required thus closing the gap amongst AMD and NVIDIA implementation.
ProgPoW reduces the hashrate thus making the chain less secure
This objection denotes a great misunderstanding about how the safety of a PoW chain is measured. Hashrate is only an (almost) meaningless number while the real important thing to take into account is the amount of energy spent to produce that hashrate. If you have two algos compared (say ethash and ProgPoW) and the first (ethash) is twice as fast than the second (ProgPoW) but the overall amount of energy spent is the same than security is the same.
Directly related to this there is the fear a reduced hashrate may have an impact on block timings: this is only true for a very short amount of time. The difficulty adjustment algo enforced in ethereum allows retargeting the normal 12~13 seconds block time in less than 12 hours if ProgPoW should be depolyed on main net.
Verification of ProgPoW proof of work takes longer than the one of ethash causing more latency
Verification of PoW in ethash is already a problem which makes it impractical on light devices. On a “weak” single threaded Celeron a full ethash verification takes roughly 3.5 milliseconds while the same verification for ProgPoW algo takes about 5.3 to 5.5 milliseconds.
This increase is totally negligible especially considering a full block verification takes from 200 to 280 milliseconds.
Also ProgPoW doesn’t add and doesn’t remove anything to memory allocation requirements for a PoW verification wrt ethash.
ProgPoW is a distraction from PoS
This objection has already been raised against EIP-958 which was in 2018. We’re two years away from it and yet no hard dates are set for transition phases. This is no one fault : you can’t rush research. But would be wise and safe to keep improving the ETH 1.x chain as it if it had to last for another 5 years (at least). Migration to eth 2.x do need a healty and running PoW chain.
In addition to that :
- eth 2.x development team is totally separated and does not overlap with eth 1.x team
- two main nodes softwares (Geth and Parity) have already the implementation : worth to mention Geth implementation is in a branch which needs to be rebased while Parity has already merged in master.
- audit has already been carried out (and paid by the EF — original donors refunded)
I really do not see any delay to PoS.
ProgPow addresses a threat which is NOT current nor measurable.
While I do agree measuring origin of hashrate is a tough task I think most of EIPs do not address imminent problems or threats rather try to look in a reasonably foreseeable future to prevent problems or to improve how the chain works.
ProgPoW decides the economic winners of PoW mining (for the remaining time). Ethereum does not have that right. Let economies of scale decide the market.
Actually the aim of progpow is exactly the opposite: provide a levelled playfield for any competitor preventing there’s a clear winner over another.
Also to be noted that ProgPoW enforces what is already there in ethash.
ProgPoW keeps being ninja-reapproved.
This is totally false ! The iter of the proposal has been pretty linear and without surprises of any kind. Informal GO, audit, Eligible for Inclusion and discussion about possible schedule date for inclusion. Two years iter.
If ProgPoW gets through I’ll stop my node / sell my eth
I don’t have counterarguments for that.
Lurk into twitter and find yourself
We don’t want it because we don’t want it
Again I have no counter arguments
I really have no vested interests in ProgPoW being adopted on Ethereum main net other than the satisfaction to see a project you have worked on for long time to go live. ProgPoW (if ever adopted) won’t block anything of what is currently on main net: blocks will continue to flow, EVMs will continue their tasks, researchers will continue their researches … and life will go on.
If no ProgPoW life will go on as well … but we will see if PoS is “unstoppable”.