hackingdistributed.com
Reentrancy Woes in Smart Contracts
Reentrancy bugs are difficult to catch. This distilled, illustrative example shows how even a diligently-written contract with invariant checks can go wrong.