What Is PoW?
PoW stands for Proof of Work. In order to create a new cryptocurrency block, a miner must do some work. To be more specific, the network provides a statement of problem, and the miner must solve this problem. We have already talked about it in various articles, so if you want to learn more about PoW, start by reading this: What is Mining and Mining Luck?
When Bitcoin had just emerged, even a regular PC with the worst CPU could find a block solution.
Within the specific mining algorithm, a mining device must execute a precisely defined set of actions.
Growing competition caused the increase in network hash rate, so CPU mining gave way to GPU mining. Then more effective devices came along, like FPGA devices (field-programmable gate array) followed by ASIC devices (application-specific integrated circuit). FPGA and ASIC are not only more powerful, but they are also consume less power and are cheaper. The main drawback of such devices, ASICs in particular, is that they can’t be used for anything else. If an ASIC is designed to mine Bitcoin, then it can’t mine any other cryptocurrency. Read this article to learn more: ASIC vs. GPU Mining Rig: What is Better?
Note that initially the majority of today’s cryptocurrencies, including Ethereum, were designed for GPU mining.
ASIC Mining Drawbacks
The evolution of mining equipment from GPUs to ASICs is a natural process. However, there are a few drawbacks.
- Centralization is the biggest fear of all cryptocurrencies. There are only a few factories that manufacture quality ASICs for crypto mining, so one way or another they could try to take control of the network. For example, they could sell their equipment only to one company or manipulate the equipment they sell (by disconnecting it or implanting a backdoor – deliberately created vulnerabilities). On the other hand, GPU mining is the best solution for decentralization, and you can GPUs in any computer store.
- No changes can be integrated into the mining algorithm. If the algorithm changes, the ASIC will stop working and the only thing left to do will is to throw it away. A GPU can be used to mine multiple algorithms.
- ASIC production can be cost-effective only if it is a certainty that the mining process will remain unchanged. Otherwise, manufacturers risk losing their investment, and end-users risk losing their equipment. Graphics cards can always be sold, simply because there are more gamers in the world than miners.
PoW in Ethereum Network
In Ethereum, mining is based on Dagger Hashimoto algorithm, also known as Ethash (the latest algorithm version). In order to find a block in Ethereum, a miner must download DAG file into the memory of his GPU. The DAG size increases by 8MB every 30,000 blocks. The current DAG size for Ethereum is almost 3GB.
Is it possible to create an ASIC for Ethereum? Yes, it is. Bitmain, Innosilicon and other manufacturers are already producing such devices. However, their performance is still only slightly better than GPU rigs, but it may be just a matter of time.
For example, after the Antminer D3 release, the DASH network hash rate increased by orders of magnitude.
What Is ProgPoW?
The ProgPoW algorithm is based on Ethash, but it has an important “Prog” prefix. Thanks to “Prog”, the mining operation is not linked to a precisely defined set of actions. The algorithm constantly changes, so it is rather difficult to create an ASIC. You can find a detailed description of the algorithm on github.
ProgPoW regularly changes the statement of problem for mining and uses practically all GPU resources available.
The integration of ProgPoW doesn’t mean that it will be impossible to develop an ASIC for Ethereum. What it means is that if ProgPoW is ever approved by the Ethereum community, an ASIC will not provide any advantage over a GPU.
Only GPU mining can ensure true decentralization. After all, even a Fortnite player can use his computer to mine Ethereum in his free time.
2Miners has successfully launched an Ethereum ProgPoW test network. The ProgPoW pool is online, so anyone can try mining ProgPoW Ether on the test network. You just need to install the latest version of ethminer (currently unavailable) or progminer.
Ethminer 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
The pool dashboard is available here: progpow-eth.2miners.com
Keep in mind that this is a test network, so you can mine only test coins that have no value.
Voting For/Against ProgPoW
It is inevitable that miners will soon have to vote for/against ProgPoW. In this case “miners” are mining pools, because it’s they who send new block solutions to the network.
You probably remember the Bitcoin vote to transition to SegWit2X. Mining pools that were in favor of 2X voted by adding special information to the block.
Given the feedback we have received up to now we believe ProgPoW is the best move forward for #Ethereum mining. As a sign of our support we will start to prepend "PPYE(S)" to blocks mined by the pool. For miners that want to vote No we will soon offer a dedicated mining port.
— Bitfly (@etherchain_org) February 10, 2019
Notice additional information in Extra Data block:
You could see real-time voting results here:
2Miners Approves ProgPoW
2Miners pools are publicly speaking in favor of ProgPoW algorithm. Starting February 12th, we added “PPYE(S)” to all blocks found in our pool.
We created a special sticker “We support ProgPoW”, and we encourage all mining pools in favor of ProgPoW to use it. All you need to do is to insert the logo of your pool into a white circle on the GPU cooler.
ProgPoW 2Miners -> https://github.com/2miners/progpow-support/blob/master/progpow_2miners.png
ProgPoW without logo -> https://github.com/2miners/progpow-support/blob/master/progpow_with_logo_placeholder.png
ProgPoW without logo, svg -> https://github.com/2miners/progpow-support/blob/master/progpow_vector.svg
Github Repo with all media files, Creative Commons Zero v1.0 Universal -> https://github.com/2miners/progpow-support