-
Notifications
You must be signed in to change notification settings - Fork 4
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
How is the initial identifier for an object created? #4
Comments
The spec is agnostic to how the state machine works and defers that behavior to the application specs. We do use the concept of a SCID in this application spec: Note that the DID Document All that said, we left SCIDs to the application layer that would build on top of the CEL spec. The CEL spec is agnostic to how the state machine processes the events and operations in the log, among two other things: https://digitalbazaar.github.io/cel-spec/#application-specifications |
I could see a world where you call the first proof hash the identifier for an inception event. I guess how would you know which proof is the first. Does it hurt to have multiple identifiers? I guess what I'm saying is proofs are essentially identifiers to the documents they secure. |
My intuition is that if we try to pick one way to generate the "initial" identifier, spec writers for applications will complain. For example, I expect various DID Methods to vary how they generate that initial hash, or more importantly, rebel if we tell them how to do it. :) This is why the spec delegates how the state machine is built to the application. Some people will use a series of full blown JSON objects in their events. Others will use JSON objects + JSON patches. Others will use a list of PDF files... others images, sound, video, MIDI files, etc. Pushing the semantics at the log / event layer, down into the state machine is probably the wrong thing to do, architecturally. It feels like a layer violation that makes it difficult for the application authors to make independent decisions.
Probably. :)
There's more nuance there, IMHO. A proof secures /something/, usually an input hash... but that input hash might not be the only thing the proof is securing. For example, in Data Integrity, the proof also secures the input parameters to the proof itself. In the |
It depends on how much you are willing to put into spec about what the The SCID is the true/pure |
A standardized independently verifiable tamper-evident log that doesn't rely on blockchain is sorely needed and I'm excited to have come across this effort. IMHO, with a prescribed SCID style solution, these logs could have a reliable, unique, stable, and cryptographically bound identifier that would be very useful for referencing and making public commitments to the log itself. Would including this in the spec preclude applications from layering their own identification schemes over top if desired? |
I like @swcurran 's point about infrastructure (or domain apex, in a more server-bound implementation) being pluggable/portable/swappable if the longer-lived SCID part is primary and everything else can be a verifiably mutable property... seems a strong argument for making SCID-identifier a CEL requirement rather than an optional extension? |
In defining
did:webvh
(formerlydid:tdw
), we included the definition of a "self-certifying identifier" (SCID) as part of the inception event for the log. The SCID serves as a stable identifier for the log, so that if the actual DID changes because the web location of the DID has to change, the SCID remains the same, and the log can still be verified.I wonder if this spec. could benefit from this same concept.
The text was updated successfully, but these errors were encountered: