Blockchain Application Security : How to Design Secure and Attack Resilient Blockchain Applications