Can a blockchain's transactions be reversed? 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 Ethereum 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 Ethereum less safe than Bitcoin, for example?
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:


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).
No small group of people can easily force a change onto the network.