Security Vulnerabilities in Smart Contracts as Specifications in Linear Temporal Logic