About the author
The Decentralised Autonomous Organisation (DAO) was a smart contract deployed on the Ethereum blockchain network designed to fund blockchain projects and reward investors.
On 17th June 2016, the attacker made use of the fact that the withdrawBalance function can be called recursively on a specified address, to withdraw a specified amount of money, without having itsbalance updated. Had the withdrawBalance function been written properly to guard against reentrancy, this attack wouldn’t have been successful at all.
The attacker initiated the attack and withdrew 3500000 ETH into a child DAO contract. In order to resolve this, initially, a Robin Hood Group drained the remaining funds in the affected DAO contract with the intention of returning the ETH to its original owners.
Subsequently, due to the stolen funds being frozen (by a failsafe within the DAO contract) for 2 weeks within the child DAO contract, this issue was resolved (within 2 weeks) when the Ethereum foundation and community agreed to a hard fork, which gave birth to the current Ethereum blockchain (where the stolen funds were forcibly returned to the DAO) and the Ethereum Classic blockchain (where the stolen funds did not return).
References:
Learn why the map is cool in Go!
A method to design records so that they're allocated on a specific byte boundary, such as 16 bytes, 512 bytes, 4096 bytes, etc.
Learn the command line used to compile System.pas in Delphi
How to free more space on your home drive by redirecting the location for SDKs in RAD Studio