Re:A hacker stole $31M of Ether – how it happened, and what ...
by JeremyBanks on Friday July 21, 2017 @06:58PM
(#14824358)
It's below the level of incompetence required to design and deploy a language for this specific purpose that makes such misuse so simple, and apparently also below the level of incompetence of the Ethereum community who allowed $100M to be protected by it.
The real issue here is that the class constructor called a function instead of containing all code within itself. It's a fundamental misunderstanding of how the EVM works and how Solidity compiles to it.
I've read the code and it's hard to convey the level of incompetence that went into having a dynamic call from the Wallet constructor to the initWallet function; but it's very, very high.