I am looking for a way to implement a Proof Of Work in Javascript. Initially, I considered using a hashcash based approach but realized that it may not provide sufficient protection. This is because the task of reversing partial hashes is primarily CPU intensive, making it easier for an attacker using a binary tool to outperform browser performance (potentially even through JIT enhancements).
As a result, I am interested in finding a Proof of Work method that places less strain on the CPU and instead requires a set number of memory accesses for completion. I believe this type of task would be more suited for Javascript engines within browsers compared to compiled binaries solving the same task. Can anyone offer suggestions on where to locate implementations of memory-bound Proof Of Work systems?