A lifetime of experience has shown us that code review and testing are never sufficient to eliminate bugs. What we need to do is abandon the concept of smart contracts that immutably and permanently move people's money with zero recourse - running exposed to the internet without a firewall.