Replies: 9 comments 4 replies
-
Is the intent to remove it entirely or remove it as default? I'm in favor of removing it as default. MESS was always a choice and depending on a node operators risk tolerance they make their own decisions. I would hesitate to remove it entirely. I don't see it as tech debt since, at some future point, it could be used again. Since etchash is the dominate algorithm now, new asics will be built. The same people who were able to aquire the means to be more than lucky at hashing are still in the space. TL;DR its better to have(inactive) and not need than need and not have. |
Beta Was this translation helpful? Give feedback.
-
Agree with @realcodywburns reasoning. Unless I am missing something, it seems like free optionality to keep the logic but have it disabled by default, so it can be enabled manually if needed. |
Beta Was this translation helpful? Give feedback.
-
We could certainly just switch the default to off but not remove the MESS support from the code-base, but there two things which everyone needs to be aware of were we to take that approach:
That second point is crucial. The introduction of MESS introduced subjectivity into the consensus process as a tradeoff for less likelihood of long chain reorgs. That tradeoff only really works if nearly all nodes are running MESS. So, I think, to be safe we either need all nodes or no nodes to be running MESS. Removal of MESS is switching from the equilibrium we have been following since 2020 back to the original Nakamoto consensus. If we do that then I don't think keeping MESS around but off by default necessarily helps us a great deal, but I am open to doing so, as long as we are all clear in our understanding of the above. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
You bring up good reasons to remove it entirely. I can now see that having it available under a flag it is not "free optionality" as I previously thought, but introduces a potential footgun for miners. If it's absolutely needed (which seems very unlikely going forward), a new version could be released with MESS enabled by default, but as a non-default option, it presents a danger if a subset of miners turn it on for whatever reason. |
Beta Was this translation helpful? Give feedback.
-
Much of this discussion has been about whether or not the MESS implementation should be deleted from client codebases, rather than whether it should be deactivated at the proposed time. The question of deletion supposes that it will in fact be deactivated, and since we need to have it in the codebase to deactivate smoothly, the deletion question might be well suited to its own discussion under its own rationale in the future, after its pending deactivation in about 3 weeks. |
Beta Was this translation helpful? Give feedback.
-
Since no one has yet provided a contra argument, and I think its worth having on the table for consideration, here's my take on why not to deactivate MESS. ETC's current hashrate is currently about 150 Th/s. If we include other Dagger-Hashimoto compatible hashrates, we might come to about 200 Th/s. Back when ETH was on PoW, its hashrate was on the order of 1000 Th/s. So this leaves around 800 Th/s of unaccounted-for hashrate. This is potential hardware and electricity that is not being currently applied to ETC or her hashrate-cousins, but which maybe could be. And if it were, would clearly pose a potential risk for a 51% attack on ETC. Coinbase provides rationale for why this is still a dangerous situation for ETC, since clearly ETC does not dominate the use of globally-available compatible hardware and energy. The question then, in assessing this risk, becomes whether targeting this hardware+energy potential maliciously as fraud on ETC is profitable relative to its current application, whatever that is. One critical factor here is the risk-exposure assumed by transactors on ETC (primarily exchanges), where sufficient confirmation delays would minimize it, and where (historically existing) risky confirmation times would increase it. |
Beta Was this translation helpful? Give feedback.
-
My stance on MESS is, and has been, that MESS does not belong on ETC because the 51-percent-attack problem is not ETC's problem. It's a risk-exposure problem that belongs to the people making transactions on the network, and transactors should take the responsibility for their own risks when they blow up. A 51-percent attack happens, and can only happen, when a transactor makes a bad decision about a confirmation delay given some transaction value. MESS does have potential tail events (ie. vulnerabilities), and their risks are poorly-defined (which in itself is risky). So when ETC installed MESS to artificially increase finality it transferred risk from the transactors to the chain. In exchange for this transferred risk, ETC got the confidence of exchanges back (confidence which was originally unfairly demoted in the first place, by misunderstanding or misrepresenting the 51-percent finality "problem" as one belong to ETC, not the exchange(s)). And their reinvigorated confidence was really superficial, since the risk was not eliminated, only asymmetrically and opaquely transferred (so the confidence was a fool's confidence). We need to be careful, diplomatic, and open with exchanges as we move toward deactivating MESS. If exchanges shifted ETC confirmation delays lower because of MESS, they need to readdress those values under the new situation. And they need to do so knowing that we're not going to be bailing them out anymore. |
Beta Was this translation helpful? Give feedback.
-
MESS is a change in consensus rules under the guise of a client feature. If we have a POW blockchain where a group of nodes arbitrarily and subjectively decide to not accept the most work done then that is to change the consensus rules. In my opinion, MESS should be removed completely as it is a violation of Nakamoto Consensus. Separately, the fact that by adding features to Core-Geth by default or not-default results in a de facto activation or deactivation of consensus rules or extra consensus features is a dangerous way of managing these things. Core-Geth should be always shipped with the barebones functionality of the ETC protocol, nothing more. If node operators or miners wish to change rules or activate or deactivate features that should be their conscious decision and action. That MESS was activated just by developer decision and the great majority of the network just followed because they are not paying attention is a very bad precedent in ETC. Core-Geth developers should not unilaterally decide feature activations, much less changes to consensus rules such as MESS, through the "default/not-default" method. Things should not be by default, unless they are actual consensus rule changes agreed upon by the whole ecosystem by rough consensus. This is why Core-Geth should be moved back to the ETC community repo. Core-Geth is not the property of few developers or the ETC Cooperative, it doesn't matter if they are financing it. Therefore, it should not be the prerogative of the ETC Cooperative to activate and deactivate features by the "default/not-default" method, even if public discussions like these are had that give the impression of community consultation but are not. Finally, this proves the risk of developer driven consensus changes through automatic upgrade methods, such as happens with ETCMC. It is the same effect: The ecosystem does not pay attention to ETC and its rules because it is small, marginal, and not important, so developers can introduce changes by "default/not-default" method just because nobody pays attention and everyone just upgrades blindly with the "automatic upgrade" button to whatever is the last version. All these things are very dangerous and behaviors that should be avoided in ETC, especially in the Core-Geth client which is the ETC community public bellwether client. |
Beta Was this translation helpful? Give feedback.
-
Discussions-To for ECIP-1110, PR at #520.
This is a place to discuss the removal of the MESS protocol from Ethereum Classic. The code for the change has already been included in the core-geth client as of v1.12.17, but there is still time to revert the change if any solid and consensus-yielding outcomes to the contrary should arise in the next month or so.
Since the original inclusion of the project was generally contrary to traditional opinion patterns in Ethereum Classic about the intended role of network consensus behaviors, and since it was installed as a mitigation for a network hashrate circumstance which is no longer the case, we, the core-geth developers, expect contra opinions to be in the minority, and have accordingly oriented the decision as an opt-out decision, rather than the more common opt-in decision.
PTAL. Your feedback and questions are welcome here.
See also:
Beta Was this translation helpful? Give feedback.
All reactions