Why Immutability is All That Matters. A Reply to @PSamuelson & a Question to the Developers

in #steemit8 years ago

In what has become a typical morning for me, I sat down at my computer, with a cup of coffee, and started reading through some of the articles here on Steemit. I happened across one written by @PSamuelson titled: Immutability and other Myths of cryptocurrency Part 1.

And as I read through it, I found some things that I disagreed with because I believe immutability is, by and large, the single most important feature of a blockchain. More than how the tokens are distributed, or how many there are, or what the blockchain can do, or any of that. If I cannot trust that the blockchain is immutable (unchangeable), then it's a nonstarter. 

One caveat to this article: I am talking about public blockchains. When you're talking about a private blockchain, the rules are whatever the collective agrees the rules are. If that includes the ability to do charge-backs or whatever, that's different than a public, decentralized blockchain, such as Bitcoin and Ethereum. 

History Lesson on the DAO

When The DAO was hacked, what the attacker essentially did was move the ethereum stored within the smart contract into a child-DAO. By moving it from The DAO to the child-DAO, he (let's assume it's a he) was transferring funds from one place to the next. 

A transfer of funds is a transaction. This is an important point that I will return to in a moment. 

Recognizing that this had occurred, the Ethereum team first tried to do a soft fork, but recognized that this would be a large attack vector by which someone could DoS the network. Therefore, they opted to do a hard fork. 

What this hard fork did was essentially roll back the clock. It removed the stolen ether from the child-DAO and put it into a new DAO, which was programmed to do one thing: distributed 1 ether per 100 DAO. 

Now this is significant because what the hard fork absolutely did was change a transaction. The transfer of ETH from The DAO to the child-DAO was a transaction. And by doing this hard fork, it essentially altered the blockchain.

ETH vs. ETC

This hard fork resulted in two chains: Ethereum One (ETH) and Ethereum Classic (ETC). 

What's significant is that, to begin with, ETH had the majority of the hashing power, with ETC moving along with about ~5%. This is significant because the ETH chain raced ahead, leaving the much weaker ETC to inch along. 

It wasn't until Poloniex opened up the possibility for ETC to be traded that suddenly ETC holders could actually choose. Did they want to stay on ETC? Did they want to go to ETH?

And with that, we saw ETC begin to gain power. Once miners knew that they could generate an income from mining ETC, they had options. 

Remember ... Miners are trading work for compensation. Either we pay them or the code pays them for securing the chain. So miners were doing what was in their best interest: generating an income. 

However, what became very real was the reality that people were choosing between mutability and immutability. They were choosing between a world where the blockchain could be changed and one where it wouldn't be changed. 

Immutability as a Myth

With that, I wanted to touch on a key point. Immutability is not a myth. Bitcoin is immutable. Transactions cannot be changed on Bitcoin unless someone initiates a hard fork to change a transaction. 

One of the comments in PSamuelson's piece, posted by @affiliate, said: " I think that clinging to the immutability ideology is going to doom ETC from the start. All block chains fork. Many have forked to undo and even reverse vulnerabilities."

I think that there is a conflation of meanings here. The problem is not that Ethereum had a hard fork; the problem is that Ethereum had a hard fork to change a transaction. 

On the contrary, a hard fork is a perfectly viable way to upgrade the code. It's cleaner than a soft fork and it ensures that everyone is operating on the same software. Steemit has had numerous hard forks and continues to release new ones as it sees fit. So hard forks are a great thing. 

And as far as I can understand, ETC is not protesting hard forks. What they are protesting is why the hard fork was initiated. In their opinion, The DAO hacker should have been allowed to have the ether. It sucked that he got it, but that's the world that we live in with cryptocurrency. 

So the problem is not that a hard fork happened; it's the why. 

To the notion that immutability is a myth. Immutability, so long as there is sufficient proof-of-work to protect the platform, is not a myth. According to some analysis I have seen, it would cost hundreds of millions of dollars to procure enough hardware to even come close to modifying the Bitcoin blockchain through a 51% attack. 

And remember ... A 51% attack is an attack. Immutability is a state of the blockchain. Therefore, we have proof-of-work to protect the immutability of a blockchain from a 51% attack. 

I don't disagree that young blockchains are at risk, but I do disagree that it means they're not immutable. If they were coded with immutability, they are immutable unless someone forces a fork to change that; or, it's attacked. That's why I actually believe the future is where bitcoin acts as the security layer to other chains vis a vis sidechains. But that's for another time!

Steemit & Immutability

So this is a general question that I have for any of the developers. How can we, as average Steemit members, help to ensure that Steemit stays immutable? I can imagine many would hate to see transactions changed--votes, steem distribution, etc.--so I know many would want to help. Is it through mining? Is it through running a node? Would love some insight!

Sort:  

You may find this interesting: https://steemit.com/steem/@dan/draft-steem-constitution

Average members can help security by voting for witnesses. Or, if you have the skills, run a witness yourself.

Btw, Bitcoin is not immutable. It doesn't take billions of dollars to create a fork, thereby rolling back blocks. It only takes the cooperation of three mining pool operators, plus some lobbying. Maybe a handful of mining farm owners.

But again, you're talking about two separate things there. Bitcoin is 100% immutable UNLESS it's changed. Right now, the feature of Bitcoin is immutability. So we can trust that it will remain immutable until it isn't. If it isn't, that's because it was attacked or because the devs forked it to be mutable. Since the devs have not forked for MtGox or Bitfinex, I see no reason why they would do this.

Therefore, what you've described is an attack on a feature of Bitcoin. Mining pools getting together to roll back blocks would be an attack on the blockchain. That doesn't make it any less immutable; that means it has been attacked.

Immutability is a feature; changing that through miner collusion is an attack.

Bitcoin is 100% immutable UNLESS it's changed.

Well, what isn't? :-)

The thing is, forks happen all the time in Bitcoin, when two miners find a block at roughly the same time. In most cases these forks are resolved pretty quickly. Sometimes it takes several hours though. The built-in rule is "longest chain wins".

From a technical POV there is no difference between these random forks and a deliberate decision by miners. Calling it an attack is therefore questionable, IMO.

Yes, but attacks are not technical, but political and economical. The intent is different and that's key in this conversation.

When miners collude to change transactions or prevent transactions, you've lost your immutability and censorship resistance. That's different than two miners finding a block simultaneously and then it becoming a game of longest chain wins.

What I'm trying to say is that BTC is immutable in the same sense that ETH was immutable until the DAO hack. In other words - not at all.

Fascinating. Very thought-provoking analysis. I had never seen Bitcoin as a security layer before. Asking these questions and thinking about immutability is wise, since we are entering uncharted waters.

I think we are still a few years away from this becoming a reality, but I expect, at some point, for blockchains to peg themselves to bitcoin. It'll take some attacks on immutability to make that a reality.

This was a great read, very well written and I am in complete agreement with you. Thanks for posting this.

Thank you for reading it and participating in the conversation. I want to make it crystal clear:

Immutability is a feature. That feature can be attacked. That makes immutability expensive. The stronger the proof-of-work protecting it, the more expensive it is to attack.