a memory-hard proof-of-work system