Is it possible to prevent some transactions from happening? Obviously not, since it will ruin the whole purpose of having a decentralized system.

So my question is how could they stop the attack? In other words, how could they make the transactions stop?


I think by spamming "the DAO" the transactions times where not close enough eventually to exploit the wrong order of balance detraction and split call and so the recursion died.

This does not mean that a new attack couldn't start at any time!


Beyond these "first aid" measures, there are two approaches to deal with the problem currently discussed:

Soft-fork, i.e. making previously valid transactions invalid: Freeze the stolen ether in the contract it is currently in by no longer validating withdrawing transactions. No rollbacks would happen in this case and no valid blocks would be altered.

Hard-fork, i.e. making previously invalid transactions valid: This means essentially agreeing on rolling back valid transactions and by that returning the stolen funds.

For explanation of forks, also see: https://bitcoin.stackexchange.com/questions/30817/what-is-a-soft-fork

Both can only happen by community consent, as soft forks require miners to update their nodes and hard-forks require updates of all clients. Note, that this does not mean centralization, as sometimes suggested, but a choice of a decentralized community.

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