You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Drew DeVault 6f9ea7d249 Overwrite spinner when showing proof 5 months ago
argon2i Add 'argon2i/' from commit '440ceb9612d5a20997e3e12728542df2de713ca4' 6 months ago
doc Return 1 for invalid proof, 2 for usage errors 5 months ago
include Fix build on macos 5 months ago
src Overwrite spinner when showing proof 5 months ago
.gitignore .gitignore: add object files and manpages 6 months ago
COPYING Initial commit 6 months ago
Makefile Add install and uninstall targets 6 months ago
README Use leading zero bits instead of digits 5 months ago
config.sh Add install and uninstall targets 6 months ago
configure Implement everything 6 months ago

README

				    mkproof

mkproof is a small C program for generating proofs of work.

Installation

If mkproof is available as a package on your system, prefer to install that
rather than build it yourself.

mkproof depends only on a POSIX-like environment and a C99 compiler.

$ ./configure
$ make

This will produce three executables: mkchallenge, mkproof, and checkproof.

Usage

The situation: Bob wants Alice to do something, but Alice isn't sure if Bob is a
robot.

1. Alice runs `mkchallenge` and sends the challenge to Bob.
2. Bob runs `mkproof <challenge>` and wastes some CPU time. After several
minutes of work, a proof is printed to stdout.
3. Bob sends the proof to Alice.
4. Alice runs `checkproof <challenge> <proof>` to verify the work.

Now Alice can be reasonably confident that Bob is not a robot, and proceed with
Bob's request.

Algorithm

To make a challenge, generate 16 random bytes. Choose the argon2 iterations and
memory parameters, and the number of zeroed digits, to tune the