This post is to discuss the
technical reasons why the DAO attack was possible, and if that 'flaw' is 'systemic' in ETH. Let's not just slag each other off please..
I held ETH, no more I'm afraid (The FORK

), and I hold some Augur REP (which you can't dump yet).
The issue that allowed the DAO 'attack' is VERY low level.
Basically, the way the ETH EVM functions, when you send ETH to an address it executes some code. The 'contract' for that address. The problem lies with the fact that THAT contract can call back to the original contract, recursively, and screw with the internal states.
You may think - OK, now you know this, just write the smart contract so that it doesn't matter. Hmm.. if only it were that easy.
The DAO/ETH devs tried to fix this issue in the DAO 1.1, after the flaw was found in DAO 1.0. They couldn't fix it. The problem is so 'pernicious' that EVEN VITALK HIMSELF could not find a solution to it (I can assure you he was involved in trying to fix it). And whatever you may think of him, no-one knows more about ETH.
So then you think, OK - Hard fork that 'ability' away. No more problem. Hmmm.. if only it were that simple.
This is really very VERY low level in the ETH EVM. The whole point is that you can call functions in other contracts. You cannot simply remove this, without fundamentally changing everything..
This does not bode well.
How can Augur ensure that it is not riddled with similar issues - from a programmatic level ? ( It can't is the honest answer )
How could this be fixed - 'technically' ? (If Hard Forks are the order of the day - at least make them count, and fix this issue)
..
For instance - What if you said that you
cannot call functions in other contracts ? And that the contracts running on ETH have to be completely self-contained ?
Would that fix it, and would ETH still work if you did do it ?
ps - we may be talking about ETH's successor here.. What to do differently for version 2.0 (from a technical point of view)..