Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ECBP-1110: Deactivate MESS #520

Merged
merged 9 commits into from
Jan 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion _specs/ecip-1100.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: MESS (Modified Exponential Subjective Scoring)
lang: en
author: Isaac <b5c6@protonmail.com>
discussions-to: https://github.com/ethereumclassic/ECIPs/issues/374
status: Active
status: Replaced
type: Standards Track
category: ECBP
created: 2020-09-09
Expand All @@ -15,6 +15,8 @@ license: Apache-2

Define a function arbitrating chain acceptance using relative total difficulty and common ancestor time to raise finality confidence.

_Update (January 2024):_ Replaced with [ECBP-1110](https://ecips.ethereumclassic.org/ECIPS/ecip-1110).

## Motivation

A low hashrate has caused Ethereum Classic's consensus algorithms to yield inconvenient and undesirable finality rates.
Expand Down
48 changes: 48 additions & 0 deletions _specs/ecip-1110.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
ecip: 1110
title: Deactivate MESS (Modified Exponential Subjective Scoring)
lang: en
author: Isaac <isaac@etccooperative.org>
discussions-to: https://github.com/orgs/ethereumclassic/discussions/522
status: Active
type: Standards Track
category: ECBP
created: 2023-09-17
license: Apache-2
---

## Abstract

Turn off the artificial finality mechanism [ECBP-1100's MESS (Modified Exponential Scoring)](/_specs/ecip-1100.md) in [Core-Geth](https://github.com/etclabscore/core-geth) for Ethereum Classic.

## Motivation

MESS was designed from the start as a temporary, peripheral patch on the incumbent GHOST-based chain arbitration algorithm.

It was intended to mitigate the risk imparted to the chain by an adjacent chain -- the Ethereum mainnet -- which, while using its original PoW algorithm, dwarfed ETC's hashrate and thus established the vulnerable position MESS hoped to safeguard. ETH moved from PoW to PoS in September 2022. Its exit from the PoW economy has left ETC as the largest apparent sink of compatible hashrate (limited by DAG and the hash type demand). With this clear reduction in apparent risk to the network, the need for MESS is diminished.

The costs of persisting any kind of subjective chain arbitration on the network are not zero. Network risk to sophisticated bifurcation attacks; an expected low-probability exposure to catastrophic failure. Code overhead during upstream codebase merges; developer chore cost.

## Specification

MESS will be deactivated by default at block `19,250,000`. This is concurrent with [ECIP-1109's Spiral Hardfork](/_specs/ecip-1109.md).

An override flag for this decision will be provided to configure ongoing operation `--override.ecbp1100-deactivate=<number>`.

Users will be encouraged to upgrade to Core-Geth v1.12.17, or to deactivate MESS manually, which can be done with all versions of core-geth implementing MESS using the flag value: `--ecbp1100=99999999999` or equivalent.

### Mordor (ETC PoW Testnet)

MESS will be deactivated at block `10,400,000`.

## Rationale

While limited data circumscribes our understanding of hashrate supply, an apparent migration of an original roughly 1000 TH/s economy to currently about 20% of that, it seems reasonable to conclude that the costs of MESS now outweigh the risks it was designed to mitigate, since ETC's current hashrate accounts for around 85% of the apparent hashrate supply.

## Implementation

As far as I understand, the Core-Geth client is the only client to have implemented ECBP-1100, making it the only client that needs to implement deactivation.

## Testing

## References
Loading