Independently validating your blockchain proofs
ProvenDB proofs are Chainpoint compatible. They can be independently validated by using the Chainpoint CLI or Javascript interfaces. The chainpoint whitepaper describes the logical process and theoretical underpinnings of Chainpoint proofs.
However, the hash values that are calculated for an individual ProvenDB document or a complete ProvenDB version are unique to ProvenDB. These algorithms are open source and contained in the GitHub repository https://github.com/SouthbankSoftware/provendb-verify.
This github repository also contains the source code for the provendb-verify ] tool, which can be used to independently verify ProvenDB or ProvenDocs proofs. The tool can also be downloaded from https://provendb.com/downloads.
You can export and independently validate your database proofs using the procedure below. These proofs are not dependent in any way on the ProvenDB or Chainpoint platforms.
Download an export of your database
See Exporting your data for detailed procedures.
Decrypt the export
Using the provendb-decrypt command downloaded from https://provendb.com/app/downloads, and the password provided to you in the previous step, decrypt the archive
./decrypt -k wyiC8OScBCKSkJIhEIvL384XWrH4488l -i ~/Downloads/Z8GGNGB6K4OFan38WaQtkvAOtzSNuVJq.gz.pw
Restore the archive to a MongoDB database
Below we restore the archive to an unsecured database on the localhost. Use other options of mongorestore to load into a remote database if desired.
mongorestore --gzip --archive=Pp60rZC-hLhBfHDL1WLQx45cjTmQnr5P.gz
Use provendb-verify to validate your proofs
Download provendb-verify from https://provendb.com/app/downloads or build it from the github repository https://github.com/SouthbankSoftware/provendb-verify.
You can list the proofs within the restored database using the --ls
option:
$ provendb-verify -db dev_guy01 --ls
proofId version submitted status
53780ed0-45f2-11e9-a4bd-01752f568485 34416 2019-03-14 11:44:29 +1100 AEDT valid
4ab726f0-45f2-11e9-a4bd-01738939dce1 34407 2019-03-14 11:44:14 +1100 AEDT valid
422b31c0-45f2-11e9-a4bd-01abc446c1ea 34398 2019-03-14 11:44:00 +1100 AEDT valid
399614d0-45f2-11e9-a4bd-01940bff0df9 34389 2019-03-14 11:43:46 +1100 AEDT valid
317a94b0-45f2-11e9-a4bd-01fbdddc1aba 34380 2019-03-14 11:43:32 +1100 AEDT valid
Next we validate a proof using the proof id obtained from the previous step:
$ provendb-verify -db dev_guy01 --pid 53780ed0-45f2-11e9-a4bd-01752f568485
Hashing database `dev_guy01`... 352/352
Verifying Chainpoint Proof...
Verifying Chainpoint anchor...
Verifying Bitcoin anchor...
Verifying Bitcoin transaction OP_RETURN...
Verifying Bitcoin block merkle root...
Bitcoin transaction e0ed2fd9065f8adc26e9d82bd6fff700ba376dc69359e1bfe2190a5066ee5715 has OP_RETURN e0c89977e1723891c66e01b769f875ad159478cc78801d9c6dd1e402a3b67373
Bitcoin block height 566950 has merkle root 078c04383f3038b95730f92b27c7f835c4df822de0920a9d9bc697959a48a35c
PASS Database `dev_guy01` in version 34416 is verified```
Updated over 5 years ago