Security of Smart Contracts 2: Reentrancy