EnglishEnglish中文中文DeutschDeutschEspañolEspañolFrançaisFrançaisΕλληνικάΕλληνικάहिन्दीहिन्दीHrvatskiHrvatskiMalayMalayItalianoItaliano日本語日本語한국어한국어NederlandsNederlandsрусскийрусскийاَلْعَرَبِيَّةُاَلْعَرَبِيَّةُภาษาไทยภาษาไทยTürkTürkTiếng ViệtTiếng ViệtEditor
Learn
FAQs
Frequently asked questions by various stakeholders
Why Classic?
Start here to get the lowdown on Ethereum Classic's reason for being and unique value proposition
Knowledge
Further reading on the foundations that underpin ETC
Videos
A collection of videos and podcasts to keep you informed on ETC concepts and happenings
Support ETC by helping to translate this website!
Ethereum Classic Blog

How To Improve Ethereum Classic Immutability Discussions

Christian Seberino
clarify
clarify

Eyan Ron in A New Era of Blockchain Immutability - Towards a New Understanding brilliantly describes two types of blockchain system immutability: historical and procedural. I will show how these distinctions can improve Ethereum Classic (ETC) immutability discussions.

Historical Immutability

history
history

historical immutability : property of blockchain systems such that the content and positions of all blocks, older than some minimum age, do not change

Historical immutability is not the same as blockchain immutability. An immutable blockchain would not allow new blocks! Historical immutability only applies to sufficiently aged blocks (or equivalently, blocks of sufficient depth in the blockchain). It permits new blocks and avoids confusion regarding the latest blocks. Furthermore, historical immutability does not allow new blocks to be added anywhere except after the latest blocks.

Procedural Immutability

procedure
procedure

procedural immutability : property of blockchain systems such that the protocol to determine valid blocks does not change

Blockchain systems define block validation protocols. These might specify mining rewards and valid proof of work information. Procedural immutability typically is not desirable! It would prohibit bug fixes and new features! Although blockchain systems typically cannot guarantee procedural immutability, they should specify the only situations in which it may be violated.

ETC Immutability

ETC
ETC

It is now possible to more precisely define ETC immutability:

ETC guarantees historical immutability, and, to only violate procedural immutability in order to improve the system.

Managing Improvements

ambiguity
ambiguity

Unfortunately, this does not eliminate all ambiguity. There might still be confusion and disagreements regarding what constitutes improvements! Is the Ethereum DAO attack hard fork an "improvement" because it potentially increased the available investment capital? Clearly all blockchain systems, including ETC, must develop protocols to evaluate proposed improvements and avoid future problems.

Historical Discussions

discussion
discussion

Below are some noteworthy historical ETC immutability related snippets and possible responses:

Gavin Wood - 2016-10-27 - I would suggest that EIP-150 was compliant from a "don't mess with the chain" immutability point of view.

Possible Response: EIP-50 did not violate historical immutability since it only altered gas prices. It was a violation of procedural immutability that improved the system.

Nick Johnson - 2016-10-27 - "Immutability" is overused and under-specified. Strictly speaking, it should mean only that the blockchain - the set of past transactions - is not modified, which no Ethereum fork has ever done.

Possible Response: The DAO attack hard fork did not technically violate historical immutability. However, it was a violation of procedural immutability that many would argue did not improve the system.

Vitalik Buterin - 2016-11-15 - ETC is mutable too; they mutated their transaction execution rules to fix the recent DoS issues,

Possible Response: Removing the denial of service vulerabilities violated procedural immutability. However, this improved the system and did not violate historical immutability.

Emin Gün Sirer - 2017-01-14 - Feel free to edit your coin any way you like. But be advised that the word immutable doesn't apply.

Possible Response: Procedural immutability does not apply but historical immutability does.

Conclusion

future
future

Eyan Ron has helped clarify the definition of ETC immutability. This is useful to improve discussions. Further work is required to specify a protocol to manage proposed ETC improvements.

Feedback

You can contact me by clicking any of these icons:

twitter
twitter
facebook
facebook
linkedin
linkedin

Acknowledgements

I would like to thank IOHK (Input Output Hong Kong) for funding this effort.

License

license
license

This work is licensed under the Creative Commons Attribution ShareAlike 4.0 International License.

This page exists thanks in part to the following contributors:


cseberino
cseberino
  • EnglishEnglish
  • 中文中文
  • DeutschDeutsch
  • EspañolEspañol
  • FrançaisFrançais
  • ΕλληνικάΕλληνικά
  • हिन्दीहिन्दी
  • HrvatskiHrvatski
  • MalayMalay
  • ItalianoItaliano
  • 日本語日本語
  • 한국어한국어
  • NederlandsNederlands
  • русскийрусский
  • اَلْعَرَبِيَّةُاَلْعَرَبِيَّةُ
  • ภาษาไทยภาษาไทย
  • TürkTürk
  • Tiếng ViệtTiếng Việt
  • Editor
Add ETC to MetaMask
The ETC community is active on Discord
Discord
Discord
ETC Coop Discord
ETC Coop Discord
Github
Github
ETC Labs Github
ETC Labs Github
Reddit
Reddit
Twitter
Twitter
This site is powered by Netlify

Learn

  • FAQs
  • Why Classic?
  • Knowledge
  • Videos

Made with <3 for the Original Ethereum Vision