Blockchains from a Distributed Computing Perspective