Which smart contract vulnerability allows an attacker to make a profit off a smart contract cryptocurrency exchange like Bancor?