Skip to content

feat: add a draft specification for prism VDR (WIP) #3

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

FabioPinheiro
Copy link
Contributor

This is still a draft

Scecrtiong missing :

  • integration with this generic VDR interface
  • integration with the DID Service (propose a new DID service type)

Signed-off-by: FabioPinheiro <fabiomgpinheiro@gmail.com>
- PRISM CredentialBatch - Specification is not public
- Anyone else that want to for whatever reason

CRYPTOGRAPHIC_CURVE is the key type used by the master key master key. It follows the guidance of [CIP-0016 - Cryptographic Key Serialisation Formats](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0016)
Copy link

@shaileshp0110 shaileshp0110 Mar 31, 2025

Choose a reason for hiding this comment

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

master key master key twice

The larger the amount of data, the more expensive it will be to submit as metadata in a transaction. Additionally, transaction metadata has hard limits.

When a Storage Entry is created, the first field, `E-7-1`, refers to the identity SSI of the creator of the Storage Entry.
The Storage Entry is also designed existe on chain, similar to the SSI Entries. The creator is allowed to send follow-up events/operations to update the content.

Choose a reason for hiding this comment

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

existe -> exist


For more documentation ref to [**prism:did specs**](https://github.com/input-output-hk/prism-did-method-spec/blob/main/w3c-spec/PRISM-method.md).

But the sumany the DID only exist if the SSI is create `#E-1` and not deactivate `#E-6`.

Choose a reason for hiding this comment

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

To summarize, a DID is valid only when its underlying SSI has been created #E-1 and not deactivate #E-6.

For more documentation ref to [**prism:did specs**](https://github.com/input-output-hk/prism-did-method-spec/blob/main/w3c-spec/PRISM-method.md).

But the sumany the DID only exist if the SSI is create `#E-1` and not deactivate `#E-6`.
The DID Docuemtn is a simplacy version of the lasters status of the SSI.
Copy link

@mineme0110 mineme0110 May 26, 2025

Choose a reason for hiding this comment

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

The DID Document is a simplified representation of the SSI's latest status

The DID Docuemtn is a simplacy version of the lasters status of the SSI.
That does not contains the `MASTER_KEY`; `ISSUING_KEY`; `VDR_KEY`.

Note: There are usa case where the SSI entry is not used as a DID. For example if you cares about managing Storage Entry.
Copy link

@mineme0110 mineme0110 May 26, 2025

Choose a reason for hiding this comment

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

It is confusing sentence for me , apart from the spelling mistakes

Comment on lines +129 to +133
The data type for a Storage Entry is defined by the create event/operation. Depending on the filter used in the data, the following types of information/data may be stored:
- `E-7-3` - **bytes**: Represents a raw array of bytes.
- `E-7-4` - **Token Status List**: Represents a status list, as defined by https://datatracker.ietf.org/doc/draft-ietf-oauth-status-list/10/
- `E-7-5` - **bitstring_status_list**: ????
- `E-7-?` - **CID (content identifier)**: A reference to an IPFS document.

Choose a reason for hiding this comment

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

What do you think about storing just raw bytes and use media type to express how to handle the data? Application will interpret the data and protocol don't need to care what is being stored.

For example

  • text/plain; charset=utf-8
  • application/statuslist+jwt
  • one of options in bit string statuslist
  • other possible media types in SSI ecosystem

- The Indexer MUST be deterministic.
- The Indexer MUST be able to rever all steps to a previous `Cardano Block`.
Ideally, we recommend that the index is able to backtrack all the steps and unapply.
- It's not responsibility of the Indexer to validate the signature of the PRISM Operation.

Choose a reason for hiding this comment

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

Interesting take. Why isn't this similar to the resolver? Behind the VDR interface, client wouldn't have the ability to replay all the events? Maybe in this document Indexer != VDR driver?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants