-
Notifications
You must be signed in to change notification settings - Fork 19
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
Practical interoperability with other W3C VC software #233
Comments
Hi @morgatron, thanks for the detailed writeup! I will try to get the ball rolling to best of my ability. The rest of the OpenAttestation team may also chime in where necessary.
Do you have any examples of such other software? I recall hearing you mention about a Transmute verifier over our earlier conversation. Perhaps you could link us to their verifier?
Is this test suite similar to one laid out here? There is a column for OpenAttestation describing the respective test results.
It's mainly because OpenAttestation only supports this proof method at the moment. There's currently no option that allows end-users to change or sign using another proof method.
Do you mean this code segment? I don't know the exact reason why the
Yes, it does sound like we should use
The OA verifier actually creates a resolver that can resolve both
Yes, that is correct. Once |
(Apologies if it was a bit of a dump!)
Some examples of other software (google search name + github will get you there for each of these):
Of these, DIDkit's is probably the easiest to use, as they have a nice command line utility. For installation-free testing, you can try:
This is a subtle point. That test suite you link is purely for the VC data model. Applying it to OA simply checks that the correct fields exist in an issued doc and that no un-qualified data is in there. This is a great first step... but: it does not check that the fields are used as the spec intended, OR that the methods used are understood by other software. The vc-api test suite I linked is a step toward interoperability testing. It assumes a given issuance/verification api (the 'vc-api'), and attempts to issue and verify generic VCs. We've already put a simple vc-api wrapper around OA and applied this test suite. I can share the initial results if you're itnerested. In our meeting, Richard also mentioned a related test suite, fromthe w3c-ccg 'traceability interop' project and the SVIP 'plugfest'. This is an actual interop test between different VC issuers/verifiers, and is implemented as a set of postman collections calling the a vc-api. Ideally we should go green on this too.
Yep, exactly! This is an example of where OA fits the VC data model (it has an 'issuer' field), but isn't practicaly interoperable (because it doesn't actually use the 'issuer' field). The simple change of
Great!
Yes I'm sorry, I didn't do a good job in my description. I do know that OA uses the standard did:ethr resolver from DIF, and can use one for did:web too (which is great!). But as you say, it only supports signing a hash using EcdsaSecpk1. Which means that most did:web's used in the wild won't work , even when using OA's own proof method, because EcdsaSecpk1 is pretty rare outside of block-chain use cases. Have you put much thought in how best to do general DID resolution- e.g. using JS components compared to an external service implementing something like https://dev.uniresolver.io? An e.g of the latter is this Transmute example. This would relate to #234.
This is part of that verification discussion that I explained badly this morning. What does the verifier look like for such a document? I'm wondering if it's cleanest if a single verifier could return two fragments, so that verifying a did:dns signature could return DOCUMENT_INTEGRITY and ISSUER_IDENTITY... but perhaps I should write about that over here |
Hi @morgatron! I'm just dropping by and trying to see how I can help. I'm pretty new to this whole OA and W3C VC thing. I beg your pardon whenever I'm having more questions than answers. hehe.🫢
|
Nice to meet you @superical, thanks for dropping by :)
The vc-api-test-suite applies a bunch of tests to a standardised interface. This interface is known as the "vc-api" and consists of a few HTTP end points. The API is described here. It has seperate test suites for issuing, verifying (and for the 'holder' too, but don't worry about that for now). The issuer tests are defined in here for example. To use the test suite, we need OA to use the VC-API. That is the 'wrapper' I was talking about. It is a thin wrapper around OpenAtttestation to implement the VC-API. For instance, posting a credential to
Nothing to do with OA's wrapDocument! The VC data model is the W3C spec here. OpenAttestation V3 docs are very close to satisfying this data model.
See above :) |
This is a continuation of some great conversation we've started with @HJunyuan and @lawwman
The summary is that we think OpenAttestation is great, and we're wanting to use it for cross-border trade scenarios where we need to verify VCs issued by other platforms, and issue VCs to be verified by other platforms. However, while OA v3 is technically compliant with the W3C VC data model OA's extensions to the model are not understood by other software. So the question is: can we make OA "practically" interoperable while keeping the useful features of OA?
I'm starting this issue to try and push the discussion further.
What does interoperable mean?
Other VC platforms (e.g. Transmute, DIDKit), can verify a VC issued by OA
OA can verify VCs issued by other platforms (e.g. Transmute, DIDkit)
In testing terms: if we wrap OA in the VC-API (which we are in the process of doing), it should pass the vc-api test suite
If these can be met, it should be a good indication of "Plugfest interoperability"- that is being a successful part of the USA's DHS/SVIP plugfest
What stops OA being interoperable?
The main barriers to practical interoperability I can see at this point:
A couple of other minor points:
Is the above a fair summary?
I'm still quite new to OpenAttestation, and I apologise for the mistakes I've probably made! Please let me know.
If the above does seems reasonable though, I'd like to raise some other issues to explore some of the solutions.
The text was updated successfully, but these errors were encountered: