hyperledger / aries-rfcs

Hyperledger Aries is infrastructure for blockchain-rooted, peer-to-peer interactions
https://hyperledger.github.io/aries-rfcs/
Apache License 2.0
326 stars 217 forks source link

#0453 V2 issue-credential: review #796

Closed Patrik-Stas closed 8 months ago

Patrik-Stas commented 1 year ago

Hi all,

while Issue credential V2 protocol has been out there for quite some time, we are starting with its implementation in aries-vcx now https://github.com/hyperledger/aries-vcx/pull/987

As we are discovering what needs to be implemented, what the difference are compared to V1, some questions arise from our side. It appear to us that utility of some features described in the RFC is questionable but I'd like check with implementors&frameworks who been using the protocol for longer time by now.

What I am looking to get out of this Github issue:

Batch - multi-format issuance

The protocol work with array formats, filters~attach, supplements, ~ attach which enables issuance of multiple credentials, each possibly in a different format. Both "batcheness" and "multi-formatness" properties bring a more complexity to implementation itself & APIs provided by frameworks/libraries - more complicated framework/library APIs then trickle up to application layers as well. And while arguing against complexity is not enough on its own, I think it could be if a core feature turns out to be generally unused - now this is something I am not sure about, and one of the reasons I writing this issue and raising questions:

Obviously, an issuer can always choose to send credential one by one, if issuer deems that as better option - the protocol is not preventing doing that. But nevertheless, the spec is requiring us to implement the batch issuance nevertheless and I question why would someone choose to use it in practice.

Payments

I don't have as much comments here, but at intuition level I feel like this might also better be a separate protocol perhaps? In this RFC, it's touched on the fact that presentation protocol subthread might be spun off to find out more about the counterparty, prior to issuing credential. That's reasonable, but why not to use the same approach for payments? I find that embedding payments as a part of issuance protocol is making it heavier/more coupled than it has to be.

gmulhearn-anonyome commented 1 year ago

thanks for raising this. I think the case here is also applicable to present proof v2 too: https://github.com/hyperledger/aries-rfcs/tree/main/features/0454-present-proof-v2 . as it has undergone the same evolution as issue-credential.

However an interesting note is present on the present-proof-v2 RFC around this topic:

The messages that include ~attach attachments may use any form of the embedded attachment. In the examples below, the forms of the attachment are arbitrary.

The ~attach array is to be used to enable a single presentation to be requested/delivered in different verifiable presentation formats. The ability to have multiple attachments must not be used to request/deliver multiple different presentations in a single instance of the protocol.

Patrik-Stas commented 8 months ago

In the end this happened to be largerly addressed in: https://github.com/hyperledger/aries-rfcs/pull/816 https://github.com/hyperledger/aries-rfcs/pull/815