owned this note
owned this note
Published
Linked with GitHub
# Aries Interop Profile 3 Proposed
This is just a sketch to use in proposing what AIP 3.0 might look like.
Note that the presence of DIDComm v2 as a referenced spec consolidates concepts that were present in a variety of Aries RFCs. The list is shorter, but no concepts have been dropped.
#### Base Requirements
RFC Type | RFC/Link to RFC Version | Note
--- | --- | ---
Spec | [DIDComm v2](https://identity.foundation/didcomm-messaging/spec/v2.0/) | includes: [trust-ping/2.0](https://identity.foundation/didcomm-messaging/spec/#trust-ping-protocol-20), [out-of-band/2.0](https://identity.foundation/didcomm-messaging/spec/#out-of-band-messages), [discover-features/2.0](https://github.com/hyperledger/aries-rfcs/blob/main/features/0557-discover-features-v2/README.md), and [routing/2.0](https://identity.foundation/didcomm-messaging/spec/#routing-protocol-20) protocols. <br/>[See Envelope/Routing profiles](https://identity.foundation/didcomm-messaging/spec/#negotiating-compatibility), <br/>[Also see DIDComm.org protocols list](https://didcomm.org/search/?page=1). <br/>DIDComm v2 supersedes:<br/>* [0005-didcomm](https://github.com/hyperledger/aries-rfcs/tree/1b4b014246d19c865c9b5520b97fe0376a86d8c4/concepts/0005-didcomm), see [DIDComm v2](https://identity.foundation/didcomm-messaging/spec/v2.0/)<br/>* [0008-message-id-and-threading](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/concepts/0008-message-id-and-threading), see [Message Ids and Threading](https://identity.foundation/didcomm-messaging/spec/#message-ids)<br/>* [0035-report-problem](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0035-report-problem), see [Problem Report](https://identity.foundation/didcomm-messaging/spec/#problem-reports)<br/>* [0048-trust-ping](https://github.com/hyperledger/aries-rfcs/tree/4e78319e5f79df2003ddf37f8f497d0fae20cc63/features/0048-trust-ping), see [Ping](https://identity.foundation/didcomm-messaging/spec/#ping)<br/>* [0557-discover-features-v2](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0557-discover-features-v2), see [Discover Features](https://identity.foundation/didcomm-messaging/spec/#discover-features-protocol-20)
Feature | [0183-revocation-notification](https://github.com/hyperledger/aries-rfcs/tree/4e78319e5f79df2003ddf37f8f497d0fae20cc63/features/0183-revocation-notification) |
Feature Update | [WACI PEx issue-credential 3.0](https://didcomm.org/issue-credential/3.0/) | Updates [0453-issue-credential-v2](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0453-issue-credential-v2)
Feature Update | [WACI PEx present-proof 3.0](https://didcomm.org/present-proof/3.0/) | Updates [0454-present-proof-v2](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0454-present-proof-v2)
Feature | [0627-static-peer-dids](https://github.com/hyperledger/aries-rfcs/tree/4739fbf6de07a54c3fee072bd85741422730b3cd/features/0627-static-peer-dids) | :new:did:peer method 2 RFC ?
##### Base DID method support
See [discord thread](https://discord.com/channels/905194001349627914/1078014171536445562)
legacypeer doc example (ACA-Py compatible):
```json
{
"@context": "https://w3id.org/did/v1",
"id": "McJHdsnWRHovRXoUZL2FMW", # first 16 bytes of verkey, base58 encoded
"publicKey": [
{
"id": "McJHdsnWRHovRXoUZL2FMW#keys-1",
"type": "Ed25519VerificationKey2018",
"controller": "McJHdsnWRHovRXoUZL2FMW",
"publicKeyBase58": "CEUjD2ecZi87wtfgaWVv1vQqcH2TRE3K2ZdCFBcghJPQ",
}
],
"service": [
{
"id": "McJHdsnWRHovRXoUZL2FMW;indy",
"type": "IndyAgent",
"recipientKeys": ["CEUjD2ecZi87wtfgaWVv1vQqcH2TRE3K2ZdCFBcghJPQ"],
"serviceEndpoint": "https://example.com",
}
],
}
```
AFJ didpeer2 example:
```json
{
"id": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0",
"authentication": [
{
"id": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0#6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V",
"type": "Ed25519VerificationKey2018",
"controller": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0",
"publicKeyBase58": "ByHnpUCFb1vAfh9CFZ8ZkmUZguURW8nSw889hy6rD8L7"
}
],
"keyAgreement": [
{
"id": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0#6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud",
"type": "X25519KeyAgreementKey2019",
"controller": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0",
"publicKeyBase58": "DmgBSHMqaZiYqwNMEJJuxWzsGGC8jUYADrfSdBrC6L8s"
}
],
"service": [
{
"id": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0#didcommmessaging-0",
"type": "DIDCommMessaging",
"serviceEndpoint": "https://example.com/endpoint",
"routingKeys": ["did:example:somemediator#somekey"]
},
{
"id": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0#example-1",
"type": "example",
"serviceEndpoint": "https://example.com/endpoint2",
"routingKeys": ["did:example:somemediator#somekey2"],
"accept": ["didcomm/v2", "didcomm/aip2;env=rfc587"]
}
]
}
```
DID Method | size initial/ongoing | key rotation | ease of transform | libs | future path | multi-key
--- | --- | --- | --- | ---| --- | ---
did:legacypeer | small*/small | no | both | none needed | Nope | No
did:peer:1 | large/small | yes | both (serialization needs definition) | Example Impl | shaky | Yes
did:peer:2 | large/large | no | both? | python/js veramo? | likely | Yes
did:keri (lite=self-addresing) | large/44 bytes | No | both | KeriPy. Others in development | likely | Yes
Ease of Transform: Can be transformed by owner, both
> All targets need to be updated to new protocol versions. Some may be defined, some may need definition.
#### MEDIATE: Mediator Coordination
RFC Type | RFC/Link to RFC Version | Note
--- | --- | ---
Feature Update | [coordinate-mediation/2.0](https://didcomm.org/mediator-coordination/2.0/) | Updates [0211-route-coordination](https://github.com/hyperledger/aries-rfcs/tree/55e1e1c6e339ef0843268b4f3349b95cb7bd49a5/features/0211-route-coordination)
Feature Update | [DIDComm v2 Return-Route extension](https://github.com/decentralized-identity/didcomm-messaging/blob/main/extensions/return_route/main.md) | Updates [0092-transport-return-route](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0092-transport-return-route)
Feature | [messagepickup/3.0](https://didcomm.org/pickup/3.0/) | :new:
#### INDYCRED: Indy Based Credentials
RFC Type | RFC/Link to RFC Version | Note
--- | --- | ---
Feature | [0592-indy-attachments](https://github.com/hyperledger/aries-rfcs/tree/26344513082af4d76c77b8b4f5064e72d0a83b58/features/0592-indy-attachments) |
Concept | [0441-present-proof-best-practices](https://github.com/hyperledger/aries-rfcs/tree/4e78319e5f79df2003ddf37f8f497d0fae20cc63/concepts/0441-present-proof-best-practices) |
#### LDCRED: JSON-LD Based Credentials
RFC Type | RFC/Link to RFC Version | Note
--- | --- | ---
Feature | [0593-json-ld-cred-attach](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0593-json-ld-cred-attach) |
Feature | [0510-dif-pres-exch-attach](https://github.com/hyperledger/aries-rfcs/tree/7a44f650d3cebf5b3047c1680618978393a497d5/features/0510-dif-pres-exch-attach) |
#### BBSCRED: BBS+ Based Credentials
RFC Type | RFC/Link to RFC Version | Note
--- | --- | ---
Feature | [0593-json-ld-cred-attach](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0593-json-ld-cred-attach) |
Feature | [0646-bbs-credentials](https://github.com/hyperledger/aries-rfcs/blob/7a44f650d3cebf5b3047c1680618978393a497d5/features/0646-bbs-credentials/README.md) |
Feature | [0510-dif-pres-exch-attach](https://github.com/hyperledger/aries-rfcs/tree/7a44f650d3cebf5b3047c1680618978393a497d5/features/0510-dif-pres-exch-attach) |
#### CHAT: Chat related features
RFC Type | RFC/Link to RFC Version | Note
--- | --- | ---
Feature | [basicmessage 2.0](https://didcomm.org/basicmessage/2.0/) | Updates [0095-basic-message](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0095-basic-message)