Skip to content

defuse/juggler-pow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 

Repository files navigation

Juggler Proof-of-Work

THIS CODE IS EXPERIMENTAL AND SHOULD NOT BE USED FOR ANYTHING.

Juggler is a proof-of-work puzzle system that requires lots of computing time and memory to solve, but very little memory to verify.

Unfortunately, it does require lots of computing time to verify, but it is a simpler operation, so it is still faster to check than it is to solve. It may be possible to remove this computational requirement on the verifier by using fancy crypto voodoo; I don't know yet.

Here are some rough performance characteristics using BLAKE2 reduced to 3 rounds as the hash function on my AMD FX-8370:

  • 0.5GB: 90 seconds proof, 20 seconds verify.
  • 1.0GB: 180 seconds proof, 40 seconds verify.

Proof sizes are rather large, ranging from 1KB to 8KB depending on the parameters. The size is tunable, trading off (I'm guessing) TMTO resistance.

I haven't made any attempt to tune the parameters or even make them consistent with each other, so the actual performance could be much better or much worse.

If you want to know how it works, look at the code. Sorry I'm tired and would rather sleep than write up an English explanation right now.

Report bugs/ideas by opening GitHub issues.

Related Work

The idea for this proof-of-work puzzle came from my attempts to understand/break:

About

A memory-but-not-time asymmetric proof-of-work function.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published