Skip to content
/ poo-attest Public

Proof-of-Ownership attestation tool via commitment schemes

Notifications You must be signed in to change notification settings

rpj/poo-attest

Repository files navigation

Create proof-of-ownership attestations via a commitment scheme.

As an illustration we'll create the attestation for this repository itself:

$ ./attest --name="Ryan Joseph" --email="ryan.joseph@gmail.com" --desc="poo-attest" --domain="https://github.com/rpj/poo-attest" --home="https://github.com/rpj/poo-attest"
SHA256 331823878b420ad85e0240483f5b6c44327a5b14ef6ef0911c326999e6f882d4
Wrote "/home/ryan/repos-native/poo-attest/331823878b420ad85e0240483f5b6c44327a5b14ef6ef0911c326999e6f882d4_SHA256.txt"

The resuling hash - 331823878b420ad85e0240483f5b6c44327a5b14ef6ef0911c326999e6f882d4 - is the revealable information.

The generated output file is the commitment and must be kept secret until proof-of-ownership is required.

In this case, as we want to illustrate the end-to-end process, we'll reveal it immediately:

$ cat 331823878b420ad85e0240483f5b6c44327a5b14ef6ef0911c326999e6f882d4_SHA256.txt
This document serves to provide proof that Ryan Joseph <ryan.joseph@gmail.com> is the owner of "poo-attest" at https://github.com/rpj/poo-attest.
This attestation is made 1/15/2022, 8:23:18 PM (America/Los_Angeles), and will be housed in perpetuity at/under https://github.com/rpj/poo-attest.

xrb4JpZhu1pTb2TX+ucYqX0cp/7bfC6z+LmZ/8ZQfwKO86NhDHJvjgXS0m7k9hLF08zLRlG1cHYOPpdwv9G10nA7OVu43JfXAJP1aiRm9gXTN9Bo7CCP/V+B
H7cHAblXw+Wn7tzleETLqlhh2PLqv2p1xzP2hTN9jyJvS/CPKPsBo+0sO+ueMyU4qV53s3afkBA+BIcCQt3tPy5mV7izPYb6rwIPyAGLDBVhkDFVICUTkshh
vON9XGDQU/ctytXx1tGC9bf5or/nYE2XfXD4pVPdYpi+21hoIQeIdLuEHQMYLpb+RBHzF3zX9UWOmoWYrgBHd6H640/GYNcdGemOWXpJoJBoF/4apliidc6H
R5VEBfcV4wwYGnr45Z2Y12nKfnGG+j+iAs0O0XahBpsB+P/+Gt049FXUnK1cMSf2h19EopICokslbT1hrKQxJV0F5VxIIOYyHG600NA+lS0qMq12quTSZdqq
jZJ9Ag95b0sYt6aN1FI7ffrME+x0lDoz6IWtTC5vaBdihiuZMhnhkQlnu/hQMVThEkwDO0fjfrQunGiXl7KUj1a18zxJotH0Lr6m8QKRpP83+rlIdKQKEeTa
b7t8h4tYQLux+7Z9GSbwEhglKopkuxGraR5iCWxXmZvCGqFQGQfEpYMwOChpVnNtEN7JRQrMr981odNvTMg=

Generated by poo-attest 1.0.3, source file SHA256: b99d12900f46fd17d5726818e1d00189629454e65647b7db9b05d553d3693d23

In order to verify ownership, the hash of the commitment is recalculated with the appropriate algorithm:

$ cat 331823878b420ad85e0240483f5b6c44327a5b14ef6ef0911c326999e6f882d4_SHA256.txt | shasum -a 256 -
331823878b420ad85e0240483f5b6c44327a5b14ef6ef0911c326999e6f882d4  -

Importantly, we produce the matching result: 331823878b420ad85e0240483f5b6c44327a5b14ef6ef0911c326999e6f882d4.