If you are reading this then it is likely you have some idea what mining is in terms of blockchain. One simple way to think of it is as a form blockchain maintenance, for which miners are paid in the native token. Furthremore, we can rhink of proof-of-work (PoW) as miners needing to show at least to some extent that you did the job right before you get paid. The role of PoW algorithms is to provide a suitably difficult puzzle which (unless you're incredibly lucky) it was unlikely the computer solved without putting in a little effort. The more effort you put in (hashing power) the more likely you are to get the right answer, the more likely you are to get paid. It in effect it is a contribution/reward mechanism.
Naturally, as there is 'money' at stake, individuals have developed ways to pool their resources or develop specific technology that will help to give miners an edge over the competition and hopefully turn a higher profit. Originally, the idea was that blockchain maintenance would be a collective effort, spreading out the work and distributing computing power therefore protecting the chain from falling back into bad habits of centralization from which the concept was attempting to un-tether itself. As a result of these technological advancements we see considerable centralization of hashing power which, if it were to continue to grow, would inevitability lead to a reliance on a few individual entities being responsible for managing our funds and therefore, re-establishing a system built on trust.
In this article I'm going to look over a few well know projects and mining algorithms that have, over the years, taken the initial foundational goals of ‘a trust-less decentralized system’ to heart. In some instances we've seen developments aimed at shifting the projects away from the slow creep of centralized mining and trying to put the job back in the hands of the masses.
I figured before jumping into this any further it would be good to share a few keywords and a brief (very much so) description of each type of processing units predominantly used in mining. Despite differences the roles here are broadly speaking the same. That is, to perform a series of logical step in order to reach a possible solution for the next block in a ledger and then compare it against the desired difficulty before submitting it to the network for validation.
- CPU - Central Processing Unit. Built for general purpose computing tasks.
- GPU - Graphics Processing Unit. Specifically designed for image processing and often now built with dedicated video ram in order to facilitate faster read/write processing cycles
- FPGA - Field-Programmable Gate Array. This is a processing unit that is designed to be configured by the user for a specific purposes. Often considered the precursor to ASICs
- ASIC - Application-Specific Integrated Circuit. Effectively a chip purpose built for one specific use. This makes it very efficient at what it does.
Making Life Difficult:
The X-series were a group of algorithms originally implemented in 2014 (Darkcoin, now DASH) beginning with x11 that provided, in this case, 11 different algorithms performed sequentially. However, it wasn't long before ASIC mining (early 2016) was available. Following that there was an initial drive to modify the algorithm to add more computational complexity, birthing x13, x15, x17 etc. By 2018 and in pursuit of ASIC resistance, the Ravencoin project took and modified x15+SHA512 (x16), to add a random element (x16R). This aimed to make the order of the mining algorithms more fluid and therefore make it difficult to have ASICs built to perform this task. Despite this ASICs were noted to be on the network by 2019 and as a result the algorithm was modified one last time while a more permanent solution could be found, the final iteration being x16Rv2.
Need Moar Space:
An alternative approach to handle ASIC resistance was seen with a number of a memory intensive hashing algorithms, examples being Scrypt, Equihash. These were designed to be memory dependent and thereby render any benefit of parallel processing for ASICs to be on par with that of GPU/CPU mining and therefore making their development less desirable. Despite this it was noted in 2018 that ASIC developers had successfully created hardware specially designed to run the Zcash's Equihash 200/9 algorithm thereby proving the initial resistance to be more of a delay than solid removal.
Back in November-2019 Monero, previously mined using the CryptoNote algorithm, made a bid to strengthen its ASIC resistance preemptively and level the playing field between GPU and CPU user. This move introduced the RandomX algorithm which, by adding complexity through randomized execution, was focused on giving preference to more general computing chips (CPUs). By leveling out the ASIC:GPU:CPU distribution ratios the goal was to make make the network more decentralized and therefore protect it further. Indeed, this also makes the coin more desirable for individuals with one good PC rather than a hub of GPUs all in a mining rig.
Following the ASICs move onto the x16Rv2 algorithm the core team recently (06-May-2020) successfully forked the Ravencoin chain and introduce a their new mining algorithm KawPoW, which is built on ProgPoW (once planned to be the successor of Ethash). This algorithm as with Ethash uses a large randomly generated dataset called directed acyclic graph (DAG) that is stored locally upon mining. This DAG file gradually increases in size over time thus increasing the memory requirements and making implementation of ASICs on the algorithm difficult. In a way it is like an automated moving the goalposts, progressively getting more memory intensive as more blocks are mined. The downside however of this approach is it also gradually makes more GPUs redundant, for example Ethash is now at a DAG size of ~3.6 GB. This means that any 4 GB graphics card will become redundant by December this year.
Originally based on Equihash, Beam (a well known MimbleWimble privacy coin) opted for its own variants on this algorithm, first called BeamHash I then II and now what is geared up to be the final PoW installment for the chain BeamHash III. This algorithm is set to drop on 28-June-2020 when the chain hits block 777777. Interestingly, unlike previous endeavors by development terms to 'ideally' to rid themselves completely of ASICs the Beam team have actually modified their approach somewhat. Instead, of trying to prevent ASICs outright this algorithm attempts to disrupt development of single chip ASICs but leaves the door open for multi-chip devices which, rather than focusing on a single activity and doing it very well, are more akin to a 'normal' computer where it is built from components that can serve different functions. As these multi-chip designs these are less specialized they tend to built from smaller, more affordable, chips and therefore are less aggressive in terms of hash rate than the bigger single chip ASICs. This shows quite a forward thinking approach to forking because the goal shifts somewhat from exclusion to limitation.
Finally, though without a current release date, the VertHash algorithm is under development and testing by the Vertcoin team. Although over a year ago the team was close to a release, it was determined that the previous algorithm wasn't quite fit for purposes and the development phase has taken longer than initially expected. As with other recently released Algorithms the goal of VertHash is to perform a balancing act between computing power and memory usage in order to effectively make efficient to mine using a GPU and not impossible (just more costly and therefore deter the use) to mine with ASICs.
(~19mins in Gert-Jaap goes into more detail of the VertHash progress).
So going back to my initial title here "Are ASICs good for PoW Algorithms?" I want to try answer this, though note that this is just my opinion and I'd be very glad to hear your thoughts as well.
As I see it ASICs were inevitable, that is to say, whenever someone comes along with an idea (in this case the general idea people can mine from their home computers) others will look at that idea and say "I think there is a better way we can do this". What ASICs are about is efficiency, tailor made maximum output for minimum input. However, because of the upfront costs of this development there then becomes a price barrier as as time goes on the price gap widens, so that the amount needed to compete with an ASIC farm effectually rules out the very people whom were considered to be the backbone of the idea (the masses). Naturally as costs spike higher more and more of the smaller players drop out until you find the pool getting very small and we're finding our way back to centralization. The main reason we fear this is the immutability of blockchain (one of the core tenant) is at stake, making the system vulnerable to manipulation and vastly reducing the strength of blockchain adoption arguments.
Not all is lost though, as you can see from the previous examples in the presence of an uneven playing field developmental teams had been forced to look at the work they are doing and seriously consider the flaws of earlier mindsets. As a result the recent drive in PoW innovation has not shifted to completely exclude ASICs, but instead has aimed at creating a more inclusive system. It is my belief that when under pressure of serious centralization projects have responded with creativity and as a result begun to shift the PoW paradigm to make it move favorable for the the low to mid level mining operations which as a result has widened the network hash pools and bolstered the decentralized nature of these projects.
I'll go out on a limb here and say that I do believe ASICs have been good for the development of PoW algorithms. Indeed, in some way I believe we should see the creation of ASICs as an effective system test on the concept of blockchain maintenance via mining. When you create a system like this is it important to try and break it and strive for continued development because nothing is perfect first time so everything can be improved.
Hope you enjoyed my thoughts on this topic, thanks for humoring me, good luck y'all!
Images 2 and 3 from the 2miners.com Blog site.