Fork hard and prosper — part II

Hibryda
8 min readJul 1, 2016

--

part I here

The soft fork, a time buying vehicle, turned out to be a crap. Actually it could have worked as intended, but with a risk of the network being flooded with empty blocks by the attacker. Obviously this could lead to other unexpected flaws besides even this bloat. Thus it was rolled back, reasonably I would say.

For brevity it’s worth to explain that in the process of soft fork application it appeared that there’s a gas problem leading to the attacker being able to DoS miners. Shortly, the attacker could send very computation expensive transactions with declared high gas to be paid (to be prioritized), but as the soft fork would make miners reject all such transactions, no gas will be billed while computation will be performed (and empty blocks added). The network could deal with it. But the load would be high as well as a bloat of empty blocks. Perhaps other adverse effects could also take place.

Speaking about adverse effects, almost a year ago a paper was published by Luu, Teutsch, Kulkarni and Saxena regarding “verifiers dillema”. It was discussed by Vitalik on reddit here. While at the time it was purely academic divagation it appears that with soft fork applied it would cause really important issues. Given an example scenario when the attacker starts spamming the network, some miners could even cease processing transactions (miners cannot be considered network friendly actors by default, only by incentive). If the ratio of miners with soft fork applied would fall below the limit the attacker’s transactions would eventually pass.

The above exposes both strong and weak points of Ethereum network. And actually strong points, as ingenious gas economy and Turing completness are also weak ones. On one hand for instance gas economy precisely regulates computing, on the other it must be fine tuned and is very fragile. So fragile that can lead to network-wide problems.
In parallel, Turing completness gives enormous possibilities in terms of possible computations performed by the network, at the same time contributing to unpredictability of computations before they are performed, thus inability to halt malicious ones (in easy way).

I’m afraid that there is no good scenario for any soft fork that could cover all possible side effects. Exactly because of the two factors mentioned above.

Gas engine

The hard fork is constantly attacked as unfair, favoring a sub set of the community, breaking the holy rules of blockchain, setting a precedent and alike. I already commented my attitude toward ideological arguments — cannot argue with them as I cannot argue with religious beliefs. Could put here a full stop, however will elaborate the issue a little.

Gas engines (internal combustion ones) emit a lot of poisonous substances. While the awareness of this fact is widespread no one ever came with the idea to decree gas engines to stop polluting entirely. Because they are useful and they are machines that depend only on objective laws of physics.

The same applies to this virtual gas engine — Ethereum blockchain. One cannot decree that immutability is good, precedents are bad, forks are even worse. Because blockchain is limited by some objective factors only, independent from ideology.
Fifty one percent for instance. This is a fact that makes blockchain so interesting — because atop of this meticulously sculpted virtual structure there is will of entities (still all humans) that are involved in this enterprise. An aggregate of community members wills actually decides about what is going to happen with the network.

There is an apparent conflict above, as will can be (and usually is) shaped by ideology. There’s no conflict really as this effect is secondary. Fifty one percent consensus is primary.

There are also other, independent on ideological stance, facts that I mention below.

Thus, putting aside fruitless divagations let’s think about them and their possible consequences.

Hard facts, hard fork

The hard fork is necessary. It’s the only way to resolve present situation entirely. Below I list facts that can influence the network if the fork is/isn’t applied together with my (subjective) interpretations.

  • if the fork isn’t applied there is an hostile actor inside the network
    It’s really a threat. It’s already known that this actor, while probably acting without any previously made plan, decided to commit a crime and hamper the network activity. It’s obvious that one cannot assume that this actor will exhibit friendlier attitude in the future. It’s absurd. Leaving the attacker with a large and significant portion of Ethers in circulation poses multiple threats. This include scams, influencing miners, destroing legitimate activities. More, such actor could manipulate prices with ease leading to taking Ether down from exchanges.
    Without the hard fork applied the price of Ether will plummet. This can happen due to two factors. First, malicious actions as above, second and equally important, an anxiety of big investors (and all other smaller ones too) in terms of reliability of the network. Also speculators (that actually help the network build up) will keep away from Ether as the price will be potentially unpredictable and the attacker will have more funds than bumpers-dumpers could safely outnumber.
    There is also PoS issue that could affect verifiers, but I really doubt that the network will survive long enough for the PoS being applied.
    The chance of the attacker cashing stolen Ethers and fleeing the network (to BTC or elsewhere) is minimal. Provided that the attacker isn’t an idiot. The attacker must realize the scale of own deeds and be aware that this will be treated clearly as a theft in most of civilized jurisdictions. It’s not so easy to leave the network without leaving traces. Even mixers aren’t an ideal solution. The only way to break the chain of evidence is to exit into fiat somewhere. This is neither easy with such sums nor trace free. Too big risk. Thus the attacker will remain inside playing to destroy the network entirely. As a side effect the attacker can earn some money speculating outside as an informed trader.
  • if the fork is applied the big industry would not considerably change their attitude
    Yes, it’s fact. The big industry treats Ethereum blockchain as well as other blockchains as an interesting alternative for currently used solutions. But as the big industry is reasonably conservative, no matter what happens their attitude will depend on internal tests. One benefit of applying the fork will be an information how such process performs and what risks it bears. As in big industry solutions, hard forks to affect their blockchain data will happen more often. Then, they will watch this process with great interest, as they don’t have to pay for this experiment.
    Crypto world people often forget the perspective. Numbers of billion or few billions give them impression of a big scale. While in reality it’s still minute. So minute that the big industry just happened recently to pay an attention and cautiously try it. Applying or not of the hard fork will have no impact on popular adoption. Simply because this experiment is at the stage of collecting data.
  • split will happen
    Sure. As always when a hard fork is applied (and this happens constantly in many coins). There are basically three possible scenarios of split.

    1. forked chain survives
    Most probable situation given the community support. If Ethereum would strongly and expressly support hard forking believers part of the community will largely follow. Rational actors will follow due to rational nature of forking. This includes most whales as they are usually rational (otherwise they wouldn’t be whales). Miners are the delicate part (but not crucial in terms of had fork), as their business is forcibly honest, not honest per se, and largely depends on market opportunities. Nevertheless, if the forked branch would seem to be more stable they will join.

    2. no-fork chain survives
    Less probable. First, as Ethereum realizes risks I mentioned above, even guys expressly against the fork seem to keep the line of Foundation. Thus it’s less probable that there will be a split inside Ethereum that would lead some devs to form an entity aimed at supporting no-fork chain. Such entity must exist mainly due to an “unfinished” nature of Ethereum blockchain. Mutiny would lead to further loss of confidence into entities that support the network. This, and unreliable nature of the old no-fork chain, would lead to little support of big investors. Thus it seems that this option isn’t very probable at the moment.

    3. both chains survive
    Least probable. There would have to be a mutiny and two competing Ethereum “forks”. More, existence of two separate currencies of the same kind would cause total disinterest of investors (being not sure what this competition will yield) and a total loss of trust.
    More, it’s technically problematic, however can be performed. Probably, for at least some time, trading of both coins would be suspended.
  • response of the market will be positive if the fork passes.
    It’s nothing new that given a long term and in macro scale the market favors stability. Thus stability assured by soft fork will attract long haulers. Most of issues besides the malicious actor can be mediated inside the Ethereum ecosystem as time passes. Regardless other possible attack vectors there will no longer be a big target that attracts bad guys (as theDAO will be transformed into redeem only simple contract). Some time will pass before any other DAO attracts and amasses considerable funds. People will be more cautious and will pay more attention for technical matters. There will be no next correcting hard fork as this one lesson would leave a scar significant enough to not accept any excuse in the future.
    Such stable actor is needed on the market. With Bitcoin struggling with internal changes soon both investors and speculators will greet this vehicle with open arms. There is no other coin now that has volume considerable enough to act as a temporary or long term escape route from Bitcoin. To serve as such trampoline, the hard fork must be applied.

when, how?

Gavin Wood already published a provisional hard fork. It’s simple and elegant. I’ve asked him some, possibly nonsense, questions regarding gas and concurrent kids draining. If I receive an answer will update about its contents here. All tech savvy people should also review this code, the more eyes the better.

Nevertheless, the fork is straight forward enough to consider it safe if tested on prepared testnet for possible side effects. It should be known soon how it behaves, I suppose.

As I mentioned above, a soft fork solution of any kind is probably too dangerous due to side effects to even give it a try right now. Even if possible it should fiddle with transaction filtering while tricking the gas system in a way that is hard to model and to predict adverse effects (and these dangers are already known thanks to an example). Thus, the only reasonable solution is to apply the hard fork.

It should be stressed that it’s no longer about saving investments of stupid novices. Now the game prize is saving the entire ecosystem from the imminent fall.

It’s not about private business of Vitalik or other guys from Ethereum that invested in theDAO (I write about it as there was a thread on reddit concerning these matters). Of course they invested something, but their Ethers will be worth far less if the hard fork won’t be applied. I can safely assume that their DAO tokens play no role in their actions. Ask them to donate them, at least partially, into some community enhancements. I assume they will agree altogether.

It’s not about saving Slock.it — it’s doomed since the discovery of the theft (and the bug). They can shelve their project, as no rational investor will support it. Sadly. Because their projects in general weren’t bad as ideas. Most probably someone else will proceed with these projects with more proficient attitude.

It’s all about keeping the ecosystem alive. The community that formed around this ecosystem created a great deal of fresh ideas, the development of which strictly depends on the network stability. Without the hard fork this will be lost.

So, fork hard and prosper.

in a next installment will write about what should be done after the hard fork, e.g. how to introduce reliable governance, how to make sure contracts are valid, how to disclose the thief

--

--

Hibryda

Creator of Bitlattice. I code. I write. Tech and cryptocoins enthusiast. Security paranoid.