Blockchain and virtual currencies