Ethereum Foundation member Hudson Jameson: ProgPoW is not worth it, it will die

Recently, the ProgPoW algorithm has caused a lot of controversy in the Ethereum community. Many community members have expressed opposition to this proposal. In this regard, Ethereum Foundation member Hudson Jameson wrote that ProgPoW is not worth it and will be overwhelmed by community objections Died of sexual evidence.

This is his personal position statement :

"I have always supported anything the community wants and never had strong opinions on whether ProgPoW should be implemented. I have misunderstood the community's views many times, and this debate is one of them. ProgPoW was The main reason for such a fierce opposition is that we did not hear anything during the discussion. I, the other organizers and the core developers also lacked communication. Of course, we should listen to the opinions of all parties. However, ideally, the fate of ProgPoW should be determined by complex pros and cons, not just because of objections. Both need to be considered, and then the winner is determined in this case. This is not to say that ProgPoW It is perfect on a technical level, but completed audits have shown that ProgPoW will not reduce the value of Ethereum on a technical level. In my opinion, ProgPoW is not worth it and will die from overwhelming evidence of community dissent .

The development community does its part to ensure that these voices are heard, although this does not happen in an ideal situation. We need to learn how to create a better signal system and make sure everyone can hear as much as possible.

I have talked to people who were directly harassed by this debate. I think this is unacceptable. As a community, we should condemn this behavior … When we are trying to solve difficult governance and communication issues, we need to have a productive dialogue, and I believe we can do it. " So what happened?

In order to better understand the ProgPoW incident, we may wish to see what he said, here is the approximate translation of his article:

Figure Worm Creative -694757964311429144

(Picture from: tuchong.com)

The ProgPoW algorithm has been the subject of debate in the Ethereum community. This article explains the history of ProgPoW, the various arguments for and against it, and my personal opinion on this topic. I only represent myself (Hudson Jameson) and not the Ethereum Foundation or any other entity.

History of ProgPoW

ProgPoW is a new proof-of-work algorithm. It exists to replace Ethash in order to reduce the economic incentive to build application-specific integrated circuits (ASICs). ASIC is a highly specialized device designed for specific purposes. In the case of such equipment, miners can mine Ether more efficiently than traditional GPU mining. The design of ProgPoW is not to completely prevent the creation of ASIC miners, but to make its construction cost so high that it is not worth producing.

On May 2, 2018, a semi-anonymous organization calling itself IfDefElse submitted the ProgPoW proposal as Ethereum's core EIP (Ethereum Improvement Proposal).

IfDefElse and Kristy-Leigh Minehan

IfDefElse is a team of 3 or more developers who have designed and developed ProgPoW. IfDefElse's only public member is Kristy Leigh Minehan (aka OhGodAGirl or Miss If), who has publicly represented ProgPoW at the Ethereum Core Developers Conference and talked about ProgPoW at podcasts and Devcon4 conferences.

EIP process and Ethereum core developer conference

EIP (Ethereum Improvement Proposal) is a type of design document that provides information to the Ethereum community or describes new features of Ethereum and its processes and environments. The EIP has several states: draft, accepted, and final. The EIP that needs to be changed at the consensus layer will be defined as the Core EIP. At the Ethereum Core Developers Conference, which is held every two weeks, developers discuss these Core EIPs and make decisions. These meetings are broadcast live and posted on YouTube. The content and videos of the discussions can be viewed here .

Since the end of 2016, my role has been to organize and host core developer meetings (with the help of others, of course). I see myself as a liaison between the community and core developers, and a communicator to ensure that both sides are aware of each other's emotions. Over time, we have been working to add more roles so that we can better organize our processes and make them more open. I used to be the host of the meeting and the coordinator of the hard fork. We now have a dedicated hard fork coordinator, James Hancock, and Ethereum Cat Herders is tasked with taking notes and performing other tasks to ensure the meeting goes smoothly.

ProgPoW and Ethereum Core Developer Conference

Regarding the topic of ProgPoW at the Ethereum Core Developers Conference, the earliest time I can find is May 18, 2018, which is also the 38th meeting of developers. ProgPoW discussions at the Core Developer Conference have been ongoing since then. Below is a list of 13 conferences on ProgPoW topics.

# 38-May 18, 2018

# 45-August 24, 2018

# 47-September 28, 2018

# 52-January 4, 2019

# 53-January 18, 2019

# 54-February 1, 2019

# 57-March 15, 2019

# 62-May 24, 2019

# 65-July 18, 2019

# 74-November 1, 2019

# 77-December 13, 2019

# 79-January 24, 2020

# 81-February 21, 2020

As early as the end of 2018 when we decided to reduce EIP, ProgPoW was often mentioned. Some people believe that this is the "chip" for miners to accept production cuts. Some miners still believe that if both parties agree, we will put ProgPoW in the network upgrade in exchange for a reduction in circulation. In fact, at the time we decided to investigate ProgPoW as thoroughly as possible, but did not commit to implement it. This is the relevant snippet we discussed at the time: https://youtu.be/mAs3JZHroKM?t=2386

ProgPoW accepted by developers

EIP-1 ​​defines the "accepted" status of the Core EIP as "a status signal that is unlikely to undergo substantial changes, and Ethereum client developers should consider including that EIP." This is different from the "final" status The final state refers to the implementation and deployment of core EIP on the Ethereum mainnet during the network upgrade process.

At some point in December 2018, core developer Martin Swende, along with others, built and deployed the Gangnam testnet to test how the transition from Ethash to ProgPoW will work, and other insights. These tests successfully proved that ProgPoW does not damage the network, that is, the code contributed by IfDefElse for the Geth client worked (the Geth team made some adjustments).

During the 52nd meeting on January 4, 2019, ProgPow was "temporarily accepted and pending audit". My decision to move forward with ProgPoW was made in consultation with the development team. As a result, no one commented, which is a bit like accepting the proposal by default, which is not ideal . To be clear, some Ethereum core developers are in favor of ProgPoW, and this view has been around for a long time, so there is no need to reiterate their support at the time. This is the reason I see everyone's silence: ProgPoW is an old topic, we are just seeking different opinions, otherwise we will move on. For example, at a meeting:

"It sounds like what we're trying to do is temporarily try ProgPoW, and unless we find a major problem or something of a similar nature in the test, we mean to move on. Does anyone feel that way or feel different? , Great. Then we will continue ProgPoW … "

(From 1:24:59 in the video-https://youtu.be/iSc3TbjZu1k?t=5099)

In a subsequent meeting (February 1, 2019), the developers decided:

  1. Let Ethereum Cat Herders conduct third-party audits;
  2. Miners should use the extraData field to start voting signals;
  3. Ethereum Cat Herders will research other methods to help analyze community sentiments and then find ways to make decisions;

However, some core developers suspect that this audit will not quell community concerns, which is still a controversial EIP.

When this happened, for personal reasons, I didn't communicate this information to the community through twitter and Reddit as usual. In late March 2019, some community members were surprised to find that these decisions appeared to have been made without alerting the community. I talked about some misunderstandings in the ProgPoW debate in this Reddit post, and I also posted this post on Twitter.

Ethereum Cat Herders begins audit

On February 1, 2019, at the 54th Ethereum Core Developers Conference, Ethereum Cat Herders was appointed to ProgPoW's audit work and raised related funds, and then conducted community feedback analysis. The purpose of the audit (which then became an audit from two different entities) was to assess the hardware requirements made by the ProgPoW development team, and to find vulnerabilities and negative effects in the ProgPoW software implementation.

This article provides more details and the results of the feedback analysis.

Community sentiment analysis in early 2019

In late March 2019, a community sentiment analysis report on ProgPoW was released. Measuring community sentiment in a decentralized ecosystem with many different participants is actually very difficult. For the collected information, we selected several different types of signals for measurement: surveys / interviews, coin voting, and miner voting .

The sentiment collected at the time showed that the people surveyed and the miners participating in the voting were very supportive of the implementation of ProgPoW. And this is a very imperfect collection of emotions . Coin voting showed that the votes in favor were 2,936,072, the votes against it were only 184,528, and the passing rate of ProgPoW was overwhelming. However, currency voting is susceptible to bribery and it is difficult to get community members involved . Unless I care about ProgPoW, why should I use the coins in my cold wallet? Surveys conducted by Ethereum Cat Herders are easily biased. The miner vote was the most convincing result of this emotional collection. 77.2% of the miners expressed support for ProgPoW through the extraData field in the block. Although voting has ended, some miners are still sending a "Yes" signal, as shown in this recent block (see "PPYE" in the "extraData" field). There is a view that it would be foolish for ASIC miners in the network to participate in this vote because it would reveal the nature of them as ASICs and show the relevant proportion.

It's easy to ignore the dissenting party. If there are no community contracts to rely on, resolving differences through signals can become tricky .

ProgPoW Software and Hardware Audit Report

In September 2019, a software and hardware audit report on ProgPoW was released. The main reason for the delayed release of the audit report was due to the problem of fund raising. Last Authority is a well-known security consulting team in the cryptocurrency field. They are responsible for the software audit and hardware audit of ProgPoW. The main person in charge is Bob Rao, a former Intel researcher. The report link is here: https://medium.com/ethereum-cat- herders / ProgPoW-audits-released-ed4973ebe073

The main concern caused by this audit is the modified design of the Keccak function in the algorithm. Another finding of the audit was that both Ethash and ProgPoW were vulnerable to so-called "light evaluation method mining attacks".

After the audit report was released, Ethereum core developers were too busy to focus on ProgPoW because they were busy upgrading the Istanbul network. I believe the core developers are tired of talking about this topic and are waiting for someone to take positive action to implement the plan. It should be noted that the community does have some discussions about ProgPoW, but other Ethereum events quickly buried it in 1-2 weeks.

At the 74th developer conference on November 1, 2019, ProgPoW was taken out for discussion again. This time to answer the question about whether it is EFI (qualified for inclusion). EFI is a state in which Core EIP is considered a good idea and further investigation and coding is performed by core developers.

On December 13, 2019, during the 77th developer conference, ProgPoW officially entered the EFI state .

Recent developments

At the 81st Ethereum Developers Conference on February 21, 2020, the topic of ProgPoW was raised again, and the debate began to ferment:

  1. We made a proposal for a BLS precompiled network upgrade, which will be called Berlin, and then one month later, there will be a fork containing only ProgPoW. Please note that this is not a final decision, but it still needs to be discussed;
  2. Some core developers at the meeting worried that community sentiment was against ProgPoW;
  3. At the time, James Hancock and I, the hard fork coordinator, saw that the possibility that ProgPoW would cause a network fork was very small;
  4. We discussed whether to use Hudson's personal Twitter to spread the news that ProgPoW will be online on a certain date. Of course, there are voices suggesting to use Ethereum.org's blog, but my refutation is: "This will make this solution look With the endorsement of the Ethereum Foundation, this is not the case. Although the Geth team is funded by the foundation, it has autonomy in these types of decisions. "
  5. As a hard fork coordinator, James Hancock worked hard to listen to everyone's views and dissatisfaction, and said that anyone who has an opinion can go to him;
  6. We once decided to post a blog post on the Ethereum.org blog to make sure everyone knew about ProgPoW.

Since then, controversy has erupted from the community. A draft " EIP-2538: Position Statement Against ProgPoW Activation " was proposed, with a list of signers opposing the inclusion of ProgPoW in Ethereum. Later, an anonymous letter was sent to the core developers stating their position in support of ProgPoW, and the signature was "Ethereum loyal investors, miners and supporters."

Analysis of the advantages and disadvantages of ProgPoW

I have been collecting arguments in favor of and against ProgPoW, and these arguments do not reflect my personal opinion. It's worth noting that I overlooked anything I thought was conspiracy theory.

Motivation 1 : According to the Ethereum White Paper and Yellow Book (pp. 13-14), Ethereum is designed to be ASIC resistant.

Refutation: Although anti-ASIC is the original design goal of Ethereum, it is actually difficult to prevent mining from forming anti-competitive economies of scale. In addition, other algorithms need to be explored that are more controversial than ProgPoW, such as SHA3.

Motivation 2 : ProgPoW can improve the decentralization of Ethereum, because individual GPUs can have the opportunity to participate in mining, preventing a few large companies from monopolizing mining, which effectively disperses computing power;

Rebuttal: This argument assumes that ASIC will not be sold to ordinary people, and previous evidence denies this claim (see Antminer E3).

Rebuttal to rebuttal: cheap electricity can drive mining and decentralization, ordinary people who use E3 Ethash ASIC miners pay 13 cents per kilowatt-hour, and miners who use RX580 GPU cards pay 1 cent per kilowatt-hour, in There is a mismatch in cost.

Motivation 3 : Since its inception, a community composed mainly of miners and enthusiasts has been supporting Ethereum, and the willingness of miners to vote should be respected.

Refutation: Miners are service providers that receive rewards for protecting the security of the network. Although they are part of the community, they should not be the only stakeholders in this debate. The vote of a miner can only be calculated by computing power. It cannot distinguish between a single miner with a low computing power and a large miner that controls a large number of mining machines.

Motivation 4 : If ASICs proliferate, 1-2 entities can perform attacks such as double spend. Since the system is going to PoS, they have this motivation.

Rebuttal: Current GPU miners cannot prove selfless, so they have the same motivation to disrupt the network. Their behavior in the ecosystem does not necessarily reflect how they will behave in an Eth 2.0 way. Ethereum's difficulty bomb will make it difficult for any miner to withstand the system's transition to PoS, because once the difficulty bomb occurs, they need to fork the chain and remove the difficulty bomb to create a profitable chain.

Motivation 5 : The identity of the top Ethereum GPU mining pool is known. As ASIC spreads across the network, it will eliminate GPU mining pools. If the miner develops a secret ASIC, we will not be held accountable for entities that may attack the network.

Refutation: Because Light-Evaluation mining attacks are a known vulnerability in Ethash, as long as ASIC manufacturers can produce high-performance ASICs, there will be a level playing field. Competition between ASIC companies will follow, similar to Bitcoin, which is not a bad thing.

Rebuttal to rebuttal: This requires advanced knowledge of the company that created the ASIC, which puts some ASIC companies at an advantage.

Motivation 6 : The current GPU mining pool supports the conversion of Eth 2.0, they will not attack the network. Sparkpool's work for the Ethereum community, among others, shows this. If an unknown ASIC miner secretly takes up a lot of computing power, we will be in danger.

Refutation: See refutation against motivation 4.

Motivation 7 : ProgPoW was not controversial when it was launched. Controversy is directly related to certain aspects, such as Kristy and IfDefElse, not the algorithm itself. This actually opens up a threat vector, and you can create enough "FUD" to reject a proposal you disagree with.

Rebuttal: Questions about ProgPoW have always existed. Governance capture is two-way, so if we allow ProgPoW to pass, then we can allow bad actors to capture developer interest and push for a proposal with strong community opposition.

(For more discussion, see the original article)

Conclusion (personal point of view)

Will ProgPoW cause network fragmentation?

People have been worried that if ProgPoW is included in the network upgrade, a controversial hard fork will occur, just like the fork that created ETC. I saw on Twitter some well-known community members that they would support the fork, or at least not run an Ethereum version that includes ProgPoW. I have also seen outstanding Ethereum client developers saying that they want to avoid forks. I believe that if a fork is to be produced, someone will profit from it, but a few branch chains will soon disappear. Due to the popularity and money involved in DeFi and other on-chain protocols, supporting a controversial algorithm update is not good for anyone, and the update of the algorithm is mainly caused by the community without knowing or willing to know of. However, this is still not ideal anyway! I don't want to see the fork .

The role of miners in ProgPoW

I think that the voice of Ethereum GPU miners is worth listening to. They are not just "service providers" for profit. I have cooperated extensively with the operators of the two major mining pools, Ethermine and Sparkpool. At present, their computing power accounts for about 51% of the entire network, and they are very active in the core developer community. During the network upgrade, they helped us. We cannot prove that these entities are altruistic, but I trust them and I believe they will not attack the network.

The process of reaching consensus on ProgPoW is messy, which is not ideal. I believe that we currently operate primarily under the leadership of technical experts, as there is no proper basis for governance in which communities can express their decisions. Technical bureaucracy is defined as "the control of society or industry by the elite of technical experts", core developers will decide which core EIPs to include in network upgrades, and in most cases, the topics of discussion and determination, for most of the community Members are too technical, so they cannot participate in decision-making. Eric Connor recently published an excellent article on this issue. I don't have an answer on how to solve this problem, but I hope that over time, we will be able to get as many people as possible to comment and thus better govern the system.

In other words, the emotional collection in early 2019 is no longer effective, and after nearly a year of development, things have changed. For some of the reasons I mentioned above, the community is very controversial about ProgPoW.

My stand

I have always supported anything the community wants and never had strong opinions on whether ProgPoW should be implemented. I have misunderstood the perception of the community many times, and this debate is one of them. ProgPoW was met with such fierce opposition, the main reason was that we didn't hear anything during the discussion. I myself, the communication between other organizers and core developers is also inadequate. Of course, we should listen to the opinions of all parties. However, the fate of ProgPoW should ideally be determined by complex pros and cons, not just It is because of objections. Both need to be considered, and in this case the winner is decided. This is not to say that ProgPoW is technically perfect, but completed audits have shown that ProgPoW will not reduce the value of Ethereum on a technical level. In my opinion, ProgPoW is not worth it and will die from overwhelming evidence of community dissent .

The development community does its part to ensure that these voices are heard, although this does not happen in an ideal situation. We need to learn how to create a better signal system and make sure everyone can hear as much as possible.

I have talked to people who were directly harassed by this debate. I think this is unacceptable. As a community, we should condemn this behavior … When we are trying to solve difficult governance and communication issues, we need to have a productive dialogue, and I believe we can do it.

Special thanks to Artem Vorotnikov, Ben DiFrancesco, Charles St. Louis, Collin Myers, Edson Ayllon, James Hancock, Jerome de Tychey, Kristy Leigh Minehan, Mariano Conti, Pooja Ranjan, Samuel Dare and Tim Beiko for taking the time to review this article and make suggestions.