This specification defines how Verifiable Credentials can be secured using Authentic Chained Data Containers (ACDC).

Introduction

Authentic Chained Data Containers [[!ACDC]] is a means of providing an authentication and autorization layer for the payload contained within. Some of the major distinguishing features of ACDCs include normative support for chaining, use of composable JSON Schema [[!JSCH]], support for Ricardian contracts [[?RC]], support for chain-link confidentiality [[?CLC]], a well defined security model derived from KERI [[!KERI]], compact formats for resource constrained applications, simple partial disclosure mechanisms and simple selective disclosure mechanisms. ACDCs provision data using a synergy of provenance, protection, and performance.

Relation to the Verifiable Credentials Data Model

This specification defines transformation rules of an Authentic Chained Data Container onto the Verifiable Credential Data Model. It further defines processing rules for how and when to make use of specific ACDC attributes to create Verifiable Credential Data Model metadata from ACDC attribtues.

Version 2.0

This section uses [[!JSONPath]] to represent the field mappings.
ACDC Decoding
ACDC Considerations
  1. Create a JSON object.
  2. If $.a.dt is present, the UNIX timestamp MUST be converted to an [XMLSCHEMA11-2] date-time, and MUST be used to set the value of the validFrom property of credentialSubject of the new JSON object.
  3. The $.i attribute MUST be used to set the $.issuer.id property of the new credential JSON object.
  4. The $.a.i attribute MUST be used to set the $.credentialSubject.id property of the new credential JSON object.
ACDC Data Attestation Considerations
  1. Create a JSON object.
  2. If $.a.dt is present, the UNIX timestamp MUST be converted to an [XMLSCHEMA11-2] date-time, and MUST be used to set the value of the validFrom property of credentialSubject of the new JSON object.
  3. The $.i attribute MUST be used to set the $.issuer.id property of the new credential JSON object.
  4. The $.a.d attribute MUST be used to set the $.credentialSubject.id property of the new credential JSON object.

Privacy Considerations

Security Considerations

IANA Considerations

The application/vc+cesr Media Type

This specification registers the application/vc+cesr MIME Media Type specifically for identifying a [[CESR]] encoded verifiable proof.

Type name: application
Subtype name: application/vc+cesr
Required parameters: None
Encoding considerations: Resources that use the application/vc+cesr Media Type are required to conform to [[CESR]].
Security considerations: As defined in this specification.

The application/credential+acdc+json Media Type

This specification registers the application/credential+acdc+json MIME Media Type specifically for identifying a [[ACDC]] serialized with [[JSON]].

Type name: application
Subtype name: application/credential+acdc+json
Required parameters: None
Encoding considerations: Resources that use the application/credential+acdc+json Media Type are required to conform to all of the requirements for the application/json Media Type and are therefore subject to the same encoding considerations specified in Section 11 of [RFC7159].
Security considerations: As defined in this specification.

The application/credential+acdc+cbor Media Type

This specification registers the application/credential+acdc+cbor MIME Media Type specifically for identifying a [[ACDC]] serialized with [[CBOR]].

Type name: application
Subtype name: application/credential+acdc+cbor
Required parameters: None
Encoding considerations: Resources that use the application/credential+acdc+cbor Media Type are required to conform to [[CBOR]].
Security considerations: As defined in this specification.

The application/credential+acdc+msgpack Media Type

This specification registers the application/credential+acdc+msgpack MIME Media Type specifically for identifying a [[ACDC]] serialized with [[MESSAGEPACK]].

Type name: application
Subtype name: application/credential+acdc+msgpack
Required parameters: None
Encoding considerations: Resources that use the application/credential+acdc+msgpack Media Type are required to conform to [[MESSAGEPACK]].
Security considerations: As defined in this specification.

The application/credential+acdc+cesr Media Type

This specification registers the application/credential+acdc+cesr MIME Media Type specifically for identifying a [[ACDC]] serialized with [[CESR]].

Type name: application
Subtype name: application/credential+acdc+cesr
Required parameters: None
Encoding considerations: Resources that use the application/credential+acdc+cesr Media Type are required to conform to [[CESR]].
Security considerations: As defined in this specification.