How I learned to stop worrying and love ETC

This is an opinion post.  Please read it as such.  Usual disclaimer that this does not constitute legal or financial advice.

There is a particular brand of argument about the Ethereum/Ethereum Classic fork in the Bitcoin community that is both universally prevalent and demonstrably incorrect.  This is an argument that I’ve seen made by Bitcoin developers, miners, and vocal users ad nauseum.  The argument plays into fears in Bitcoin fork politics, and roughly proceeds as follows: The ETH/ETC fork event was a negative action that harmed the Ethereum community and its token’s underlying value.
A useful introduction to such anti-fork arguments in the context of Bitcoin can be seen in this slide.

In this brief article, I propose both a logical and an empirical argument that claiming these tenets apply to Ethereum is dead wrong.  Not only was forking the optimal action for the Ethereum community at the time, but it did not harm the community in any meaningful way (and may have benefited it in others!)

This article is targeted at explaining why the Ethereum fork was undeniably beneficial to Bitcoin users who may be unfamiliar with Ethereum; to Ethereum users, I’m likely preaching to the choir and will be contributing nothing new of substance.


Collision Finding The Maxwell Way

So by this point everyone in the Bitcoin community has heard about the collision attack on BU’s short IDs that are used for the propagation of XTreme Thinblocks, as well as Peter R’s rebuttal claiming the infeasibility of such an attack in practice.

Many in the Bitcoin community, including Rizun himself, are requesting that Maxwell release his collision-finding code to the public.   I find this strange; coding such a collision attack is something that’s covered in Security 101 in most places, so there should be no surprises or novelty here unless Maxwell has found some strange new optimization.

So what would such code look like?  Let’s take a look.  I’ve released a full copy of the code here, so be sure to try it on your own machine. Note this is completely unoptimized code – optimizations amounting to several orders of magnitude of improvement are lurking virtually everywhere.  This is only intended to give the general public an idea of what such code would look like.