1

Blockchains are often described as 'immutable' (meaning the history cannot be rewritten after the fact), but is this really true? How easy is it to change the history?

I have read about the Etheruem DAO hack and how the blockchain has been hard forked to reverse a transaction by the hacker. This is very disappointing. I thought cryptos by design were irreversible, even with a hard fork.

How can we measure the immutability of a blockchain? Is eth less safe than btc, for example?

  • I've edited this question to be more on-topic. In its original form I agree it would be off-topic, but the core of the question is still relevant and interesting to Bitcoin users, so I think it is worth keeping open. – chytrik Oct 15 at 21:09
1

No, as far as we know, Ethereum transactions cannot be reversed.

The DAO hack exploited a badly coded smart contract.

The smart contract runs on top of Ethereum, so there are two layers involved here: the Ethereum blockchain and virtual machine (EVM) and the smart contracts which run on the EVM.

Neither the EVM or the Ethereum blockchain were exploited. That one particular smart contract was.

You may be referring to the 2016 Ethereum fork. That was, indeed, a controversial fork which led to a discussion about Ethereum governance.

In that particular situation, the Ethereum developers did reverse the DAO theft by reorganizing the blockchain. This was done deliberately by the developers. Ethereum wasn't hacked and transactions still can't be reversed, but in that occasion the developers themselves did fork Ethereum to save the DAO funds. They won't do this for any reason though, in fact that fork had widespread support from the community, so your coins are safe. Ethereum won't reverse transactions to harm investors and hopefully another DAO-style hack won't happen in the future.

  • So basically a transaction can be reversed if a majority of the community (or more likely, the wallet developers) approves of the reverse? – user2741831 Oct 15 at 14:22
  • 2
    @JoseFonseca "They won't do this for any reason though": It is a very bold statement to make when a precedent has been set. – Ugam Kamat Oct 15 at 14:44
  • 2
    @user2741831 That's correct. Bitcoin aims to be as free from human influence as possible. It's not perfect but it's the closest we've gotten to a financial system without political influence. – Jose Fonseca Oct 15 at 16:55
  • 1
    @JoseFonseca 2010 Bitcoin rollback was because of the protocol level vulnerability (overflow error), not to undo a transaction that stole somebody else's coins. – Ugam Kamat Oct 15 at 17:44
  • 2
    @JoseFonseca 97% of eth users did NOT vote on the DAO fork. That website apparently accounts for 2.67 million eth worth of votes, out of ~75 million eth that existed at the time (only ~3.5% of eth). For all we know, this 'majority yes' vote could come from literally just one wealthy individual, it is not necessarily representative of the wider userbase. Devs made the decision, attempting to map this choice onto users is trying at best. – chytrik Oct 15 at 20:38
2

The Bitcoin blockchain is not absolutely immutable, it is probabilistically immutable.

We say this because the history of transactions (the blockchain) is secured by mining power, and mining success is a probabilistic. Given a certain amount of hashpower, we expect that we'll find a block within some certain amount of time - but it is possible to find the block on the first attempt, however incredibly unlikely that may be. So for an attacker to re-write history, we expect that they will need a majority of hashpower on the network, otherwise probability is working heavily against them. For more info see section 11 of the original bitcoin whitepaper.

So the finality of a transaction is related to what portion of hashpower is being controlled by 'honest miners'. Thankfully, there are heavy financial incentives for miners to behave honestly, and so after a decade of operation, we haven't seen a majority-attack against the network take place.


The DAO hack was a different situation: ethereum developers decided that rolling back the chain to erase the DAO hack (and all transactions that had happened since then) was a good idea. This led to an interesting conundrum: what is the real guarantee offered by a blockchain? Is it probabilistic immutability? Or is there more to it than that? How much does the human element weigh in, and control the outcome? Why did the Eth developers have such power?

This is an important test of one of the core tenants of a system like Bitcoin: does any group control the protocol? How large of a group is needed, before effecting a change becomes possible?

If every single bitcoin user decided that it was a good idea to change the protocol to include a mandatory cat image with every transaction, then it would be simple to make the change (after all, everyone already agrees, and will implement the change). However, if only a small portion of users want to make this change, then they will need to convince the rest that it is a good idea. As the network grows and more users come on board, this becomes increasingly difficult to accomplish.


For bitcoin (or any blockchain) to succeed, it is paramount that no small group is able to make these sorts of decisions unilaterally, otherwise that group would represent a huge threat to the network. If the group were compromised by a bad actor, they could wreck undue havoc on the network.

This is a crucially important point: having a large, decentralized network with many users makes it more difficult to enact change. If a network has a small number of users, it will be easier to convince a majority of them to make the change.

Looking at Bitcoin's history, we can see that it is extremely difficult to force a change onto the network. Some of the most influential businesses, persons, miners, and some developers pushed heavily for a change in the base block size in 2016/2017, but were unable to convince the majority of network users to go along with it, and thus failed.

Even the developers cannot unilaterally push a change onto the network. They can propose changes (including rolling the chain back), but if the users (ie those that run nodes) do not agree with the change, then the devs cannot force it through. The open source process involves a ton of peer review and is a transparent process that would be difficult to push a contentious change through. Anyone is free to propose a change, of course, but the onus is on the proposer to convince everyone else that it is a good idea.


TL;DR:

As a user, you should want some guarantees that the system of money you are buying into will not be arbitrarily changed or rolled back at some point in the future. This means at least two things:

  1. There is a large amount of mining power securing the network (and no large pool of hashpower that could be pointed at the network exists otherwise).

  2. No small group of people can easily force a change onto the network.

  • Doesn't that just ultimate ly mean the majority of devs control the entire currency and human apathy? – user2741831 Oct 15 at 21:27
  • @user2741831 no, the devs can propose changes, but ultimately in a healthy (sufficiently decentralized) network it is users that must agree with and adopt the changes proposed. Devs cannot just force a change through. I've added a little more info to my answer to help explain this. – chytrik Oct 15 at 22:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.