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-0115? | CBOR tag definition - ED25519-BIP32 Keys #753

Merged
merged 25 commits into from
Mar 5, 2024

Conversation

stevenj
Copy link
Contributor

@stevenj stevenj commented Jan 26, 2024

This CIP is both desired by Project Catalyst to help define CBOR data structures, and serves also as an example implementation for #752.

Note, the example registry in #752 has matching definitions for these tags, typically a PR would include changes for that file once its been merged.

This is the third of three PRs that should be considered together for context.

See also:

Closes input-output-hk#4


Rendered proposal on author's fork

@stevenj stevenj changed the title docs(Tags): Add draft CIP to define tags for ED25519-BIP32 keys/signatures CIP-???? | CBOR Tag definition for CIP-0003 ED25519-BIP32 Keys Jan 26, 2024
@Ryun1
Copy link
Collaborator

Ryun1 commented Jan 26, 2024

Should this be its own CIP or could this just be added as a document inside of #752? (once merged)

Just thinking if it is easier to manage if contained in one CIP?

@stevenj
Copy link
Contributor Author

stevenj commented Jan 26, 2024

Should this be its own CIP or could this just be added as a document inside of #752?

Just thinking if it is easier to manage if contained in one CIP?

I didn't think it was normal to keep editing CIPs once they are accepted?

There are a bunch of candidates for tags, this is just a really easy one I need right now.

CIP-19 jumps to mind as well.

I was following the example of the metadata registry CIP-10, So #752 just explains how tags are handled, and that new tags are supposed to include a patch to its registry file.

Also, as another example, I am drafting a new cip for registration of various roles in catalyst. It will define a CBOR data structure and I will probably tag it as well, the CIP will define both the metadata structure, and any specific tags it creates related to it. These tags are used by it, but are not defined by it, so it seems wrong for it to define ED25519 tags which come from CIP-0003.

The alternative is to add a section to the end of CIP-0003 which defines these tags and canonical CBOR encoding, but that would then alter that CIP which has been around for a while.

@rphair
Copy link
Collaborator

rphair commented Jan 26, 2024

@Ryun1 @stevenj adding CIPs for tag definitions would be consistent with our precedent for CIP-0068 - for which the metadata and motivation / rationale would be hopelessly more complicated than we could ever simply tabulate in the originally conceived CIP-0067 table to store for each asset label.

Since we've told new asset label (token type) creators to submit new CIPs for any new definitions beyond the first four, it would make sense to do so here... and even more sense if @stevenj your planned introduction of these key/tag definitions can be broken into groups as large as possible, as you already appear to have done here.

On the other end of the complexity spectrum: we were able to "get away with" using a simple JSON array in CIP-0010 because the information stored was simpler, and the details of each entry were colloquial and could be challenged in the PR if necessary (cc @KtorZ). But the information associated with each of these CBOR tag/keys needs more authentication which needs to be documented more officially: so requiring new CIPs does make sense.

@stevenj one thing we needed to stipulate for both CIP-0013 and CIP-0068 (cc @Crypto2099)... to make both of them "extensible"... is to say very clearly that a certain number of initial definitions were supported in the original CIP and then others beyond would follow a specific form. You may already have done this but please keep this "plug-in" convenience as a goal when refining your draft for #752.

... and therefore @Ryun1 that would indeed allow a number of initial definitions to included as suggested in #753 (comment).

@rphair
Copy link
Collaborator

rphair commented Jan 26, 2024

@stevenj @Ryun1 - separate question from the last: I'm avoiding tagging this Metadata or Tools until we settle the question asked earlier in #752 (comment).

@Ryun1
Copy link
Collaborator

Ryun1 commented Jan 29, 2024

Agreed @stevenj @rphair

lets do new CIPs!

@rphair
Copy link
Collaborator

rphair commented Jan 29, 2024

@Ryun1 it does seem like it would be cleaner to have 1 CIP for the framework and 1 CIP for each new set of related keys. We were kind of stuck with CIP-0068 because we had to represent the state of the art until that point... but here we can start fresh, so there's no reason the framework CIP would have to include a "base" set of keys (I'd be happy to leave that to @stevenj this time).

This can be confirmed during Triage at the next meeting where it would be up for introduction anyway (I've put it on the agenda): https://hackmd.io/@cip-editors/81

@Ryun1
Copy link
Collaborator

Ryun1 commented Jan 29, 2024

@Ryun1 it does seem like it would be cleaner to have 1 CIP for the framework and 1 CIP for each new set of related keys. We were kind of stuck with CIP-0068 because we had to represent the state of the art until that point... but here we can start fresh, so there's no reason the framework CIP would have to include a "base" set of keys (I'd be happy to leave that to @stevenj this time).

I agree!

Copy link
Collaborator

@Crypto2099 Crypto2099 left a comment

Choose a reason for hiding this comment

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

Minor personal preference but I would love to see a stripped down template of this CIP as a demonstration for future Tag definition CIPs.

CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
@Crypto2099
Copy link
Collaborator

Going to echo some of the sentiment from @rphair and @Ryun1. I love how these three PRs have been drafted to work in unison and provide a "clean" template for how these "registry" types of CIPs/CPSs could be defined in the future. This seems much cleaner than what we have learned through past experience w/ CIP-10, 68, etc.

CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
@rphair rphair changed the title CIP-???? | CBOR Tag definition for CIP-0003 ED25519-BIP32 Keys CIP-0115? | CBOR Tag definition for CIP-0003 ED25519-BIP32 Keys Feb 6, 2024
@rphair rphair changed the title CIP-0115? | CBOR Tag definition for CIP-0003 ED25519-BIP32 Keys CIP-0115? | CBOR tag definition - ED25519-BIP32 Keys Feb 6, 2024
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.

@stevenj the question posted in #753 (comment) has been answered:

This week's CIP meeting concluded by undisputed consensus that the CBOR Registry related CIPs and CPS are of Category: = Tools (rather than Meta or Metadata) in short because these formats will inevitably be consumed off-chain by a currently unknowable variety of applications.

CIP-xxxx/README.md Outdated Show resolved Hide resolved
stevenj and others added 8 commits March 5, 2024 14:20
Co-authored-by: Robert Phair <rphair@cosd.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
stevenj and others added 4 commits March 5, 2024 14:34
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
CIP-xxxx/README.md Outdated Show resolved Hide resolved
stevenj and others added 4 commits March 5, 2024 16:36
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
@stevenj
Copy link
Contributor Author

stevenj commented Mar 5, 2024

Minor personal preference but I would love to see a stripped down template of this CIP as a demonstration for future Tag definition CIPs.

I think this is a good idea and will work on something to that effect.

CIP-0115/README.md Outdated Show resolved Hide resolved
CIP-0115/README.md Outdated Show resolved Hide resolved
CIP-0115/README.md Outdated Show resolved Hide resolved
stevenj and others added 5 commits March 5, 2024 23:56
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
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.

By my reckoning this now includes @Ryun1's last few spotted improvements & the admonitions (in advance of IANA official assignment of tags) @stevenj was talking about adding at today's meeting. So I believe we are now all set to merge between meetings if other editors approve.

@rphair rphair requested review from Ryun1 and Crypto2099 March 5, 2024 18:30
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.

good to go!

@rphair rphair merged commit 1d771f0 into cardano-foundation:master Mar 5, 2024
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.

CIP for CBOR tags ED25519-BIP32 Keys
4 participants