A Holistic Approach to Smart Contract Security