CS 251: Cryptocurrencies and blockchain technologies — Stanford Root