Smart Contracts Explained: Powering the Future of Decentralized Apps