How Blockchain Technology Supports Smart Contracts: A Comprehensive Overview