Is there a Proof Of Work concept with memory in Javascript?

I'm looking for Proof Of Work implemented in Javascript. First, I wanted to use some hashcash based approach, but realized that this might not provide acceptable protection. This is because the partial hash-inverse task is CPU intensive at best. Here, an attacker using binary to generate this partial reverse hash would likely beat any browser performance. (maybe even JIT is improved).

So I am looking for a Proof of Work that is not heavily CPU-intensive but forces it some amount of memory access to complete it, and I think this will be a task where the browser's Javascript enumeration will be much more paired with compiled binaries solving the same task. I am looking for a hint on how / where to find the implementation of some Proof Of Work memory related implementations .

+3


source to share


3 answers


State-of-the-art JavaScript-based Proof of Work looks like kaPoW , for which the source is available here .



The link you provide on Wikipedia gives a number of good links for memory binding to prove work, kaPoW should be adapted to use one of these instead if you want to use existing framework.

+2


source


Try Cuckoo Cycle proof of work at https://github.com/tromp/cuckoo

Quoting from the README:

"The Cuckoo Cycle represents a breakthrough in three important ways:

1) it only does one very cheap siphash calculation for each random memory access,



2) (estimated) memory usage grows linearly with the size of the graph, which can be given arbitrarily. there may be a very limited ability to reduce memory usage without slowing down excessively.

3) verification of proof of work is instant, requiring 2 checks of 256 and 42x2 siphash calculations.

The Cuckoo Cycle is dominated by memory latency (67%).

+3


source


You can burn bitcoins as proof of work. There is no better proof of value destroyed. Anything you "implement in Javascript" will be pretty ... but if your chaining has any meaning, eventually someone will build a better one using CUDA and then Javascript will be useless.

0


source







All Articles