hyperledger / aries-rfcs

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

Enabling Multiple Presentations from a Presentation Request #681

Open swcurran opened 3 years ago

swcurran commented 3 years ago

From BC Gov and Kiva (@mattraffel , Jacob Saur)

We’ve seen multiple instances of the following kind of use case:

We propose adding the following items to the messages in the present-proof v2 messages:

A recommendation should be included that when using the “present_multiple” with value “true”, the presentation request should not include other than a simple presentation request of (usually) a single credential type. A combination of credential types, each with the prover holding multiple instances will be difficult for the wallet, worse for the user.

For the UX, we would expect the prover to provide a list of presentations that could be sent and allow the user to select the ones to be sent (or more perhaps, unselect the ones not to send). Once done, the “presentation” messages would be sent without further input from the controller.

There are multiple other ways to accomplish this that might be considered:

As well, one could introduce the concept of “present_multiple” in the DIF Presentation Exchange protocol, so specifying it at the Aries protocol level. That would not work for Indy and would introduce the same dynamics as sending all the presentations in one message. Alternatively, the concept could be added at both the Aries Protocol and DIF PE levels.

rolsonquadras commented 3 years ago

We are working on a similar problem statement where one presentation request results in multiple presentations.

Use Case: Verifier requires a Driver License (DL) and the latest Credit Report (CR) from the user to complete some transaction.

The verifier asks for the credentials and, the wallet decides whether it can submit all in one or multiple presentations. In this scenario, the wallet holds a Driver’s License (DL) and a Service Holder holds the Credit Report(CR) on behalf of the user. We are working on a document to build multiple presentations scenario on top of DIF WACI v0.1 spec. WACI uses DIDComm v2 present-proof protocol.

The wallet uses the present-proof-propose message to ask the verifier to split the DIF Presentation Exchange Definition requests into multiple presentation definitions inside the present-proof-request message. In this way, the verifier can independently validate multiple presentation submissions against presentation definitions.

Below is the screenshot of the extensions that we are thinking for present-proof message. waciv0 1+mediated_exchanges

swcurran commented 3 years ago

Hmmm...in all of the work we've done so far, that use case would be handled as a "one Presentation message" and so does not fit into the reason for raising this issue. In both Indy AnonCreds and DIF PE, this use case can be accomplished with a single "request-presentation" and "presentation" message pair. Why the need to split that into two?

This issue was raised for the use case of (for example), wanting one DL and several CRs, where the request for "several CRs" in the single protocol instance must be stated by the verifier, and the prover needs to be able to send multiple presentations, one for each CR.