April 2023 IIW - DIDComm v2 Interop

DIDComm v2 connect-a-thon at the April 2023 IIW Conference!
We will build on the work done at the November 2022 IIW where JFF participants exchanged creds over DIDComm v2 (simplified WACI-DIDComm) and where RootsID showed DIDComm v2 mobile chat and where Veramo/RootsID/others did a DIDComm v2 interop-a-thon.

IIW Demo Connect-a-thon

  • Tuesday April 18 lunch time pre-connect-a-thon-connect-a-thon
  • Wednesday lunch prep time
  • Wednesday April 19 from 1:30 – 2:30 (after lunch) pacific time
  • Table: #11
  • Demo tables list (IIW updated the description to be the connect-a-thon)
  • Posters for each team? Use whiteboard? Have each team's laptop have a summary of our agent capabilities
    • Visual aid that lists features
    • Diagram the relationships, similar to CNCF
  • Answer how this fits in the Aries, DIF, and OIDC
  • Highlight the different agents and their interoperability
  • Table of protocols
  • How does this relate to Continous authentication
    • SPIFFE and SPIRE help enable zero trust by delivering continuously attested service identity across cloud, container, and on-premise enterprise IT infrastructure. In this video Evan Gilman, co-author O'Reilly's
  • Post IIW highlight video

Participants

  • RootsID (Rodolfo Miranda, Alex Andrei, Lance Byrd) - CONFIRMED/Attending
    • RootsWallet Lab (iOS and Android)
    • RootsWallet Veramo (iOS and Android)
    • RootsWallet Prism swift SDK (iOS)
    • Mediator
  • BlockTrust (Bjorn Sandmann) - CONFIRMED/Attending
    • .NET and SICPA JVM port and BouncyCastle
    • Mediator
    • Agent
  • Veramo (Nick Reynolds, Alex Andrei) - CONFIRMED/Attending
  • Atala Prism (Tony Rose) - CONFIRMED/Attending
  • Nessus (Thomas Diesler) - CONFIRMED/Recording
  • AviaryTech (Brian Richter)
  • PicoLabs (Bruce Conrad, Phil Windley, BYU students)

Debrief

Photos

Follow-on goals

  • Lightweight DIDComm v2 test-harness
    • Should this be a live service or able to be run locally? Eventually both, but a live service like our mediators is probably the most effective.
  • AIP 3.0 RFCs
    • Might include did:peer numalgo3
  • Feedback from all participants

Required

  • Live @IIW Out-of-band
  • Live @IIW Basic messaging
  • Live @IIW Routing
  • Post-recorded video showing interop: we will collect all video submissions into a united presentation that DIF, RootsID, and anyone else can promote.

Optional

Provided Services

Story/Use Case?

Minimum Interop Profile

  • did:peer:2 (numAlgo 2)
  • test your agent/service against of the mediators listed in Provided Services (basic message or trust ping)

Documenting/Recording our interactions

  • Video interactions
  • What messages did you send?
  • What errors were received?

Prep for live demo

  • RootsWallet/Prism(Swift SDK/App)
  • RootsWallet/Blocktrust
  • When?
    • Blocktrust(web app)/Prism(Swift SDK/app,cloud agent)
    • RootsWallet/Veramo
      • RootsWallet using Veramo Framework
      • Veramo Mediator
      • Veramo web app
    • PicoLabs(cloud agent)/Mediators(cloud agent)
    • Nessus(cloud agent)/RootsWallet(mobile)
    • AviaryTech/RootsWallet?

Updates

  • Nessus - Present Proof v3 complete
    • Fixed a macbook issue (multi-arc image)
  • Simplified the body of code by removing the additional Aca-Py integration
  • did:key and did:peer:2 implementations are available (did:peer:2 is standard)
  • Scripts to run the whole scenario (nessus to nessus)
  • Can you encode the invitation as a QR code to make mobile interactions easier? Yes.
  • No support for mediated peer dids
    • Mobile devices don't have an endpoint for peer-to-peer comms, they require mediation. Instead, the did document contains the mediation did so that you can wrap the message, this is part of the forward implementation.
    • did:peer encodes the resolution in the identifier
    • Will try to implement this forwarding scheme for wrapping all messages so that the mediator can forward them to the non-addressable peer
  • Nessus travel w/ minor script
  • Expected interaction:
    • OOB
    • Trust-ping to establish 'connection'
      • Return route set to all? Not mandatory.
  • RootsID
  • BlockTrust
    • Mobile mediation needs to be tested

Considerations for November 2023 IIW

Issues found during preparation

  • RootsWallet-Lab (iOS and Android) <-> BlockTrust Web Agent
    • Fix short_url for infinity expiration case in RootsID mediator
    • Fix pickup for specific DID in RootsID mediator
    • Fix forward message parsing when the sender's Peer DID has no serviceEndpoint in BlockTrust mediator
    • Make serviceEndpoint compliant with DIDComm Spec (serviceEndpoint: [{uri: ....}])
  • RootsWallet <-> Veramo

Interoperability matrix

RW Android RW iOS RW Prism iOS RW Veramo BT Web Agent Nessus Agent Prism Swift SDK Prism Agent Roots Mediator BlockT Mediator Veramo Mediator
RW Android TP-BM TP-BM BM BM TP
RW iOS TP-BM TP-BM BM BM TP
RW Prism iOS BM BM BM
RW Veramo
BT web agent BM BM BM TP-BM TP-BM
Nessus agent TP TP TP-BM TP-BM
Prism Swift SDK
Prism Agent
Python Notebook TP-BM TP-BM TP-BM TP MC-MP-F MC-MP-F
Roots Mediator MC-MP-F MC-MP-F MC-MP-F MC-MP-F F MC-MP-F F MC-MP-F MC-MP-F
BlockT Mediator MC-MP-F MC-MP-F MC-MP-F F F MC-MP-F MC-MP-F
Veramo Mediator

References:

  • TP: Trust Ping
  • BM: Basic Message
  • IC: Issue Credential
  • MC: Mediator Coordination
  • MP: Message Pickup
  • F: Forward

How DIDComm fits in the SSI Ecosystem

Select a repo