Skip to content

cryptoproofinfo/webapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

Cryptographic Proof Of Association

Bitcoin subkey index

A method of identification by which users who submit their bitcoin extended master public keys which comply to the BIP32 standard can have their identity inferred by checking if a subsequent address is a product (subkey) of that public key.

A very simple website with very big implications.

Our service is completely unique and was thought up not only promote the use of bitcoin as a tool for liberation but to also help protect consumers in the new world of 3D printed products which is just on the horizon.

Built from the ground up to be a trustless system, no user names, no passwords, no risk of theft from subkey addresses and no public keys written to disk which means no risk of subkey address exposure even if the site were to become compromised.

Accounts are verified on the back of https certificate authority providers and so no formal identification is required of any kind either.

How it works:

CPOP is a concept made possible by the recent(ish) introduction of BIP32 functionality into cryptocurrencies like Bitcoin.

For those not in the know, BIP32 is a standard by which it is possible to create master private and public keys from which many 'baby' subkeys can be produced.

These subkeys are mathematically linked to one another so for example Bitcoins can be sent to a sub public key address generated by Alice who lives in the UK using the master public key but the funds can only be spent by Bob who lives in America and has the master private key.

This is clearly very useful but what else can we do with this? We can use it for verification and ID!

Our idea is simple, businesses and individual people can register their master public key with our website which members of the public will be able to visit and confirm if a subkey they have been provided with belongs to the company/individual they believe it does.

Example use case:

In the future when you order an item from a vendor such as a cup or a toy it seems sensible to envision a scenario where rather than have the vendor mail it to you or send it by drone they instead send the blueprint to your 3D printer which produces the item instantly for you at home or maybe they print the item for you themselves and then physically send it but in either case how can you know that you purchased the item from the producer in question and not someone who ordered an item themselves, intercepted the blueprint or scanned the product which was delivered to them and just sold you a clone? (this is a huge problem in the pharmaceutical industry)

Cryptoproof solves this by providing a common location where vendors can register their bitcoin extended public keys allowing them to brand each item with a unique subkey address which cryptoproof can verify so that the consumer can know if a product originates from the producer that they think it does (by seeing if a verified account is associated with it) and if there is more than one copy of that item in existence (by seeing if/how many times that address has been submitted in the past).

Using bitcoin addresses for this purpose adds an extra dimension to the scenario because value can be transmitted to and from them which allows not only for verification but also can be used to keep an immutable record showing how much was paid for the item, who paid it and when the transaction took place.

This technology has the potential to save lives.

Another feature of this method is 'blockchain unburdening', the scanning and submitting of keys in this way does not involve the blockchain and will not contribute to any unnecessary bloat.

Bullets, condoms, electronic parts, photo ID (passports - drivers licenses), receipts, invoices, files (torrents - legal documents), pharmaceuticals, etc. The list is endless.

API:

https://cryptoproof.info/api/search

python api_tool.py search <compressed_bitcoin_address>

status : bool # true
message : dict
  compressed_address : str
  associated_url : str
  verified_status : bool
  hits : int

https://cryptoproof.info/api/url

python api_tool.py url <https://example_url.com>

status : bool # true

https://cryptoproof.info/api/verify

python api_tool.py verify

status : bool # true

https://cryptoproof.info/api/account

python api_tool.py account

status : bool # true
message : dict
  deposit_address : str
  credit : decimal
  available_keys : int
  upper_index : int
  free_keys : int
  balance : decimal
  price : decimal

https://cryptoproof.info/api/login_history

python api_tool.py login_history

status : bool # true
message : list

https://cryptoproof.info/api/subkey_activity

python api_tool.py subkey_activity

status : bool # true
message : list

https://cryptoproof.info/api/transaction_history

python api_tool.py transaction_history

status : bool # true
message : list

https://cryptoproof.info/api/index

python api_tool.py index <new_index_level>

status : bool # true

https://cryptoproof.info/api/withdraw

python api_tool.py withdraw <bitcoin_address>

status : bool # true

error

status : bool # false
message : str