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

CPS-0001 | Metadata Discoverability and Trust #371

Closed
47 changes: 47 additions & 0 deletions CPS-0001/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
CPS: 1
Title: Metadata Discoverability and Trust
Authors: Bruno Martins <[email protected]>
KtorZ marked this conversation as resolved.
Show resolved Hide resolved
Status: Proposed
ehanoc marked this conversation as resolved.
Show resolved Hide resolved
Type: Standards
ehanoc marked this conversation as resolved.
Show resolved Hide resolved
Category: Wallets | Metadata | Plutus
ehanoc marked this conversation as resolved.
Show resolved Hide resolved
Proposed Solutions: https://github.com/cardano-foundation/CIPs/tree/master/CIP-0026,
https://github.com/cardano-foundation/CIPs/pull/355,
https://github.com/cardano-foundation/CIPs/pull/85,
https://github.com/cardano-foundation/CIPs/pull/112,
https://github.com/cardano-foundation/CIPs/pull/137,
https://github.com/cardano-foundation/CIPs/pull/299
ehanoc marked this conversation as resolved.
Show resolved Hide resolved
Created: 2022-19-10
---

## **Abstract**
This document attempts to describe the problem in the Cardano ecocystem where there are many different types **subjects** or *chain entities* and there's a need to associate metadata with them. This metadata can be used to describe an script, stake pools, script hashes, token policies and applications. This metadata can be used to provide information to the user on it's applications, it's trustworthiness and how to interact with it.
ehanoc marked this conversation as resolved.
Show resolved Hide resolved

## **Goals**
- Define how metadata can be associated with the a subject (i.e dapp, stake pool, token policy, etc)
- Metadata should be discoverable by wallets and applications
- Associate some form of identity to a metadata claim

## **Use Cases**
- Find scripts used by a dApp
- Discover general information of a dApp (i.e name, description, icons, etc)
- Find the different metadata claims associated with a subject
- Associate some form of identity to a claim's owner so that it can be verified cryptographically
- Offer mechanism to attest for the correctness of a given metadata object that can be fetched by wallets and applications from off-chain sources (i.e CIP-26 complaint servers)
- Discover datum schemas used by a script in a specific context or dApp use cases
- An wallet receiving a request to connect to a dApp, it can verify the authenticity of the dApp and the metadata associated with it.
ehanoc marked this conversation as resolved.
Show resolved Hide resolved

## **Problem**
**`Discoverability`**: Means to discover the different metadata claims associated with a subject. Discoverability is important for wallets, applications (i.e dapps, stores, etc) and users to be able to find the different metadata claims associated with a subject. This is important for the user to be able to make an informed decision on how to interact with a subject.

**`Correctness`**: Lack of mechanism to assert that a given metadata claim is correct. Anybody and any service can provide metadata structures, but it's necessary to attest for the correctness of this metadata so that the user (or applications) are be able to make an informed decision in accepting, rejecting or how to interact with a subject.

**`Trust`**: There's no standard mechanism to assert that the metadata is coming from a legitimate source. This is important for the user to be able to make an informed decision on how to interact with a subject. This is also important for applications to be able to provide a better user experience.

## **Open Questions**
- Is this a combination of problems and should be split into multiple CPS?
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is this a combination of problems and should be split into multiple CPS?

It might make sense to split this problem by metadata subject i.e. stake pools, tokens, scripts, etc. As the problem can be solved quite differently for each of these entities.

Without the historical context for CPSs its hard to know how wide the scope should be.

- Does this englobes all the problems related to metadata?
- Trust can be anchored to the owner's metadata or also third-parties that attest for the correctness of the metadata. How to handle this?
- How to associate identity to a metadata claim?
- How to handle the case where a subject has multiple metadata claims associated with it?
- How to handle the case where a subject has multiple metadata claims associated with it and the user wants to select a specific one?
Copy link
Member

Choose a reason for hiding this comment

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

Please re-order the sections as per the latest structure 🙏 (and apologies for this, I guess that goes with being one of the first CPS pioneers!):

  • Abstract
  • Problem
  • Use Cases
  • Goals
  • Open Questions

Also, given the numerous proposed solutions; it might help to formulate what part of the problem remains to be solved and what parts have been properly addressed already.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Also, given the numerous proposed solutions; it might help to formulate what part of the problem remains to be solved and what parts have been properly addressed already.

Great @KtorZ ; i think here there some attempts in coming out with some solutions (i.e token metadata, off chain storage[cip-26]), for very specific use cases but not to the general problem of discovering, verifying and asserting trust in metadata?

Maybe someone can help me by pointing out current solutions / implementations, that in their opinion, are working well for a specific context. And those can provide lessons to try tackle this in a more generalized way.

CC: @rphair @SebastienGllmt

Copy link
Member

@KtorZ KtorZ Nov 30, 2022

Choose a reason for hiding this comment

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

What I meant was that, the current document lists several CIPs as "proposed solutions"; which implies that the listed proposals address either partially or fully the problem. If they are simply related to the problem, but not actual solutions to it, then I'd suggest to move them elsewhere (i.e. in the problem statement itself, if those existing efforts and their shortcomings are worth mentioning).

(note: I haven't reviewed the statement yet, nor any of the linked PR; so I am mostly speculating here. My gut feeling being that this particular CPS is about some dimensions of metadata -- discoverability and trust -- that existing CIPs do not address properly. Hence, they shouldn't be listed as 'proposed solutions' because none of them is about solving the discoverability and trust problem in the metadata landscape -- except maybe CIP-0068 in some sense?)