Merge branch 'willruddick-master-patch-23979' into 'master'

updated some privacy settings

See merge request grassrootseconomics/cic-docs!51
This commit is contained in:
Will Ruddick 2021-04-16 12:05:23 +00:00
commit d4d066b39d
1 changed files with 30 additions and 18 deletions

View File

@ -1,15 +1,22 @@
# Redeemable Certificate Contract spec
A generic redeemable certification contract that records certification information as well as forms of evidence and validations which can be interacted with by redeemers that seek to reward the reciepent for the certificate. In effect this certificate can act as it's own ledgar - and used by marketplace applications that connect rewarders with certificate holders.
A generic redeemable certification contract that records certification information as well as forms of evidence and validations which can be interacted with by redeemers that seek to use the information and or reward the recipient for the certificate. In effect this certificate can act as it's own ledgar - and used by marketplace applications that connect clients / rewarders with certificate holders.
# Example
After completing an online course the course creator issues a Certificate to the student.
The student can accept the certificate by signing it. The student can also delete it.
The details of the cert can include the course topics, as well as any txhashes or other data references.
# Example 1 Course Certification (Proof of Action)
After completing an online course the course creator issues a Certificate to the student and endorses it.
The student can accept the certificate by signing it. The student can also delete it. The student can also choose who can see the details of the certificate, which can include credentals, course topics, as well as any txhashes or other data references.
A optional value in some currency can be placed on the certificate this can be based on the duration of the course, cost of internet and so on.
Anyone can redeem the Cert. Say a business offered the receiver a voucher for their store with a stated value in come currency. If the receiver does an AcceptRedemption the value of the redemption will be removed from the AmountNotRecieved. And future redeemers can see what value is remaining on the Cert.
Anyone can redeem the Cert. Say a business offered the student a voucher for their store with a stated value in some currency. If the Student executes an AcceptRedemption the interaction will be appended to the certificate which can be seen by future redeemers and marketplaces.
# Example 2 Product Certification (Merchant Star Ratings)
A merchant selling shoes creates a certificate claiming he sells shoes and self signs/endorses it and accepts it.
The merchant can also choose who can see the details of the certificate, which can include where the shoes are made, how, brands etc. as well as any txhashes or other data references.
A optional value in some currency can be placed on the certificate this can be the price of the shoes he is selling.
Anyone can endorse or revoke endorsment on the certificate - these endorsments can be processed for a rating system using in a marketplace.
Anyone can redeem the Cert. Say somone buying shoes. Is the merchant executes an AcceptRedemption the interaction will be appended to the certificate which can be seen by future redeemers and marketplaces.
# Usages
* Personal Data: ex. Certifying that the recipent is a mother.
* Merchant Data: ex. Endorsing a merchant (start ratings)
* Enviromental Data: ex. Certifying that the recipent is a farmer who is mulching their land or using regnerative practices. Soil quality testing etc.
* Transactional Data: ex. Certifying that the recipent is paying for school fees. The school could be a validator. If using CIC the transaction hashes themselves could add evidence.
@ -18,9 +25,11 @@ Anyone can redeem the Cert. Say a business offered the receiver a voucher for th
1. Issued to: <wallet address>
1. Acceptance: <signature of receiver>
1. Date Issued:
1. Details: []
1. Info: {description:, duration:,topics:, quality:}
1. Location: {GPS, Country, Area}
1. Viewers: [] (who can access/read the details of the Cert.)
1. Details: [] (note that no Public Identifying Information (PII) should be here - most data will be on decentralized storage accesibile to thsoe with view access given by the owner))
1. Link to details:
1. Info: {description:, duration:,topics:, quality:} (non-PII)
1. Location: {GPS, Country, Area} (non-PII)
1. Transactions: []
1. Description of data/transactions
1. Hashes: []
@ -28,12 +37,12 @@ Anyone can redeem the Cert. Say a business offered the receiver a voucher for th
1. Currency Name
1. Currency <contract address>
1. Suggested Value (amount of currency specified)
1. Validations: [] *appendable*
1. Validations/Endorsments: [] *appendable*
1. Validated by
1. Name
1. Website
1. Wallet address
1. Redemptions: [] *appendable*
1. Redemptions/Purchases: [] *appendable*
1. Redemption
1. Acceptance status
1. Name of Redemer
@ -45,16 +54,21 @@ Anyone can redeem the Cert. Say a business offered the receiver a voucher for th
1. Value
# Contract Functions:
* Issue: Anyone can issue a Cert (this specifies all the informaion and the recipient) - note there is no transfer function. Once issued to the reciever they can no longer send it to anyone else.
* Issue: Anyone can issue a Cert (this specifies all the informaion and the recipient) - note there is no transfer function. Once issued to the reciever (the owner) they can no longer send it to anyone else.
* AcceptCert: The receiver can choose to accept the Certificate
* GiveViewAccess: The owner can assign who can view the certificate details
* RevokeViewAccess: The owner can revoke view access
* Destroy: The receiver can delete remove data and send to 0x000
* Validate: Anyone can validate a Cert
* Redeem: Anyone can redeem the cert
* Validate/endorse: Anyone can validate a Cert
* Unvalidate/unendorse: Anyone can revoke their endorsement of a Cert
* Redeem: Anyone can redeem the cert (note that the certificate stays with the owner)
* AcceptRedemption: The receiver can accept a redemption.
# Marketplace:
A market place application should be able to read these certificates and support redemption.
The certificate owner would have to give the market place access to view their certificate details.
A market place application should be able to read these certificates and support rating and redemption.
Certificates can be aggregated and sorted by type, area, gender and so on.
Recipients can go here to choose to delete their certs, share them with others or approve a redemption
@ -64,6 +78,4 @@ Recipients can go here to choose to delete their certs, share them with others o
* Validators should also have certifications
* Personal Identifying Information written into the Cert is avalible to anyone that can read the Cert.
* The reciever can have the option to encrypt the data or parts of the data/details
* Zero knowlege proofs... tbt
* Zero knowlege proofs... tbt ... even if someone can't access the data for the credentials or certificate information they could validate it exists.