A prototype of Chia's proof of space, written in C++. Includes a plotter, prover, and verifier. Only runs on 64 bit architectures with AES-NI support. Read the Proof of Space document to learn about what proof of space is and how it works. Read the contest intro to participate in the Proof of Space Contest.
git submodule init
git submodule update
make
make test
time ./ProofOfSpace -k 25 generate
./RunTests
./ProofOfSpace -k 25 -f "plot.dat" -m "0x1234" generate
./ProofOfSpace -f "plot.dat" prove <32 byte hex challenge>
./ProofOfSpace -k 25 verify <hex proof> <32 byte hex challenge>
./ProofOfSpace -f "plot.dat" check <iterations>
There is an experimental implementation which implements some of the Hellman Attacks that can provide significant space savings for the final file.
make hellman
./HellmanAttacks -k 18 -f "plot.dat" -m "0x1234" generate
./HellmanAttacks -f "plot.dat" check <iterations>
Finally, a python implementation is also provided for the verification algorithm.
git submodule update --init --recursive
python3 -m venv env
. env/bin/activate
pip3 install .
Testings uses pytest.
py.test ./tests/python -s