Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CIP-0096? | On-chain dApp Certification Metadata #499

Open
wants to merge 44 commits into
base: master
Choose a base branch
from

Conversation

RSoulatIOHK
Copy link

@RSoulatIOHK RSoulatIOHK commented Apr 7, 2023

Abstract

Certification is the process of providing various kinds of assurance of DApps through the provision of verifiable, trustworthy metadata linking to relevant evidence of assurance, such as audit reports, test run data, formal verification proofs etc.

Currently, certification does not have a standardised way to be stored and presented to all stakeholders (DApp developer, DApp stores, end-users, auditors, ...) in an immutable, persistent and verifiable way.

This CIP descibes a standardised method for certificates to be published and stored on-chain and for stakeholders to be able to verify the different claims of this certificate.

This proposal describes how certification metadata can be designed for DApp registration. It first describes the requirements for DApp certification, and then sets out the options for its inclusion in CIP-72.


(rendered proposal in branch)

RSoulatIOHK and others added 3 commits April 7, 2023 11:04
Initialization of CIP-123 for On-chain Certification Metadata Standard.

This CIP proposes a way to record certification and audits on-chain with mechanisms to:
- check the origin of the certification/audit
- anchor the on-chain certificate to off-chain metadata
- link certificates to registered DApps that used CIP-72
- link certificates to deployed version of DApps
@rphair rphair changed the title CIP-123: On-chain Certification Metadata Standard CIP-???? | On-chain Certification Metadata Standard Apr 7, 2023
@rphair
Copy link
Collaborator

rphair commented Apr 7, 2023

Thanks @RSoulatIOHK & other authors for the really well developed proposal.

We probably won't be ready for the number 123 for another 4 months or so at the rate we are going. No worries about needing a CIP number for #500 since we can also edit that when the CIP number is assigned.

It would also help to avoid confusion if you could rename the CIP folder to something that doesn't have a number in it (e.g. CIP-XXXX, CIP-????, CIP-onchain-cert-metadata).

@rphair rphair added the Category: Metadata Proposals belonging to the 'Metadata' category. label Apr 7, 2023
@RSoulatIOHK

This comment was marked as resolved.

@rphair
Copy link
Collaborator

rphair commented Apr 7, 2023

no worries @RSoulatIOHK - leaving the number assignment to the editors: https://github.com/cardano-foundation/CIPs/tree/master/CIP-0001#1a-authors-open-a-pull-request

... comes mainly from popular collisions of self-assigned numbers causing editorial & community difficulties. The tendency to favour small-straight and "yahtzee" numbers can also lead to breaches of a mostly chronological order. The number assignment has also accommodated the sentimental value for birth years for honorary figures in Cardano's symbolism and roadmap. All this is in lore rather than the text of CIP-0001 but maybe we should be more explicit about it.

I can also understand the tendency of working groups to give a CIP draft a memorable identifier (e.g. 123) and hope that over time some general, non-numerical means of identifying these works in progress can be adopted. 🤓

@rphair
Copy link
Collaborator

rphair commented Apr 7, 2023

@matiwinnetou maybe you would review based on your work in #393?

Copy link
Collaborator

@Ryun1 Ryun1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @RSoulatIOHK (and other authors),

I am quite a fan of this proposal! I believe it works nicely with the approach of CIP-72?. Furthermore I believe this addresses CPS-01?: by allowing for discoverable, and verifiably correct certification metadata, whilst offering a mechanism for trust.

See my review comments. :)

CIP-onchain-cert-metadata/README.md Outdated Show resolved Hide resolved
CIP-onchain-cert-metadata/README.md Outdated Show resolved Hide resolved
CIP-onchain-cert-metadata/README.md Outdated Show resolved Hide resolved
CIP-onchain-cert-metadata/README.md Outdated Show resolved Hide resolved
CIP-onchain-cert-metadata/README.md Outdated Show resolved Hide resolved
CIP-onchain-cert-metadata/README.md Outdated Show resolved Hide resolved
CIP-onchain-cert-metadata/README.md Outdated Show resolved Hide resolved
CIP-onchain-cert-metadata/README.md Outdated Show resolved Hide resolved
CIP-onchain-cert-metadata/README.md Outdated Show resolved Hide resolved
CIP-onchain-cert-metadata/README.md Outdated Show resolved Hide resolved
rphair and others added 2 commits April 7, 2023 23:53
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
@rphair rphair changed the title CIP-???? | On-chain Certification Metadata Standard CIP-???? | On-chain dApp Certification Metadata Apr 7, 2023
Now the json examples are valid against the schemas and the schemas no longer have errors.
CIP-0096/README.md Outdated Show resolved Hide resolved
CIP-onchain-cert-metadata/README.md Outdated Show resolved Hide resolved
Copy link
Collaborator

@rphair rphair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@RSoulatIOHK since cd2e166 said Addressed the last remaining comments I went back to check since I am looking to give this an endorsing review after all the great progress in the last couple of months (p.s.: and also today). 👏

I've resolved the majority of comments that appear fixed, but according to my reckoning these issues still remain at the time of your last commit:

Copy link
Collaborator

@rphair rphair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks @RSoulatIOHK for resolving 2 of the 3 questions with ec444bf, but please how is this question answered? #499 (comment)

@RSoulatIOHK
Copy link
Author

thanks @RSoulatIOHK for resolving 2 of the 3 questions with ec444bf, but please how is this question answered? #499 (comment)

I'm not sure if I understood the question.

I can something about having the contract addresses as mandatory fields in both registration and certification so that when signing a transaction, a wallet could give assurance to a user that they are interacting with a certified version of a Dapp. Would that answer the question? I can even try to draw that in a time diagram to illustrate.

@rphair
Copy link
Collaborator

rphair commented Jun 9, 2023

thanks @RSoulatIOHK, that sounds to me like it would be helpful to add, but @Ryun1 works regularly with these types of wallet interactions & it was his question so I believe he's the best choice to clarify his question & accept your answer. 🤔

@Ryun1
Copy link
Collaborator

Ryun1 commented Jun 16, 2023

Thanks @rphair @RSoulatIOHK, I have responded to #499 (comment).

Copy link
Collaborator

@rphair rphair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

84a37f4 takes care of the last question #499 (comment) so I believe this is fully reviewed now... great work everybody 😎

@rphair
Copy link
Collaborator

rphair commented Jun 20, 2023

Thanks @MIxAxIM for dropping in to discuss this at today's CIP editor's meeting. We noted that there is a (currently rough draft) certification document but that including it, or any on-chain implementations of it, would not be required to merge this with Proposed status since the Path to Active already refers to it generally.

Any more rigorous definitions of certification levels that evolve in the course of implementation can be included in a future PR which defines this CIP as Active.

One pending item (cc @RSoulatIOHK) that came up at the meeting is how to handle versioning. Consensus (cc @Ryun1) was to try to define certification schema versions in different files (by version ID {1, 2, ...}) like we have for CIP-0072: https://github.com/cardano-foundation/CIPs/tree/master/CIP-0072 (files {version_1_offchain.json, ...}).

@RSoulatIOHK
Copy link
Author

Oops sorry I missed that this CIP will be in the agenda. My apologies... and thank you @MIxAxIM for being there!

Thanks @rphair and @Ryun1 for your comments and suggestions. I'll do the versioning as it is done in CIP 72.

@rphair
Copy link
Collaborator

rphair commented Jun 24, 2023

@RSoulatIOHK @MIxAxIM thanks & the last update works just as well as in CIP-0072.

One thing we may have missed in CIP-0072 (cc @ehanoc @matiwinnetou) which could be a problem again here: The schema files are duplicated between the CIP text and the associated .cddl and .json files:

  • At least that means that corrections have to be applied in both places & might get out of sync.
  • Also we have an issue in both CIPs of the length of the schemas overwhelming the amount of ordinary text.

Could I propose that these schemas simply be linked rather than included inline (like in CIP-0060)? And could the CIP-0072 authors consider doing the same in a near term PR?

@Ryun1 @KtorZ I can imagine there might be reasons to include the whole schemas inline and would like to review them if so. Pending this one issue it looks like this CIP has met all challenges so far and we might even consider merging it at the next meeting (apply Last check?).

@rphair rphair requested a review from KtorZ June 24, 2023 09:52
Removed the Schemas from the readme.
Added links to the schemas files.
Added a JSON example for the onchain.
Fixed the subject value in the examples.
@RSoulatIOHK
Copy link
Author

Thanks for the suggestions. I linked to the schemas files but kept the examples in the text. I like the idea, I think it makes it clearer for the reader that just wants to see what is proposed but doesn't have the need to really dive into the schemas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category: Metadata Proposals belonging to the 'Metadata' category.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants