Blockchains provide a mechanism for verifying the contents of a shared ledger without relying on a centralized service. It can be utilized for systems that require trust over a decentralized networks, perhaps for identity, ownership, record-keeping, voting, cloud storage or even managing networks of smart devices.