Presentation Exchange: A Leap Toward Interoperability for the Decentralized Identity Ecosystem
The decentralized identity ecosystem is on its inevitable path toward widespread adoption and meaningful use. There are a growing number of interpretations and implementations of various decentralized standards. These standards are at different stages in their development lifecycles, harmonizing gradually. As a result, there are lots of data, from lots of sources, that, without a little planning, won’t play nicely with other data. It is exciting to see the enthusiasm around the standards we know and love and to watch the proliferation of verifiable and portable data. With implementation boundaries as a hindrance, data interoperability will continue to be difficult. We could lose much utility and portability of the data. Luckily, in the midst of this excitement, a great opportunity presents itself: to forge bridges between data islands and promote the cross-pollination of methodologies for generating and exchanging verifiable data. Enter: the Presentation Exchange specification.
The Claims & Credentials working group has been hard at work on the Presentation Exchange specification for months. The effort, starting in January 2020, began to provide a solution to the question, “How should we request and exchange credentials across implementations and systems?” Though a few solutions have been proposed before, none have been as inclusive in the data model and transport agnosticism, or able to attract broad adoption, as Presentation Exchange. The working group is working towards the first release — at the time of writing, we have made over 100 commits and closed 37 GitHub issues.
The specification prides itself on its adaptability, aiming to be “both credential format and transport envelope agnostic, meaning an implementer can use JWTs, VCs, JWT-VCs, or any other credential format, and convey them via OIDC, DIDComm, CHAPI, or any other transport envelope.” At the same time, Presentation Exchange has garnered the interest and support of many key-players throughout the ecosystem, a step crucial to fulfilling the ambitions of the specification.
You may be wondering, what’s up with the title? Isn’t interoperability much broader than sharing credentials? Yes! Absolutely. Sharing credentials is only part of interoperability. Universal wallets, secure data storage, transports, identifiers, DIDComm, and so many more pieces are paramount to thriving in an interoperable, decentralized ecosystem. At the heart of many of these interactions, we find ourselves exchanging verifiable data. By driving a standardized method for requesting and returning verifiable data, which adapts to many data models and functional use cases, we cross an important threshold in making interoperability possible. Without working software to back up the specification, it is merely an interesting idea. We need to go further — to make it an interesting reality.
Recognizing how important the Presentation Exchange spec and reference implementations could be for accelerating real interoperability and healthy competition, we, on the Workday Credentials team, are involved in the specification’s development and are investing significantly in one of its first demonstrable implementations. Workday has been a very active member of DIF since 2019. Our interests lie across the DIF stack, with a focus on standards compliance, affording us opportunities to interoperate with community members and standards adopters alike. Towards that end, we have open-sourced much of our code and specifications relating to decentralized identity. For Presentation Exchange, we have recently pushed a Golang representation of the object model that can be useful in building and validating presentation definitions, submissions, and verifiable presentations (as defined by the W3C standards). We are building out more Presentation Exchange logic that we plan to open source in the coming months. We intend to adopt Presentation Exchange at Workday as we gain confidence in the specification and its other implementations. We are considering different ways Presentation Exchange can be useful in interoperating with verifiable data that does not originate on our platform.
We are looking forward to seeing others contribute reference implementations in other languages and we encourage you to consider contributing to Presentation Exchange and DIF! For more information, please reach out to DIF, or jump in on the public GitHub. To join DIF and contribute directly to the Presentation Exchange specification or implementations, visit here. And for an overview of the design process and goals of the project in video form, see this recording from DIF Virtual Face to Face Meeting in June 2020 (P.E. segment starts at 3.00):