Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
KERI event stream - events that effect did document key state #46
KERI event stream - events that effect did document key state #46
Changes from 3 commits
1e691ee
b14d0d2
ef95234
485a48f
bc54518
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this a statement about KERI keys, or about DIDs? I think this is about DIDs in general. Not sure why it is called out here in this way, as if it was a unique feature of KERI. The rest of this reads (to me, at least) about normal DIDDoc contents.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the point here is that KERI AID keys don't generally distinguish between authenticating the controller of the identifier and signing for that controller. In other words, the text is trying to make the point that the same key shows up in two verification relationships (usually), which is not a generally true assumption in all of DID-land.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@swcurran although I only meant to specify the TODO with my change, I read the meaning of this section the way that @dhh1128 explained. Since AIDs are KEL backed the key state applies to both verification relationships.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmmm…still doesn’t seem like something needed to be called out for did:webs. To create/evolve a the DID, I execute KERI events to accomplish my goal. If that requires I use some keys for authentication to make the changes, I don’t think it need be call out in the DIDDoc section.
Happy to leave it for now (especially since it is merged :-) ), but lets see how it reads in a final review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should this be “In
did:webs
service endpoints are defined by 2 sets of signed data using KERI’s Best…."There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this the same for all services in the DIDDoc, or just the KERI services? If just the KERI services, I think it should be in the next section, with this intro section covering all DIDDoc services.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@swcurran great questions! I only meant to update the ref to BADA-RUN since we detailed it in security characteristics. I will tackle detailing service endpoints in a future PR. this PR is focused on a few small fixes (like this one) and key-state related content. Would it be okay to punt this to a new issue #48 ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should be “that can alter the key state of the AID.” The DIDDoc derives from the key state, but the DIDDoc doesn’t have key state.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the bit about the transferrable, non-transferrable should be in the inception event bullet point, not in the title.
I assume we can’t change this, but the term “transferrable” I find to be quite confusing. It means AFAIK that the the keys in the DID can’t be rotated. I’m sure there is a reason behind the term “transfer”...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've fixed this wording and it will be in the next PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The term "transferrable" means that control can be transferred from the current keys to the next keys that were committed to (via the rules of pre-rotation). Both inception and rotation events can provide transferability by specifying a set of next key hashes that commit to the transferability. It is also possible to end the ability to transfer control to next keys by not committing to a set of next keys. This could happen in the inception or rotation event. So perhaps I should keep it in this section above but be more explicit that it applies to both inception and rotation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I’ve long heard in the broader community and used the term "rotate keys" for the operation we’re talking about. And we enable it in KERI by specifying evidence of “pre-rotation” keys. AFAIK, only the KERI community uses the “Transferrable” — which for me has no connection to key rotation. When I hear it, I jump to transferring control of the DID from one entity to another, or perhaps transfering a DID from one ledger (e.g. DID identifier) to another.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree that the pre-rotation mechanism must be included for the inception event and rotation events to enable additional rotations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will there be more events added to this? I’m assuming there will be — adding keys, adding services, setting the DID URL, changing the DID URL, signing documents at least.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I tackled the basic key-state events first. Based on feedback from the group I will repeat the 'format' of this PR for these issues service enpoints, verifying DID urls, etc.
We have some upcoming multisig work by Markus, that should help detail how to add/remove keys.