<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.6.5 (Ruby 3.0.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ssmith-acdc-00" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.3 -->
  <front>
    <title abbrev="ACDC">Authentic Chained Data Containers (ACDC)</title>
    <seriesInfo name="Internet-Draft" value="draft-ssmith-acdc-00"/>
    <author initials="S." surname="Smith" fullname="S. Smith">
      <organization>ProSapien LLC</organization>
      <address>
        <email>sam@prosapien.com</email>
      </address>
    </author>
    <date year="2022" month="April" day="05"/>
    <area>TODO</area>
    <workgroup>TODO Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>An authentic chained data container (ACDC)  <xref target="ACDC_ID"/><xref target="ACDC_WP"/><xref target="VCEnh"/> is an IETF <xref target="IETF"/> internet draft focused specification being incubated at the ToIP (Trust over IP) foundation <xref target="TOIP"/><xref target="ACDC_TF"/>.  An ACDC is a variant of the W3C Verifiable Credential (VC) specification <xref target="W3C_VC"/>. The W3C VC specification depends on the W3C DID (Decentralized IDentifier) specification <xref target="W3C_DID"/>. A major use case for the ACDC specification is to provide GLEIF vLEIs (verifiable Legal Entity Identifiers) <xref target="vLEI"/><xref target="GLEIF_vLEI"/><xref target="GLEIF_KERI"/>. GLEIF is the Global Legal Entity Identifier Foundation <xref target="GLEIF"/>. ACDCs are dependent on a suite of related IETF focused standards associated with the KERI (Key Event Receipt Infrastructure) <xref target="KERI_ID"/><xref target="KERI"/> specification. These include CESR <xref target="CESR_ID"/>, SAID <xref target="SAID_ID"/>, PTEL <xref target="PTEL_ID"/>, CESR-Proof <xref target="Proof_ID"/>, IPEX <xref target="IPEX_ID"/>, did:keri <xref target="DIDK_ID"/>, and OOBI <xref target="OOBI_ID"/>. Some of the major distinguishing features of ACDCs include normative support for chaining, use of composable JSON Schema <xref target="JSch"/><xref target="JSchCp"/>, multiple serialization formats, namely, JSON <xref target="JSON"/><xref target="RFC4627"/>, CBOR <xref target="CBOR"/><xref target="RFC8949"/>, MGPK <xref target="MGPK"/>, and CESR <xref target="CESR_ID"/>, support for Ricardian contracts <xref target="RC"/>,  support for chain-link confidentiality <xref target="CLC"/>, a well defined security model derived from KERI <xref target="KERI"/><xref target="KERI_ID"/>, <em>compact</em> formats for resource constrained applications, simple <em>partial disclosure</em> mechanisms and simple <em>selective disclosure</em> mechanisms.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The primary purpose of the ACDC protocol is to provide granular provenanced proof-of-authorship (authenticity) of their contained data via a tree or chain of linked ACDCs (technically a directed acyclic graph or DAG). Similar to the concept of a chain-of-custody, ACDCs provide a verifiable chain of proof-of-authorship of the contained data. With a little additional syntactic sugar, this primary facility of chained (treed) proof-of-authorship (authenticity) is extensible to a chained (treed) verifiable authentic proof-of-authority (proof-of-authorship-of-authority). A proof-of-authority may be used to provide verifiable authorizations or permissions or rights or credentials. A chained (treed) proof-of-authority enables delegation of authority and delegated authorizations.</t>
      <t>The dictionary definition of <strong><em>credential</em></strong> is <em>evidence of authority, status, rights, entitlement to privileges, or the like</em>.  Appropriately structured ACDCs may be used as credentials when their semantics provide verifiable evidence of authority. Chained ACDCs may provide delegated credentials.</t>
      <t>Chains of ACDCs that merely provide proof-of-authorship (authenticity) of data may be appended to chains of ACDCs that provide proof-of-authority (delegation) to enable verifiable delegated authorized authorship of data. This is a vital facility for authentic data supply chains. Furthermore, any physical supply chain may be measured, monitored, regulated, audited, and/or archived by a data supply chain acting as a digital twin <xref target="Twin"/>. Therefore ACDCs provide the critical enabling facility for an authentic data economy and by association an authentic real (twinned) economy.</t>
      <t>ACDCs act as securely attributed (authentic) fragments of a distributed <em>property graph</em> (PG) <xref target="PGM"/><xref target="Dots"/>. Thus they may be used to construct knowledge graphs expressed as property graphs <xref target="KG"/>. ACDCs enable securely-attributed and privacy-protecting knowledge graphs.</t>
      <t>The ACDC specification (including its partial and selective disclosure mechanisms) leverages two primary cryptographic operations namely digests and digital signatures <xref target="Hash"/><xref target="DSig"/>. These operations when used in an ACDC <bcp14>MUST</bcp14> have a security level, cryptographic strength, or entropy of approximately 128 bits <xref target="Level"/>. (See the appendix for a discussion of cryptographic strength and security)</t>
      <t>An important property of high-strength cryptographic digests is that a verifiable cryptographic commitment (such as a digital signature) to the digest of some data is equivalent to a commitment to the data itself. ACDCs leverage this property to enable compact chains of ACDCs that anchor data via digests. The data <em>contained</em> in an ACDC may therefore be merely its equivalent anchoring digest. The anchored data is thereby equivalently authenticated or authorized by the chain of ACDCs.</t>
    </section>
    <section anchor="acdc-fields">
      <name>ACDC Fields</name>
      <t>An ACDC may be abstractly modeled as a nested <tt>key: value</tt> mapping. To avoid confusion with the cryptographic use of the term <em>key</em> we instead use the term <em>field</em> to refer to a mapping pair and the terms <em>field label</em> and <em>field value</em> for each member of a pair. These pairs can be represented by two tuples e.g <tt>(label, value)</tt>. We qualify this terminology when necessary by using the term <em>field map</em> to reference such a mapping. <em>Field maps</em> may be nested where a given <em>field value</em> is itself a reference to another <em>field map</em>.  We call this nested set of fields a <em>nested field map</em> or simply a <em>nested map</em> for short. A <em>field</em> may be represented by a framing code or block delimited serialization.  In a block delimited serialization, such as JSON, each <em>field map</em> is represented by an object block with block delimiters such as <tt>{}</tt> <xref target="RFC8259"/><xref target="JSON"/><xref target="RFC4627"/>. Given this equivalence, we may also use the term <em>block</em> or <em>nested block</em> as synonymous with <em>field map</em> or <em>nested field map</em>. In many programming languages, a field map is implemented as a dictionary or hash table in order to enable performant asynchronous lookup of a <em>field value</em> from its <em>field label</em>. Reproducible serialization of <em>field maps</em> requires a canonical ordering of those fields. One such canonical ordering is called insertion or field creation order. A list of <tt>(field, value)</tt> pairs provides an ordered representation of any field map. Most programming languages now support ordered dictionaries or hash tables that provide reproducible iteration over a list of ordered field <tt>(label, value)</tt> pairs where the ordering is the insertion or field creation order. This enables reproducible round trip serialization/deserialization of <em>field maps</em>.  ACDCs depend on insertion ordered field maps for canonical serialization/deserialization. ACDCs support multiple serialization types, namely JSON, CBOR, MGPK, and CESR but for the sake of simplicity, we will only use JSON herein for examples <xref target="RFC8259"/><xref target="JSON"/>. The basic set of normative field labels in ACDC field maps is defined in the following table.</t>
      <section anchor="field-label-table">
        <name>Field Label Table</name>
        <table>
          <thead>
            <tr>
              <th align="center">Label</th>
              <th align="left">Title</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">
                <tt>v</tt></td>
              <td align="left">Version String</td>
              <td align="left">Regexable format: ACDCvvSSSShhhhhh_ that provides protocol type, version, serialization type, size, and terminator.</td>
            </tr>
            <tr>
              <td align="center">
                <tt>d</tt></td>
              <td align="left">Digest (SAID)</td>
              <td align="left">Self-referential fully qualified cryptographic digest of enclosing map.</td>
            </tr>
            <tr>
              <td align="center">
                <tt>i</tt></td>
              <td align="left">Identifier (AID)</td>
              <td align="left">Semantics are determined by the context of its enclosing map.</td>
            </tr>
            <tr>
              <td align="center">
                <tt>u</tt></td>
              <td align="left">UUID</td>
              <td align="left">Random Universally Unique IDentifier as fully qualified high entropy pseudo-random string, a salted nonce.</td>
            </tr>
            <tr>
              <td align="center">
                <tt>ri</tt></td>
              <td align="left">Registry Identifier (AID)</td>
              <td align="left">Issuance and/or revocation, transfer, or retraction registry for ACDC.</td>
            </tr>
            <tr>
              <td align="center">
                <tt>s</tt></td>
              <td align="left">Schema</td>
              <td align="left">Either the SAID of a JSON Schema block or the block itself.</td>
            </tr>
            <tr>
              <td align="center">
                <tt>a</tt></td>
              <td align="left">Attribute</td>
              <td align="left">Either the SAID of a block of attributes or the block itself.</td>
            </tr>
            <tr>
              <td align="center">
                <tt>A</tt></td>
              <td align="left">Attribute Aggregate</td>
              <td align="left">Either the Aggregate of a selectively disclosable block of attributes or the block itself.</td>
            </tr>
            <tr>
              <td align="center">
                <tt>e</tt></td>
              <td align="left">Edge</td>
              <td align="left">Either the SAID of a block of edges or the block itself.</td>
            </tr>
            <tr>
              <td align="center">
                <tt>r</tt></td>
              <td align="left">Rule</td>
              <td align="left">Either the SAID a block of rules or the block itself.</td>
            </tr>
            <tr>
              <td align="center">
                <tt>n</tt></td>
              <td align="left">Node</td>
              <td align="left">SAID of another ACDC as the terminating point of a directed edge that connects the encapsulating ACDC node to the specified ACDC node as a fragment of a distributed property graph (PG).</td>
            </tr>
            <tr>
              <td align="center">
                <tt>l</tt></td>
              <td align="left">Legal Language</td>
              <td align="left">Text of Ricardian contract clause.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="compact-labels">
        <name>Compact Labels</name>
        <t>The primary field labels are compact in that they use only one or two characters. ACDCs are meant to support resource-constrained applications such as supply chain or IoT (Internet of Things) applications. Compact labels better support resource-constrained applications in general. With compact labels, the over-the-wire verifiable signed serialization consumes a minimum amount of bandwidth. Nevertheless, without loss of generality, a one-to-one normative semantic overlay using more verbose expressive field labels may be applied to the normative compact labels after verification of the over-the-wire serialization. This approach better supports bandwidth and storage constraints on transmission while not precluding any later semantic post-processing. This is a well-known design pattern for resource-constrained applications.</t>
      </section>
      <section anchor="version-string-field">
        <name>Version String Field</name>
        <t>The version string, <tt>v</tt>, field <bcp14>MUST</bcp14> be the first field in any top-level ACDC field map. It provides a regular expression target for determining the serialization format and size (character count) of a serialized ACDC. A stream-parser may use the version string to extract and deserialize (deterministically) any serialized ACDC in a stream of serialized ACDCs. Each ACDC in a stream may use a different serialization type.</t>
        <t>The format of the version string is <tt>ACDCvvSSSShhhhhh_</tt>. The first four characters <tt>ACDC</tt> indicate the enclosing field map serialization. The next two characters, <tt>vv</tt> provide the lowercase hexadecimal notation for the major and minor version numbers of the version of the ACDC specification used for the serialization. The first <tt>v</tt> provides the major version number and the second <tt>v</tt> provides the minor version number. For example, <tt>01</tt> indicates major version 0 and minor version 1 or in dotted-decimal notation <tt>0.1</tt>. Likewise <tt>1c</tt> indicates major version 1 and minor version decimal 12 or in dotted-decimal notation <tt>1.12</tt>. The next four characters <tt>SSSS</tt> indicate the serialization type in uppercase. The four supported serialization types are <tt>JSON</tt>, <tt>CBOR</tt>, <tt>MGPK</tt>, and <tt>CESR</tt> for the JSON, CBOR, MessagePack, and CESR serialization standards respectively <xref target="JSON"/><xref target="RFC4627"/><xref target="CBOR"/><xref target="RFC8949"/><xref target="MGPK"/><xref target="CESR_ID"/>. The next six characters provide in lowercase hexadecimal notation the total number of characters in the serialization of the ACDC. The maximum length of a given ACDC is thereby constrained to be <em>2<sup>24</sup> = 16,777,216</em> characters in length. The final character <tt>-</tt> is the version string terminator. This enables later versions of ACDC to change the total version string size and thereby enable versioned changes to the composition of the fields in the version string while preserving deterministic regular expression extractability of the version string. Although a given ACDC serialization type may have a field map delimiter or framing code characters that appear before (i.e. prefix) the version string field in a serialization, the set of possible prefixes is sufficiently constrained by the allowed serialization protocols to guarantee that a regular expression can determine unambiguously the start of any ordered field map serialization that includes the version string as the first field value. Given the version string, a parser may then determine the end of the serialization so that it can extract the full ACDC from the stream without first deserializing it. This enables performant stream parsing and off-loading of ACDC streams that include any or all of the supported serialization types.</t>
      </section>
      <section anchor="aid-autonomic-identifier-fields">
        <name>AID (Autonomic IDentifier) Fields</name>
        <t>Some fields, such as the <tt>i</tt> and <tt>ri</tt> fields, <bcp14>MUST</bcp14> each have an AID (Autonomic IDentifier) as its value. An AID is a fully qualified Self-Certifying IDentifier (SCID) that follows the KERI protocol <xref target="KERI"/><xref target="KERI_ID"/>. A SCID is derived from one or more <tt>(public, private)</tt> key pairs using asymmetric or public-key cryptography to create verifiable digital signatures <xref target="DSig"/>. Each AID has a set of one or more controllers who each control a private key. By virtue of their private key(s), the set of controllers may make statements on behalf of the associated AID that is backed by uniquely verifiable commitments via digital signatures on those statements. Any entity may then verify those signatures using the associated set of public keys. No shared or trusted relationship between the controllers and verifiers is required. The verifiable key state for AIDs is established with the KERI protocol <xref target="KERI"/><xref target="KERI_ID"/>. The use of AIDS enables ACDCs to be used in a portable but securely attributable, fully decentralized manner in an ecosystem that spans trust domains.</t>
        <section anchor="namespaced-aids">
          <name>Namespaced AIDs</name>
          <t>Because KERI is agnostic about the namespace for any particular AID, different namespace standards may be used to express KERI AIDs within AID fields in an ACDC. The examples below use the W3C DID namespace specification with the <tt>did:keri</tt> method <xref target="DIDK_ID"/>. But the examples would have the same validity from a KERI perspective if some other supported namespace was used or no namespace was used at all. The latter case consists of a bare KERI AID (identifier prefix).</t>
        </section>
      </section>
      <section anchor="said-self-addressing-identifier-fields">
        <name>SAID (Self-Addressing IDentifier) Fields</name>
        <t>Some fields in ACDCs may have for their value either a <em>field map</em> or a SAID. A SAID follows the SAID protocol <xref target="SAID_ID"/>. Essentially a SAID is a Self-Addressing IDentifier (self-referential content addressable). A SAID is a special type of cryptographic digest of its encapsulating <em>field map</em> (block). The encapsulating block of a SAID is called a SAD (Self-Addressed Data). Using a SAID as a <em>field value</em> enables a more compact but secure representation of the associated block (SAD) from which the SAID is derived. Any nested field map that includes a SAID field (i.e. is, therefore, a SAD) may be compacted into its SAID. The uncompacted blocks for each associated SAID may be attached or cached to optimize bandwidth and availability without decreasing security.</t>
        <t>Several top-level ACDC fields may have for their value either a serialized <em>field map</em> or the SAID of that <em>field map</em>. Each SAID provides a stable universal cryptographically verifiable and agile reference to its encapsulating block (serialized <em>field map</em>). Specifically, the value of top-level <tt>s</tt>, <tt>a</tt>, <tt>e</tt>, and <tt>r</tt> fields may be replaced by the SAID of their associated <em>field map</em>. When replaced by their SAID, these top-level sections are in <em>compact</em> form.</t>
        <t>Recall that a cryptographic commitment (such as a digital signature or cryptographic digest) on a given digest with sufficient cryptographic strength including collision resistance <xref target="HCR"/><xref target="QCHC"/> is equivalent to a commitment to the block from which the given digest was derived.  Specifically, a digital signature on a SAID makes a verifiable cryptographic non-repudiable commitment that is equivalent to a commitment on the full serialization of the associated block from which the SAID was derived. This enables reasoning about ACDCs in whole or in part via their SAIDS in a fully interoperable, verifiable, compact, and secure manner. This also supports the well-known bow-tie model of Ricardian Contracts <xref target="RC"/>. This includes reasoning about the whole ACDC given by its top-level SAID, <tt>d</tt>, field as well as reasoning about any nested sections using their SAIDS.</t>
      </section>
      <section anchor="selectively-disclosable-attribute-aggregate-field">
        <name>Selectively Disclosable Attribute Aggregate Field</name>
        <t>The top-level selectively-disclosable attribute aggregate section, <tt>A</tt>, field value is an aggregate of cryptographic commitments used to make a commitment to a set (bundle) of selectively-disclosable attributes. The value of the attribute aggregate, <tt>A</tt>, field depends on the type of selective disclosure mechanism employed. For example, the aggregate value could be the cryptographic digest of the concatenation of an ordered set of cryptographic digests, a Merkle tree root digest of an ordered set of cryptographic digests, or a cryptographic accumulator.</t>
      </section>
      <section anchor="uuid-universally-unique-identifier-fields">
        <name>UUID (Universally Unique IDentifier) Fields</name>
        <t>The purpose of the UUID, <tt>u</tt>, field in any block is to provide sufficient entropy to the SAID, <tt>d</tt>, field of the associated block to make computationally infeasible any brute force attacks on that block that attempt to discover the block contents from the schema and the SAID. The UUID, <tt>u</tt>, field may be considered a salty nonce <xref target="Salt"/>. Without the entropy provided the UUID, <tt>u</tt>, field, an adversary may be able to reconstruct the block contents merely from the SAID of the block and the schema of the block using a rainbow or dictionary attack on the set of field values allowed by the schema <xref target="RB"/><xref target="DRB"/>. The effective security level, entropy, or cryptographic strength of the schema-compliant field values may be much less than the cryptographic strength of the SAID digest. Another way of saying this is that the cardinality of the power set of all combinations of allowed field values may be much less than the cryptographic strength of the SAID. Thus an adversary could successfully discover via brute force the exact block by creating digests of all the elements of the power set which may be small enough to be computationally feasible instead of inverting the SAID itself. Sufficient entropy in the <tt>u</tt> field ensures that the cardinality of the power set allowed by the schema is at least as great as the entropy of the SAID digest algorithm itself.</t>
        <t>A UUID, <tt>u</tt> field may optionally appear in any block (field map) at any level of an ACDC. Whenever a block in an ACDC includes a UUID, <tt>u</tt>, field then it's associated SAID, <tt>d</tt>, field makes a blinded commitment to the contents of that block. The UUID, <tt>u</tt>, field is the blinding factor. This makes that block securely partially-disclosable or even selectively-disclosable notwithstanding disclosure of the associated schema of the block. The block contents can only be discovered given disclosure of the included UUID field. Likewise when a UUID, <tt>u</tt>, field appears at the top level of an ACDC then that top-level SAID, <tt>d</tt>, field makes a blinded commitment to the contents of the whole ACDC itself. Thus the whole ACDC, not merely some block within the ACDC, may be disclosed in a privacy-preserving (correlation minimizing) manner.</t>
      </section>
      <section anchor="full-partial-and-selective-disclosure">
        <name>Full, Partial, and Selective Disclosure</name>
        <t>The difference between <strong><em>partial disclosure</em></strong> and <strong><em>selective disclosure</em></strong> of a given field map is determined by the correlatability of the disclosed field(s) after <strong><em>full disclosure</em></strong> of the detailed field value with respect to its enclosing block (map or array of fields). A <em>partially disclosable</em> field becomes correlatable after <em>full disclosure</em>. Whereas a <em>selectively disclosable</em> field may be excluded from the <em>full disclosure</em> of any other <em>selectively disclosable</em> fields in the <em>selectively disclosable</em> block (array). After such <em>selective disclosure</em>, the selectively disclosed fields are not correlatable to the so-far undisclosed but selectively disclosable fields in that block.</t>
        <t>When used in the context of <em>selective disclosure</em>, <em>full disclosure</em> means detailed disclosure of the selectively disclosed attributes not detailed disclosure of all selectively disclosable attributes. Whereas when used in the context of <em>partial disclosure</em>, <em>full disclosure</em> means detailed disclosure of the field map that was so far only partially disclosed.</t>
        <t><em>Partial disclosure</em> is an essential mechanism needed to support both performant exchange of information and chain-link confidentiality on exchanged information <xref target="CLC"/>. The exchange of only the SAID of a given field map is a type of <em>partial disclosure</em>. Another type of <em>partial disclosure</em> is the disclosure of validatable metadata about a detailed field map e.g. the schema of a field map.</t>
        <t>The SAID of a field map provides a <em>compact</em> cryptographically equivalent commitment to the yet to be undisclosed field map details.  A later exchange of the uncompacted field map detail provides <em>full disclosure</em>. Any later <em>full disclosure</em> is verifiable to an earlier <em>partial disclosure</em>. Partial disclosure via compact SAIDs enables the scalable repeated verifiable exchange of SAID references to cached full disclosures. Multiple SAID references to cached fully disclosed field maps may be transmitted compactly without redundant retransmission of the full details each time a new reference is transmitted. Likewise, <em>partial disclosure</em> via SAIDs also supports the bow-tie model of Ricardian contracts <xref target="RC"/>. Similarly, the schema of a field map is metadata about the structure of the field map this is validatable given the full disclosure of the field map. The details of<em>compact</em> and/or confidential exchange mechanisms that leverage partial disclosure are explained later.</t>
        <t><em>Selective disclosure</em>, on the other hand, is an essential mechanism needed to unbundle in a correlation minimizing way a single commitment by an Issuer to a bundle of fields (i.e. a nested array or list or tuple of fields) as a whole. This allows separating a "stew" (bundle) of "ingredients" (attributes) into its constituent "ingredients" (attributes) without correlating the constituents via the Issuer's commitment to the "stew" (bundle) as a whole.</t>
      </section>
    </section>
    <section anchor="schema-section">
      <name>Schema Section</name>
      <section anchor="schema-is-type">
        <name>Schema is Type</name>
        <t>Notable is the fact that there are no top-level type fields in an ACDC. This is because the schema, <tt>s</tt>, field itself is the type field. ACDCs follow the design principle of separation of concerns between a data container's actual payload information and the type information of that container's payload. In this sense, type information is metadata, not data. The schema dialect is JSON Schema 2020-12 <xref target="JSch"/><xref target="JSch_202012"/>. JSON Schema support for composable schema (sub-schema), conditional schema (sub-schema), and regular expressions in schema enable a validator to ask and answer complex questions about the type of even optional payload elements while maintaining isolation between payload information and type (structure) information about the payload <xref target="JSchCp"/><xref target="JSchRE"/><xref target="JSchId"/><xref target="JSchCx"/>. ACDC's use of JSON Schema <bcp14>MUST</bcp14> be in accordance with the ACDC defined profile as defined herein. The exceptions are defined below.</t>
      </section>
      <section anchor="schema-id-field-label">
        <name>Schema ID Field Label</name>
        <t>The usual field label for SAID fields in ACDCs is <tt>d</tt>. In the case of the schema section, however, the field label for the SAID of the schema section is <tt>$id</tt>. This repurposes the schema id field label, <tt>$id</tt> as defined by JSON Schema <xref target="JSchId"/><xref target="JSchCx"/>.  The top-level id, <tt>$id</tt>, field value in a JSON Schema provides a unique identifier of the schema instance. In a usual (non-ACDC) schema the value of the id, <tt>$id</tt>, field is expressed as a URI. This is called the <em>Base URI</em> of the schema. In an ACDC schema, however, the top-level id, <tt>$id</tt>, field value is repurposed. Its value <bcp14>MUST</bcp14> include the SAID of the schema. This ensures that the ACDC schema is static and verifiable to their SAIDS. A verifiably static schema satisfies one of the essential security properties of ACDCs as discussed below. There are several ACDC supported formats for the value of the top-level id, <tt>$id</tt>, field but all of the formats <bcp14>MUST</bcp14> include the SAID of the schema (see below). Correspondingly, the value of the top-level schema, <tt>s</tt>, field <bcp14>MUST</bcp14> be the SAID included in the schema's top-level <tt>$id</tt> field. The detailed schema is either attached or cached and maybe discovered via its SAIDified, id, <tt>$id</tt>, field value.</t>
        <t>When an id, '$id', field appears in a sub-schema it indicates a bundled sub-schema called a schema resource <xref target="JSchId"/><xref target="JSchCx"/>. The value of the id, '$id', field in any ACDC bundled sub-schema resource <bcp14>MUST</bcp14> include the SAID of that sub-schema using one of the formats described below. The sub-schema so bundled <bcp14>MUST</bcp14> be verifiable against its referenced and embedded SAID value. This ensures secure bundling.</t>
      </section>
      <section anchor="static-schema">
        <name>Static Schema</name>
        <t>For security reasons, the full schema of an ACDC must be completely self-contained and statically fixed (immutable) for that ACDC. By this, we mean that no dynamic schema references or dynamic schema generation mechanisms are allowed.</t>
        <t>Should an adversary successfully attack the source that provides the dynamic schema resource and change the result provided by that reference, then the schema validation on any ACDC that uses that dynamic schema reference may fail. Such an attack effectively revokes all the ACDCs that use that dynamic schema reference. We call this a <strong><em>schema revocation</em></strong> attack.</t>
        <t>More insidiously, an attacker could shift the semantics of the dynamic schema in such a way that although the ACDC still passes its schema validation, the behavior of the downstream processing of that ACDC is changed by the semantic shift. This we call a <strong><em>semantic malleability</em></strong> attack. It may be considered a new type of <em>transaction malleability</em> attack <xref target="TMal"/>.</t>
        <t>To prevent both forms of attack, all schema must be static, i.e. schema <bcp14>MUST</bcp14> be SADs and therefore verifiable against their SAIDs.</t>
        <t>To elaborate, the serialization of a static schema may be self-contained. A compact commitment to the detailed static schema may be provided by its SAID. In other words, the SAID of a static schema is a verifiable cryptographic identifier for its SAD. Therefore all ACDC compliant schema must be SADs. In other words, they <bcp14>MUST</bcp14> therefore be <em>SAIDified</em>. The associated detailed static schema (uncompacted SAD) is cryptographically bound and verifiable to its SAID.</t>
        <t>The JSON Schema specification allows complex schema references that may include non-local URI references <xref target="JSchId"/><xref target="JSchCx"/>. These references may use the <tt>$id</tt> or <tt>$ref</tt> keywords. A relative URI reference provided by a <tt>$ref</tt> keyword is resolved against the <em>Base URI</em> provided by the top-level <tt>$id</tt> field. When this top-level <em>Base URI</em> is non-local then all relative <tt>$ref</tt> references are therefore also non-local. A non-local URI reference provided by a <tt>$ref</tt> keyword may be resolved without reference to the <em>Base URI</em>.</t>
        <t>In general, schema indicated by non-local URI references (<tt>$id</tt> or <tt>$ref</tt>) <bcp14>MUST NOT</bcp14> be used because they are not cryptographically end-verifiable. The value of the underlying schema resource so referenced may change (mutate). To restate, a non-local URI schema resource is not end-verifiable to its URI reference because there is no cryptographic binding between URI and resource.</t>
        <t>This does not preclude the use of remotely cached SAIDified schema resources because those resources are end-verifiable to their embedded SAID references. Said another way, a SAIDified schema resource is itself a SAD (Self-Address Data) referenced by its SAID. A URI that includes a SAID may be used to securely reference a remote or distributed SAIDified schema resource because that resource is fixed (immutable, nonmalleable) and verifiable to both the SAID in the reference and the embedded SAID in the resource so referenced. To elaborate, a non-local URI reference that includes an embedded cryptographic commitment such as a SAID is verifiable to the underlying resource when that resource is a SAD. This applies to JSON Schema as a whole as well as bundled sub-schema resources.</t>
        <t>There ACDC supported formats for the value of the top-level id, <tt>$id</tt>, field are as follows:</t>
        <ul spacing="normal">
          <li>Bare SAIDs may be used to refer to a SAIDified schema as long as the JSON schema validator supports bare SAID references. By default, many if not all JSON schema validators support bare strings (non-URIs) for the <em>Base URI</em> provided by the top-level <tt>$id</tt> field value.</li>
          <li>The <tt>sad:</tt> URI scheme may be used to directly indicate a URI resource that safely returns a verifiable SAD. For example <tt>sad:SAID</tt> where <em>SAID</em> is replaced with the actual SAID of a SAD that provides a verifiable non-local reference to JSON Schema as indicated by the mime-type of <tt>schema+json</tt>.</li>
          <li>The IETF KERI OOBI internet draft specification provides a URL syntax that references a SAD resource by its SAID at the service endpoint indicated by that URL <xref target="OOBI_ID"/>. Such remote OOBI URLs are also safe because the provided SAD resource is verifiable against the SAID in the OOBI URL. Therefore OOBI URLs are also acceptable non-local URI references for JSON Schema.</li>
          <li>The <tt>did:</tt> URI scheme may be used safely to prefix non-local URI references that act to namespace SAIDs expressed as DID URIs or DID URLs.  DID resolvers resolve DID URLs for a given DID method such as <tt>did:keri</tt> <xref target="DIDK_ID"/> and may return DID docs or DID doc metadata with SAIDified schema or service endpoints that return SAIDified schema. A verifiable non-local reference in the form of DID URL that includes the schema SAID is resolved safely when it dereferences to the SAD of that SAID. For example, the resolution result returns an ACDC JSON Schema whose id, <tt>$id</tt>, field includes the SAID and returns a resource with JSON Schema mime-type of <tt>schema+json</tt>.</li>
        </ul>
        <t>To clarify, ACDCs <bcp14>MUST NOT</bcp14> use complex JSON Schema references which allow *dynamically generated *schema resources to be obtained from online JSON Schema Libraries <xref target="JSchId"/><xref target="JSchCx"/>. The latter approach may be difficult or impossible to secure because a cryptographic commitment to the base schema that includes complex schema (non-relative URI-based) references only commits to the non-relative URI reference and not to the actual schema resource which may change (is dynamic, mutable, malleable). To restate, this approach is insecure because a cryptographic commitment to a complex (non-relative URI-based) reference is NOT equivalent to a commitment to the detailed associated schema resource so referenced if it may change.</t>
        <t>ACDCs <bcp14>MUST</bcp14> use static JSON Schema (i.e. <em>SAIDifiable</em> schema). These may include internal relative references to other parts of a fully self-contained static (<em>SAIDified</em>) schema or references to static (<em>SAIDified</em>) external schema parts. As indicated above, these references may be bare SAIDs, DID URIs or URLs (<tt>did:</tt> scheme), SAD URIs (<tt>sad:</tt> scheme), or OOBI URLs. Recall that a commitment to a SAID with sufficient collision resistance makes an equivalent secure commitment to its encapsulating block SAD. Thus static schema may be either fully self-contained or distributed in parts but the value of any reference to a part must be verifiably static (immutable, nonmalleable) by virtue of either being relative to the self-contained whole or being referenced by its SAID. The static schema in whole or in parts may be attached to the ACDC itself or provided via a highly available cache or data store. To restate, this approach is securely end-verifiable (zero-trust) because a cryptographic commitment to the SAID of a SAIDified schema is equivalent to a commitment to the detailed associated schema itself (SAD).</t>
      </section>
      <section anchor="schema-dialect">
        <name>Schema Dialect</name>
        <t>The schema dialect for ACDC 1.0 is JSON Schema 2020-12 and is indicated by the identifier <tt>"https://json-schema.org/draft/2020-12/schema"</tt>  <xref target="JSch"/><xref target="JSch_202012"/>. This is indicated in a JSON Schema via the value of the top-level <tt>$schema</tt> field. Although the value of <tt>$schema</tt> is expressed as a URI, de-referencing does not provide dynamically downloadable schema dialect validation code. This would be an attack vector. The validator <bcp14>MUST</bcp14> control the tooling code dialect used for schema validation and hence the tooling dialect version actually used. A mismatch between the supported tooling code dialect version and the <tt>$schema</tt> string value should cause the validation to fail. The string is simply an identifier that communicates the intended dialect to be processed by the schema validation tool. When provided, the top-level <tt>$schema</tt> field value for ACDC version 1.0 must be "https://json-schema.org/draft/2020-12/schema".</t>
      </section>
      <section anchor="schema-availablity">
        <name>Schema Availablity</name>
        <t>The composed detailed (uncompacted) (bundled) static schema for an ACDC may be cached or attached. But cached, and/or attached static schema is not to be confused with dynamic schema. Nonetheless, while securely verifiable, a remotely cached, <em>SAIDified</em>, schema resource may be unavailable. Availability is a separate concern. Unavailable does not mean insecure or unverifiable. ACDCs <bcp14>MUST</bcp14> be verifiable when available.  Availability is typically solvable through redundancy. Although a given ACDC application domain or eco-system governance framework may impose schema availability constraints, the ACDC specification itself does not impose any specific availability requirements on Issuers other than schema caches <bcp14>SHOULD</bcp14> be sufficiently available for the intended application of their associated ACDCs. It's up to the Issuer of an ACDC to satisfy any availability constraints on its schema that may be imposed by the application domain or eco-system.</t>
      </section>
      <section anchor="composable-json-schema">
        <name>Composable JSON Schema</name>
        <t>A composable JSON Schema enables the use of any combination of compacted/uncompacted attribute, edge, and rule sections in a provided ACDC. When compact, any one of these sections may be represented merely by its SAID <xref target="JSch"/><xref target="JSchCp"/>. When used for the top-level attribute, <tt>a</tt>, edge, <tt>e</tt>, or rule, <tt>r</tt>, section field values, the <tt>oneOf</tt> sub-schema composition operator provides both compact and uncompacted variants. The provided ACDC <bcp14>MUST</bcp14> validate against an allowed combination of the composed variants, either the compact SAID of a block or the full detailed (uncompacted) block for each section. The validator determines what decomposed variants the provided ACDC <bcp14>MUST</bcp14> also validate against. Decomposed variants may be dependent on the type of disclosure, partial, full, or selective.</t>
        <t>Unlike the other compactifiable sections, it is impossible to define recursively the exact detailed schema as a variant of a <tt>oneOf</tt> composition operator contained in itself. Nonetheless, the provided schema, whether self-contained, attached, or cached <bcp14>MUST</bcp14> validate as a SAD against its provided SAID. It <bcp14>MUST</bcp14> also validate against one of its specified <tt>oneOf</tt> variants.</t>
        <t>The compliance of the provided non-schema attribute, <tt>a</tt>, edge, <tt>e</tt>, and rule, <tt>r</tt>,  sections <bcp14>MUST</bcp14> be enforced by validating against the composed schema. In contrast, the compliance of the provided composed schema for an expected ACDC type  <bcp14>MUST</bcp14> be enforced by the validator. This is because it is not possible to enforce strict compliance of the schema by validating it against itself.</t>
        <t>ACDC specific schema compliance requirements are usually specified in the eco-system governance framework for a given ACDC type.  Because the SAID of a schema is a unique content-addressable identifier of the schema itself, compliance can be enforced by comparison to the allowed schema SAID in a well-known publication or registry of ACDC types for a given ecosystem governance framework (EGF). The EGF may be solely specified by the Issuer for the ACDCs it generates or be specified by some mutually agreed upon eco-system governance mechanism. Typically the business logic for making a decision about a presentation of an ACDC starts by specifying the SAID of the composed schema for the ACDC type that the business logic is expecting from the presentation. The verified SAID of the actually presented schema is then compared against the expected SAID. If they match then the actually presented ACDC may be validated against any desired decomposition of the expected (composed) schema.</t>
        <t>To elaborate, a validator can confirm compliance of any non-schema section of the ACDC against its schema both before and after uncompacted disclosure of that section by using a composed base schema with <tt>oneOf</tt> pre-disclosure and a decomposed schema post-disclosure with the compact <tt>oneOf</tt> option removed. This capability provides a mechanism for secure schema validation of both compact and uncompacted variants that require the Issuer to only commit to the composed schema and not to all the different schema variants for each combination of a given compact/uncompacted section in an ACDC.</t>
        <t>One of the most important features of ACDCs is support for Chain-Link Confidentiality <xref target="CLC"/>. This provides a powerful mechanism for protecting against un-permissioned exploitation of the data disclosed via an ACDC. Essentially an exchange of information compatible with chain-link confidentiality starts with an offer by the discloser to disclose confidential information to a potential disclosee. This offer includes sufficient metadata about the information to be disclosed such that the disclosee can agree to those terms. Specifically, the metadata includes both the schema of the information to be disclosed and the terms of use of that data once disclosed. Once the disclosee has accepted the terms then full disclosure is made. A full disclosure that happens after contractual acceptance of the terms of use we call <em>permissioned</em> disclosure. The pre-acceptance disclosure of metadata is a form of partial disclosure.</t>
        <t>As is the case for compact (uncompacted) ACDC disclosure, Composable JSON Schema, enables the use of the same base schema for both the validation of the partial disclosure of the offer metadata prior to contract acceptance and validation of full or detailed disclosure after contract acceptance <xref target="JSch"/><xref target="JSchCp"/>. A cryptographic commitment to the base schema securely specifies the allowable semantics for both partial and full disclosure. Decomposition of the base schema enables a validator to impose more specific semantics at later stages of the exchange process. Specifically, the <tt>oneOf</tt> sub-schema composition operator validates against either the compact SAID of a block or the full block. Decomposing the schema to remove the optional compact variant enables a validator to ensure complaint full disclosure. To clarify, a validator can confirm schema compliance both before and after detailed disclosure by using a composed base schema pre-disclosure and a decomposed schema post-disclosure with the undisclosed options removed. These features provide a mechanism for secure schema-validated contractually-bound partial (and/or selective) disclosure of confidential data via ACDCs.</t>
      </section>
    </section>
    <section anchor="acdc-variants">
      <name>ACDC Variants</name>
      <t>There are several variants of ACDCs determined by the presence/absence of certain fields and/or the value of those fields. 
At the top level, the presence (absence), of the UUID, <tt>u</tt>, field produces two variants. These are private (public) respectively. In addition, a present but empty UUID, <tt>u</tt>, field produces a private metadata variant.</t>
      <section anchor="public-acdc">
        <name>Public ACDC</name>
        <t>Given that there is no top-level UUID, <tt>u</tt>, field in an ACDC, then knowledge of both the schema of the ACDC and the top-level SAID, <tt>d</tt>, field  may enable the discovery of the remaining contents of the ACDC via a rainbow table attack <xref target="RB"/><xref target="DRB"/>. Therefore, although the top-level, <tt>d</tt>, field is a cryptographic digest, it may not securely blind the contents of the ACDC when knowledge of the schema is available.  The field values may be discoverable. Consequently, any cryptographic commitment to the top-level SAID, <tt>d</tt>, field may provide a fixed point of correlation potentially to the ACDC field values themselves in spite of non-disclosure of those field values. Thus an ACDC without a top-level UUID, <tt>u</tt>, field must be considered a <strong><em>public</em></strong> (non-confidential) ACDC.</t>
      </section>
      <section anchor="private-acdc">
        <name>Private ACDC</name>
        <t>Given a top-level UUID, <tt>u</tt>, field, whose value has sufficient cryptographic entropy, then the top-level SAID, <tt>d</tt>, field of an ACDC  may provide a secure cryptographic digest that blinds the contents of the ACDC <xref target="Hash"/>. An adversary when given both the schema of the ACDC and the top-level SAID, <tt>d</tt>, field, is not able to discover the remaining contents of the ACDC in a computationally feasible manner such as through a rainbow table attack <xref target="RB"/><xref target="DRB"/>. Therefore the top-level, UUID, <tt>u</tt>, field may be used to securely blind the contents of the ACDC notwithstanding knowledge of the schema and top-level, SAID, <tt>d</tt>, field.  Moreover, a cryptographic commitment to that that top-level SAID, <tt>d</tt>, field does not provide a fixed point of correlation to the other ACDC field values themselves unless and until there has been a disclosure of those field values. Thus an ACDC with a sufficiently high entropy top-level UUID, <tt>u</tt>, field may be considered a <strong><em>private</em></strong> (confidential) ACDC. enables a verifiable commitment to the top-level SAID of a private ACDC to be made prior to the disclosure of the details of the ACDC itself without leaking those contents. This is called <em>partial</em> disclosure. Furthermore, the inclusion of a UUID, <tt>u</tt>, field in a block also enables <em>selective</em> disclosure mechanisms described later in the section on selective disclosure.</t>
      </section>
      <section anchor="metadata-acdc">
        <name>Metadata ACDC</name>
        <t>An empty, top-level UUID, <tt>u</tt>, field appearing in an ACDC indicates that the ACDC is a <strong><em>metadata</em></strong> ACDC. The purpose of a <em>metadata</em> ACDC is to provide a mechanism for a <em>Discloser</em> to make cryptographic commitments to the metadata of a yet to be disclosed private ACDC without providing any point of correlation to the actual top-level SAID, <tt>d</tt>, field of that yet to be disclosed ACDC. The top-level SAID, <tt>d</tt>, field, of the metadata ACDC, is cryptographically derived from an ACDC with an empty top-level UUID, <tt>u</tt>, field so its value will necessarily be different from that of an ACDC with a high entropy top-level UUID, <tt>u</tt>, field value. Nonetheless, the <em>Discloser</em> may make a non-repudiable cryptographic commitment to the metadata SAID in order to initiate a chain-link confidentiality exchange without leaking correlation to the actual ACDC to be disclosed <xref target="CLC"/>. A <em>Disclosee</em> (verifier) may validate the other metadata information in the metadata ACDC before agreeing to any restrictions imposed by the future disclosure. The metadata includes the <em>Issuer</em>, the <em>schema</em>, the provenancing <em>edges</em>, and the <em>rules</em> (terms-of-use). The top-level attribute section, <tt>a</tt>, field value of a <em>metadata</em> ACDC may be empty so that its value is not correlatable across disclosures (presentations). Should the potential <em>Disclosee</em> refuse to agree to the rules then the <em>Discloser</em> has not leaked the SAID of the actual ACDC or the SAID of the attribute block that would have been disclosed.</t>
        <t>Given the <em>metadata</em> ACDC, the potential <em>Disclosee</em> is able to verify the <em>Issuer</em>, the schema, the provenanced edges, and rules prior to agreeing to the rules.  Similarly, an <em>Issuer</em> may use a <em>metadata</em> ACDC to get agreement to a contractual waiver expressed in the rule section with a potential <em>Issuee</em> prior to issuance. Should the <em>Issuee</em> refuse to accept the terms of the waiver then the <em>Issuer</em> has not leaked the SAID of the actual ACDC that would have been issued nor the SAID of its attributes block nor the attribute values themselves.</t>
        <t>When a <em>metadata</em> ACDC is disclosed (presented) only the <em>Discloser's</em> signature(s) is attached not the <em>Issuer's</em> signature(s). This precludes the <em>Issuer's</em> signature(s) from being used as a point of correlation until after the <em>Disclosee</em> has agreed to the terms in the rule section. When chain-link confidentiality is used, the <em>Issuer's</em> signatures are not disclosed to the <em>Disclosee</em> until after the <em>Disclosee</em> has agreed to keep them confidential. The <em>Disclosee</em> is protected from forged <em>Discloser</em> because ultimately verification of the disclosed ACDC will fail if the <em>Discloser</em> does not eventually provide verifiable <em>Issuer's</em> signatures. Nonetheless, should the potential <em>Disclosee</em> not agree to the terms of the disclosure expressed in the rule section then the <em>Issuer's</em> signature(s) is not leaked.</t>
      </section>
    </section>
    <section anchor="unpermissioned-exploitation-of-data">
      <name>Unpermissioned Exploitation of Data</name>
      <t>An important design goal of ACDCs is they support the sharing of provably authentic data while also protecting against the un-permissioned exploitation of that data. Often the term <em>privacy protection</em> is used to describe similar properties. But a narrow focus on "privacy protection" may lead to problematic design trade-offs. With ACDCs, the primary design goal is not <em>data privacy protection</em> per se but the more general goal of protection from the <strong><em>un-permissioned exploitation of data</em></strong>. In this light, a <em>given privacy protection</em> mechanism may be employed to help protect against <em>unpermissioned exploitation of data</em> but only when it serves that more general-purpose and not as an end in and of itself. There are three primary mechanisms ACDCs use to protect against <em>unpermissioned exploitation of data</em>. These are:</t>
      <ul spacing="normal">
        <li>Chain-link Confidentiality <xref target="CLC"/></li>
        <li>Partial Disclosure</li>
        <li>Selective Disclosure</li>
      </ul>
      <section anchor="principle-of-least-disclosure">
        <name>Principle of Least Disclosure</name>
        <t>ACDCs are designed to satisfy the principle of least disclosure.</t>
        <ul empty="true">
          <li>
            <t>The system should disclose only the minimum amount of information about a given party needed to facilitate a transaction and no more. <xref target="IDSys"/></t>
          </li>
        </ul>
        <t>For example, the <em>partial disclosure</em> of portions of an ACDC to enable chain-link confidentiality of the subsequent full disclosure is an application of the principle of least disclosure. Likewise, unbundling only the necessary attributes from a bundled commitment using <em>selective disclosure</em> to enable a correlation minimizing disclosure from that bundle is an application of the principle of least disclosure.</t>
      </section>
      <section anchor="three-party-exploitation-model">
        <name>Three Party Exploitation Model</name>
        <t>Unpermission exploitation is characterized using a three-party model. The three parties are as follows:</t>
        <ul spacing="normal">
          <li>First-Party = <em>Discloser</em> of data.</li>
          <li>Second-Party = <em>Disclosee</em> of data received from First Party (<em>Discloser</em>).</li>
          <li>Third-Party = <em>Observer</em> of data disclosed by First Party (<em>Discloser</em>) to Second Party (<em>Disclosee</em>).</li>
        </ul>
        <section anchor="second-party-disclosee-exploitation">
          <name>Second-Party (Disclosee) Exploitation</name>
          <ul spacing="normal">
            <li>
              <t>implicit permissioned correlation.
              </t>
              <ul spacing="normal">
                <li>no contractual restrictions on the use of disclosed data.</li>
              </ul>
            </li>
            <li>
              <t>explicit permissioned correlation.
              </t>
              <ul spacing="normal">
                <li>use as permitted by contract</li>
              </ul>
            </li>
            <li>
              <t>explicit unpermissioned correlation with other second parties or third parties.
              </t>
              <ul spacing="normal">
                <li>malicious use in violation of contract</li>
              </ul>
            </li>
          </ul>
        </section>
        <section anchor="third-party-observer-exploitation">
          <name>Third-Party (Observer) Exploitation</name>
          <ul spacing="normal">
            <li>
              <t>implicit permissioned correlation.
              </t>
              <ul spacing="normal">
                <li>no contractual restrictions on use of observed data.</li>
              </ul>
            </li>
            <li>
              <t>explicit unpermissioned correlation via collusion with second parties.
              </t>
              <ul spacing="normal">
                <li>malicious use in violation of second party contract</li>
              </ul>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="chain-link-confidentiality-exchange">
        <name>Chain-link Confidentiality Exchange</name>
        <t>Chain-link confidentiality imposes contractual restrictions and liability on any Disclosee (Second-Party) <xref target="CLC"/>. The exchange provides a fair contract consummation mechanism. The steps in a chain-link confidentiality exchange are as follows:</t>
        <ul spacing="normal">
          <li>
            <em>Discloser</em> provides a non-repudiable <em>Offer</em> with verifiable metadata (sufficient partial disclosure) which includes any terms or restrictions on use.</li>
          <li>
            <em>Disclosee</em> verifies <em>Offer</em> against composed schema and metadata adherence to desired data.</li>
          <li>
            <em>Disclosee</em> provides non-repudiable <em>Accept</em> of terms that are contingent on compliant disclosure.</li>
          <li>
            <em>Discloser</em> provides non-repudiable <em>Disclosure</em> with sufficient compliant detail.</li>
          <li>
            <em>Disclosee</em> verifies <em>Disclosure</em> using decomposed schema and adherence of disclosed data to <em>Offer</em>.</li>
        </ul>
        <t><em>Disclosee</em> may now engage in permissioned use and carries liability as a deterrent against unpermissioned use.</t>
      </section>
    </section>
    <section anchor="compact-acdc">
      <name>Compact ACDC</name>
      <t>The top-level section field values of a compact ACDC are the SAIDs of each uncompacted top-level section. The section field labels
are <tt>s</tt>, <tt>a</tt>, <tt>e</tt>, and <tt>r</tt>.</t>
      <section anchor="compact-public-acdc">
        <name>Compact Public ACDC</name>
        <t>A fully compact public ACDC is shown below.</t>
        <sourcecode type="json"><![CDATA[
{
  "v":  "ACDC10JSON00011c_",
  "d":  "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
  "i":  "did:keri:EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
  "ri": "did:keri:EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
  "s":  "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
  "a":  "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
  "e":  "ERH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZIl3MOA",
  "r":  "Ee71iheqcywJcnjtJtQIYPvAu6DZIl3MORH3dCdoFOLB"
}
]]></sourcecode>
      </section>
      <section anchor="compact-private-acdc">
        <name>Compact Private ACDC</name>
        <t>A fully compact private ACDC is shown below.</t>
        <sourcecode type="json"><![CDATA[
{
  "v":  "ACDC10JSON00011c_",
  "d":  "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
  "u":  "0ANghkDaG7OY1wjaDAE0qHcg",
  "i":  "did:keri:EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
  "ri": "did:keri:EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
  "s":  "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
  "a":  "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
  "e":  "ERH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZIl3MOA",
  "r":  "Ee71iheqcywJcnjtJtQIYPvAu6DZIl3MORH3dCdoFOLB"
}

]]></sourcecode>
        <section anchor="compact-private-acdc-schema">
          <name>Compact Private ACDC Schema</name>
          <t>The schema for the compact private ACDC example above is provided below.</t>
          <sourcecode type="json"><![CDATA[
{
  "$id": "EN8i2i5ye0-xGS95pm5cg1j0GmFkarJe0zzsSrrf4XJY",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Compact Private ACDC",
  "description": "Example JSON Schema for a Compact Private ACDC.",
  "credentialType": "CompactPrivateACDCExample",
  "type": "object",
  "required": 
  [
    "v",
    "d",
    "u",
    "i",
    "ri",
    "s",
    "a",
    "e",
    "r"
  ],
  "properties": 
  {
    "v": 
    {
      "description": "ACDC version string",
      "type": "string"
    },
    "d": 
    {
     "description": "ACDC SAID",
      "type": "string"
    },
    "u": 
    {
     "description": "ACDC UUID",
      "type": "string"
    },
    "i": 
    {
      "description": "Issuer AID",
      "type": "string"
    },
    "ri": 
    {
      "description": "credential status registry AID",
      "type": "string"
    },
    "s": {
      "description": "schema SAID",
      "type": "string"
    },
    "a": {
      "description": "attribute SAID",
      "type": "string"
    },
    "e": {
      "description": "edge SAID",
      "type": "string"
    },
    "r": {
      "description": "rule SAID",
      "type": "string"
    },
  },
  "additionalProperties": false
}
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="attribute-section">
      <name>Attribute Section</name>
      <t>The attribute section in the examples above has been compacted into its SAID. The schema of the compacted attribute section is as follows,</t>
      <sourcecode type="Json"><![CDATA[
{
  "a": 
  {
    "description": "attribute section SAID",
    "type": "string"
  }
}
]]></sourcecode>
      <t>Two variants of an ACDC, namely, namely, <strong><em>private (public) attribute</em></strong> are defined respectively by the presence (absence) of a UUID, <tt>u</tt>, field in the uncompacted attribute section block.</t>
      <t>Two other variants of an ACDC, namely, <strong><em>targeted (untargeted)</em></strong> are defined respectively by the presence (absence) of an issuee, <tt>i</tt>, field in the uncompacted attribute section block.</t>
      <section anchor="public-attribute-acdc">
        <name>Public-Attribute ACDC</name>
        <t>Suppose that the un-compacted value of the attribute section as denoted by the attribute section, <tt>a</tt>, field is as follows,</t>
        <sourcecode type="json"><![CDATA[
{
  "a":
  {
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "did:keri:EpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPmkPreYA",
    "score": 96,
    "name": "Jane Doe"
  }
}
]]></sourcecode>
        <t>The SAID, <tt>d</tt>, field at the top level of the uncompacted attribute block is the same SAID used as the compacted value of the attribute section, <tt>a</tt>, field.</t>
        <t>Given the absence of a <tt>u</tt> field at the top level of the attributes block, then knowledge of both SAID, <tt>d</tt>, field at the top level of an attributes block and the schema of the attributes block may enable the discovery of the remaining contents of the attributes block via a rainbow table attack <xref target="RB"/><xref target="DRB"/>. Therefore the SAID, <tt>d</tt>, field of the attributes block, although, a cryptographic digest, does not securely blind the contents of the attributes block given knowledge of the schema. It only provides compactness, not privacy. Moreover, any cryptographic commitment to that SAID, <tt>d</tt>, field provides a fixed point of correlation potentially to the attribute block field values themselves in spite of non-disclosure of those field values via a compact ACDC. Thus an ACDC without a UUID, <tt>u</tt>, field in its attributes block must be considered a <strong><em>public-attribute</em></strong> ACDC even when expressed in compact form.</t>
      </section>
      <section anchor="public-uncompacted-attribute-section-schema">
        <name>Public Uncompacted Attribute Section Schema</name>
        <t>The subschema for the public uncompacted attribute section is shown below,</t>
        <sourcecode type="json"><![CDATA[
{
  "a": 
  {
    "description": "attribute section",
    "type": "object",
    "required": 
    [
      "d",
      "i",
      "score",
      "name"
    ],
    "properties": 
    {
      "d": 
      {
        "description": "attribute SAID",
        "type": "string"
      },
      "i": 
      {
        "description": "Issuee AID",
        "type": "string"
      },
      "score": 
      {
        "description": "test score",
        "type": "integer"
      },
      "name": 
      {
        "description": "test taker full name",
        "type": "string"
      }
    },
    "additionalProperties": false
  }
}
]]></sourcecode>
      </section>
      <section anchor="composed-schema-for-both-public-compact-and-uncompacted-attribute-section-variants">
        <name>Composed Schema for both Public Compact and Uncompacted Attribute Section Variants</name>
        <t>Through the use of the JSON Schema <tt>oneOf</tt> composition operator the following composed schema will validate against both the compact and un-compacted value of the attribute section field.</t>
        <sourcecode type="json"><![CDATA[
{
  "a": 
  {
    "description": "attribute section",
    "oneOf":
    [
      {
        "description": "attribute SAID",
        "type": "string"
      },
      {
        "description": "uncompacted attribute section",
        "type": "object",
        "required": 
        [
          "d",
          "i",
          "score",
          "name"
        ],
        "properties": 
        {
          "d": 
          {
            "description": "attribute SAID",
            "type": "string"
          },
          "i": 
          {
            "description": "Issuee AID",
            "type": "string"
          },
          "score": 
          {
            "description": "test score",
            "type": "integer"
          },
          "name": 
          {
            "description": "test taker full name",
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    ]
  }
}
]]></sourcecode>
      </section>
      <section anchor="private-attribute-acdc">
        <name>Private-Attribute ACDC</name>
        <t>Consider the following form of an uncompacted private-attribute block,</t>
        <sourcecode type="json"><![CDATA[
{
  "a":
  {
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "u": "0AwjaDAE0qHcgNghkDaG7OY1",
    "i": "did:keri:EpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPmkPreYA",
    "score": 96,
    "name": "Jane Doe"
  }
}
]]></sourcecode>
        <t>Given the presence of a top-level UUID, <tt>u</tt>, field of the attribute block whose value has sufficient cryptographic entropy, then the top-level SAID, <tt>d</tt>, field of the attribute block provides a secure cryptographic digest of the contents of the attribute block <xref target="Hash"/>. An adversary when given both the schema of the attribute block and its SAID, <tt>d</tt>, field, is not able to discover the remaining contents of the attribute block in a computationally feasible manner such as a rainbow table attack <xref target="RB"/><xref target="DRB"/>.  Therefore the attribute block's UUID, <tt>u</tt>, field in a compact ACDC enables its attribute block's SAID, <tt>d</tt>, field to securely blind the contents of the attribute block notwithstanding knowledge of the attribute block's schema and SAID, <tt>d</tt> field.  Moreover, a cryptographic commitment to that attribute block's, SAID, <tt>d</tt>, field does not provide a fixed point of correlation to the attribute field values themselves unless and until there has been a disclosure of those field values.</t>
        <t>To elaborate, when an ACDC includes a sufficiently high entropy UUID, <tt>u</tt>, field at the top level of its attributes block then the ACDC may be considered a <strong><em>private-attributes</em></strong> ACDC when expressed in compact form, that is, the attribute block is represented by its SAID, <tt>d</tt>, field and the value of its top-level attribute section, <tt>a</tt>, field is the value of the nested SAID, <tt>d</tt>, field from the uncompacted version of the attribute block. A verifiable commitment may be made to the compact form of the ACDC without leaking details of the attributes. Later disclosure of the uncompacted attribute block may be verified against its SAID, <tt>d</tt>, field that was provided in the compact form as the value of the top-level attribute section, <tt>a</tt>, field.</t>
        <t>Because the <em>Issuee</em> AID is nested in the attribute block as that block's top-level, issuee, <tt>i</tt>, field, a presentation exchange (disclosure) could be initiated on behalf of a different AID that has not yet been correlated to the <em>Issuee</em> AID and then only correlated to the Issuee AID after the <em>Disclosee</em> has agreed to the chain-link confidentiality provisions in the rules section of the private-attributes ACDC <xref target="CLC"/>.</t>
        <section anchor="composed-schema-for-both-compact-and-uncompacted-private-attribute-acdc">
          <name>Composed Schema for Both Compact and Uncompacted Private-Attribute ACDC</name>
          <t>Through the use of the JSON Schema <tt>oneOf</tt> composition operator the following composed schema will validate against both the compact and un-compacted value of the private attribute section, <tt>a</tt>, field.</t>
          <sourcecode type="json"><![CDATA[
{
  "a": 
  {
    "description": "attribute section",
    "oneOf":
    [
      {
        "description": "attribute SAID",
        "type": "string"
      },
      {
        "description": "uncompacted attribute section",
        "type": "object",
        "required": 
        [
          "d",
          "u",
          "i",
          "score",
          "name"
        ],
        "properties": 
        {
          "d": 
          {
            "description": "attribute SAID",
            "type": "string"
          },
          "u": 
          {
            "description": "attribute UUID",
            "type": "string"
          },
          "i": 
          {
            "description": "Issuee AID",
            "type": "string"
          },
          "score": 
          {
            "description": "test score",
            "type": "integer"
          },
          "name": 
          {
            "description": "test taker full name",
            "type": "string"
          }
        },
        "additionalProperties": false,
      }
    ]
  }
}
]]></sourcecode>
          <t>As described above in the Schema section of this specification, the <tt>oneOf</tt> sub-schema composition operator validates against either the compact SAID of a block or the full block. A validator can use a composed schema that has been committed to by the Issuer to securely confirm schema compliance both before and after detailed disclosure by using the fully composed base schema pre-disclosure and a specific decomposed variant post-disclosure. Decomposing the schema to remove the optional compact variant (i.e. removing the <tt>oneOf</tt> compact option) enables a validator to ensure complaint full disclosure.</t>
        </section>
      </section>
      <section anchor="untargeted-acdc">
        <name>Untargeted ACDC</name>
        <t>Consider the case where the issuee, <tt>i</tt>, field is absent at the top level of the attribute block as shown below,</t>
        <sourcecode type="json"><![CDATA[
{
  "a":
  {
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "temp": 45,
    "lat": "N40.3433", 
    "lon": "W111.7208"
  }
}
]]></sourcecode>
        <t>This ACDC has an <em>Issuer</em> but no <em>Issuee</em>. Therefore, there is no provably controllable <em>Target</em> AID. This may be thought of as an undirected verifiable attestation or observation of the data in the attributes block by the <em>Issuer</em>. One could say that the attestation is addressed to "whom it may concern". It is therefore an <strong><em>untargeted</em></strong> ACDC, or equivalently an <em>unissueed</em> ACDC. An <em>untargeted</em> ACDC enables verifiable authorship by the Issuer of the data in the attributes block but there is no specified counter-party and no verifiable mechanism for delegation of authority.  Consequently, the rule section may only provide contractual obligations of implied counter-parties.</t>
        <t>This form of an ACDC provides a container for authentic data only (not authentic data as authorization). But authentic data is still a very important use case. To clarify, an untargeted ACDC enables verifiable authorship of data. An observer such as a sensor that controls an AID may make verifiable non-repudiable measurements and publish them as ACDCs. These may be chained together to provide provenance for or a chain-of-custody of any data.  These ACDCs could be used to provide a verifiable data supply chain for any compliance-regulated application. This provides a way to protect participants in a supply chain from imposters. Such data supply chains are also useful as a verifiable digital twin of a physical supply chain <xref target="Twin"/>.</t>
        <t>A hybrid chain of one or more targeted ACDCs ending in a chain of one or more untargeted ACDCs enables delegated authorized attestations at the tail of that chain. This may be very useful in many regulated supply chain applications such as verifiable authorized authentic datasheets for a given pharmaceutical.</t>
      </section>
      <section anchor="targeted-acdc">
        <name>Targeted ACDC</name>
        <t>When present at the top level of the attribute section, the issuee, <tt>i</tt>, field value provides the AID of the <em>Issuee</em> of the ACDC. This <em>Issuee</em> AID is a provably controllable identifier that serves as the <em>Target</em> AID. This makes the ACDC a <strong><em>targeted</em></strong> ACDC or equivalently an <em>issueed</em> ACDC. Targeted ACDCs may be used for many different purposes such as an authorization or a delegation directed at the <em>Issuee</em> AID, i.e. the <em>Target</em>. In other words, a <em>targeted ACDC</em> provides a container for authentic data that may also be used as some form of authorization such as a credential that is verifiably bound to the <em>Issuee</em> as targeted by the <em>Issuer</em>. Furthermore, by virtue of the targeted <em>Issuee's</em> provable control over its AID, the <em>targeted ACDC</em> may be verifiably presented (disclosed) by the controller of the <em>Issuee</em> AID.</t>
        <t>For example, the definition of the term <strong><em>credential</em></strong> is <em>evidence of authority, status, rights, entitlement to privileges, or the like</em>. To elaborate, the presence of an attribute section top-level issuee, <tt>i</tt>, field enables the ACDC to be used as a verifiable credential given by the <em>Issuer</em> to the <em>Issuee</em>.</t>
        <t>One reason the issuee, <tt>i</tt>, field is nested into the attribute section, <tt>a</tt>, block is to enable the <em>Issuee</em> AID to be private or partially or selectively disclosable. The <em>Issuee</em> may also be called the <em>Holder</em> or <em>Subject</em> of the ACDC.  But here we use the more semantically precise albeit less common terms of <em>Issuer</em> and <em>Issuee</em>. The ACDC is issued from or by an <em>Issuer</em> and is issued to or for an <em>Issuee</em>. This precise terminology does not bias or color the role (function) that an <em>Issuee</em> plays in the use of an ACDC. What the presence of <em>Issuee</em> AID does provide is a mechanism for control of the subsequent use of the ACDC once it has been issued. To elaborate, because the issuee, <tt>i</tt>, field value is an AID, by definition, there is a provable controller of that AID. Therefore that <em>Issuee</em> controller may make non-repudiable commitments via digital signatures on behalf of its AID.  Therefore subsequent use of the ACDC by the <em>Issuee</em> may be securely attributed to the <em>Issuee</em>.</t>
        <t>Importantly the presence of an issuee, <tt>i</tt>, field enables the associated <em>Issuee</em> to make authoritative verifiable presentations or disclosures of the ACDC. A designated <em>Issuee</em>also better enables the initiation of presentation exchanges of the ACDC between that <em>Issuee</em> as <em>Discloser</em> and a <em>Disclosee</em> (verifier).</t>
        <t>In addition, because the <em>Issuee</em> is a specified counter-party the <em>Issuer</em> may engage in a contract with the <em>Issuee</em> that the <em>Issuee</em> agrees to by virtue of its non-repudiable signature on an offer of the ACDC prior to its issuance. This agreement may be a pre-condition to the issuance and thereby impose liability waivers or other terms of use on that <em>Issuee</em>.</t>
        <t>Likewise, the presence of an issuee, <tt>i</tt>, field, enables the <em>Issuer</em> to use the ACDC as a contractual vehicle for conveying an authorization to the <em>Issuee</em>.  This enables verifiable delegation chains of authority because the <em>Issuee</em> in one ACDC may become the <em>Issuer</em> in some other ACDC. Thereby an <em>Issuer</em> may delegate authority to an <em>Issuee</em> who may then become a verifiably authorized <em>Issuer</em> that then delegates that authority (or an attenuation of that authority) to some other verifiably authorized <em>Issuee</em> and so forth.</t>
      </section>
    </section>
    <section anchor="edge-section">
      <name>Edge Section</name>
      <t>In the compact ACDC examples above, the edge section has been compacted into merely the SAID of that section. Suppose that the un-compacted value of the edge section denoted by the top-level edge, <tt>e</tt>, field is as follows,</t>
      <sourcecode type="json"><![CDATA[
{
  "e": 
  {
    "d": "EerzwLIr9Bf7V_NHwY1lkFrn9y2PgveY4-9XgOcLx,UdY",
    "boss":
    {
      "n": "EIl3MORH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZA"
    }
  }
}
]]></sourcecode>
      <t>The edge section's top-level SAID, <tt>d</tt>, field is the SAID of the edge block and is the same SAID used as the compacted value of the ACDC's top-level edge, <tt>e</tt>, field. Each edge in the edge section gets its field with its own local label. In the example above, the edge label is <tt>"boss"</tt>. Note that each edge does NOT include a type field. The type of each edge is provided by the schema vis-a-vis the label of that edge. This is in accordance with the design principle of ACDCs that may be succinctly expressed as "schema is type". This approach varies somewhat from many property graphs which often do not have a schema <xref target="PGM"/><xref target="Dots"/><xref target="KG"/>. Because ACDCs have a schema for other reasons, however, they leverage that schema to provide edge types with a cleaner separation of concerns.</t>
      <t>Each edge sub-block has one required node, <tt>n</tt>, field. The value of the node, <tt>n</tt>, field is the SAID of the ACDC to which the edge connects.</t>
      <t>A main distinguishing feature of a <em>property graph</em> (PG) is that both nodes but edges may have a set of properties <xref target="PGM"/><xref target="Dots"/><xref target="KG"/>. These might include modifiers that influence how the connected node is to be used such as a weight. Weighted directed edges represent degrees of confidence or likelihood. These types of PGs are commonly used for machine learning or reasoning under uncertainty. The following example adds a weight property to the edge sub-block as indicated by the weight, <tt>w</tt>, field.</t>
      <sourcecode type="json"><![CDATA[
{
  "e": 
  {
    "d": "EerzwLIr9Bf7V_NHwY1lkFrn9y2PgveY4-9XgOcLxUdY",
    "boss":
    {
      "n": "EIl3MORH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZA",
      "w": "high"
    }
  }
}
]]></sourcecode>
      <section anchor="globally-distributed-secure-graph-fragments">
        <name>Globally Distributed Secure Graph Fragments</name>
        <t>Abstractly, an ACDC with one or more edges may be a fragment of a distributed property graph. However, the local label does not enable the direct unique global resolution of a given edge including its properties other than a trivial edge with only one property, its node, <tt>n</tt> field. To enable an edge with additional properties to be globally uniquely resolvable, that edge's block may have a SAID, <tt>d</tt>, field. Because a SAID is a cryptographic digest it will universally and uniquely identify an edge with a given set of properties <xref target="Hash"/>. This allows ACDCs to be used as secure fragments of a globally distributed property graph (PG). This enables a property graph to serve as a global knowledge graph in a secure manner that crosses trust domains <xref target="PGM"/><xref target="Dots"/><xref target="KG"/>. This is shown below.</t>
        <sourcecode type="json"><![CDATA[
{
  "e": 
  {
    "d": "EerzwLIr9Bf7V_NHwY1lkFrn9y2PgveY4-9XgOcLxUdY",
    "boss":
    {
      "d": "E9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NHwY1lkFrn",
      "n": "EIl3MORH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZA",
      "w": "high"
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="compact-edge">
        <name>Compact Edge</name>
        <t>Given that an individual edge's property block includes a SAID, <tt>d</tt>, field then a compact representation of the edge's property block is provided by replacing it with its SAID. This may be useful for complex edges with many properties. This is called a <strong><em>compact edge</em></strong>. This is shown as follows,</t>
        <sourcecode type="json"><![CDATA[
{
  "e": 
  {
    "d": "EerzwLIr9Bf7V_NHwY1lkFrn9y2PgveY4-9XgOcLxUdY",
    "boss": "E9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NHwY1lkFrn",
  }
}
]]></sourcecode>
      </section>
      <section anchor="private-edge">
        <name>Private Edge</name>
        <t>Each edge's properties may be blinded by its SAID, <tt>d</tt>, field (i.e. be private) if its properties block includes a UUID, <tt>u</tt> field. As with UUID, <tt>u</tt>, fields used elsewhere in ACDC, if the UUID, <tt>u</tt>, field value has sufficient entropy then the values of the properties of its enclosing block are not discoverable in a computationally feasible manner merely given the schema for the edge block and its SAID, <tt>d</tt> field. This is called a <strong><em>private edge</em></strong>. When a private edge is provided in compact form then the edge detail is hidden and is partially disclosable. An uncompacted private edge is shown below.</t>
        <sourcecode type="json"><![CDATA[
{
  "e": 
  {
    "d": "EerzwLIr9Bf7V_NHwY1lkFrn9y2PgveY4-9XgOcLxUdY",
    "boss":
    {
      "d": "E9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NHwY1lkFrn",
      "u":  "0AG7OY1wjaDAE0qHcgNghkDa",
      "n": "EIl3MORH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZA",
      "w": "high"
    }
  } 
}
]]></sourcecode>
        <t>When an edge points to a <em>private</em> ACDC, a <em>Discloser</em> may choose to use a metadata version of that private ACDC when presenting the node, <tt>n</tt>, field of that edge prior to acceptance of the terms of disclosure. The <em>Disclosee</em> can verify the metadata of the private node without the <em>Discloser</em> exposing the actual node contents via the actual node SAID or other attributes.</t>
        <t>Private ACDCs (nodes) and private edges may be used in combination to prevent an un-permissioned correlation of the distributed property graph.</t>
      </section>
      <section anchor="simple-compact-edge">
        <name>Simple Compact Edge</name>
        <t>When an edge sub-block has only one field that is its node, <tt>n</tt>, field then the edge block may use an alternate simplified compact form where the labeled edge field value is the value of its node, <tt>n</tt>, field. The schema for that particular edge label, in this case, <tt>"boss"</tt>,  will indicate that the edge value is a node SAID and not the edge sub-block SAID as would be the case for the normal compact form shown above. This alternate compact form is shown below.</t>
        <sourcecode type="json"><![CDATA[
{
  "e": 
  {
    "d": "EerzwLIr9Bf7V_NHwY1lkFrn9y2PgveY4-9XgOcLxUdY",
    "boss": "EIl3MORH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZA"
  }
}
]]></sourcecode>
      </section>
      <section anchor="node-discovery">
        <name>Node Discovery</name>
        <t>In general, the discovery of the details of an ACDC referenced as a node, <tt>n</tt> field value, in an edge sub-block begins with the node SAID or the SAID of the associated edge sub-block. Because a SAID is a cryptographic digest with high collision resistance it provides a universally unique identifier to the referenced ACDC as a node. The Discovery of a service endpoint URL that provides database access to a copy of the ACDC may be bootstrapped via an OOBI (Out-Of-Band-Introduction) that links the service endpoint URL to the SAID of the ACDC <xref target="OOBI_ID"/>. Alternatively, the <em>Issuer</em> may provide as an attachment at the time of issuance a copy of the referenced ACDC. In either case, after a successful exchange, the <em>Issuee</em> or recipient of any ACDC will have either a copy or a means of obtaining a copy of any referenced ACDCs as nodes in the edge sections of all ACDCs so chained. That Issuee or recipient will then have everything it needs to make a successful disclosure to some other <em>Disclosee</em>. This is the essence of <em>percolated</em> discovery.</t>
      </section>
    </section>
    <section anchor="rule-section">
      <name>Rule Section</name>
      <t>In the compact ACDC examples above, the rule section has been compacted into merely the SAID of that section. Suppose that the un-compacted value of the rule section denoted by the top-level rule, <tt>r</tt>, field is as follows,</t>
      <sourcecode type="json"><![CDATA[
{
  "r": 
  {
    "d": "EwY1lkFrn9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NA",
    "warrantyDisclaimer": 
    {
      "l": "Issuer provides this credential on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE"
    },
    "liabilityDisclaimer": 
    {
      "l": "In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall the Issuer be liable for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this credential. "
    }
  }
}
]]></sourcecode>
      <t>The purpose of the rule section is to provide a Ricardian Contract <xref target="RC"/>. The important features of a Ricardian contract are that it be both human and machine-readable and referenceable by a cryptographic digest. A JSON encoded document or block such as the rule section block is a practical example of both a human and machine-readable document.  The rule section's top-level SAID, <tt>d</tt>, field provides the digest.  This provision supports the bow-tie model of Ricardian Contracts <xref target="RC"/>. Ricardian legal contracts may be hierarchically structured into sections and subsections with named or numbered clauses in each section. The labels on the clauses may follow such a hierarchical structure using nested maps or blocks. These provisions enable the rule section to satisfy the features of a Ricardian contract.</t>
      <t>To elaborate, the rule section's top-level SAID, <tt>d</tt>, field is the SAID of that block and is the same SAID used as the compacted value of the rule section, <tt>r</tt>, field that appears at the top level of the ACDC. Each clause in the rule section gets its own field. Each clause also has its own local label.</t>
      <t>The legal, <tt>l</tt>, field in each block provides the associated legal language.</t>
      <t>Note there are no type fields in the rule section. The type of a contract and the type of each clause is provided by the schema vis-a-vis the label of that clause. This follows the ACDC design principle that may be succinctly expressed as "schema is type".</t>
      <t>Each rule section clause may also have its own clause SAID, <tt>d</tt>, field. Clause SAIDs enable reference to individual clauses, not merely the whole contract as given by the rule section's top-level SAID, <tt>d</tt>, field.</t>
      <t>An example rule section with clause SAIDs is provided below.</t>
      <sourcecode type="json"><![CDATA[
{
  "r": 
  {
    "d": "EwY1lkFrn9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NA",
    "warrantyDisclaimer": 
    {
      "d": "EXgOcLxUdYerzwLIr9Bf7V_NAwY1lkFrn9y2PgveY4-9",
      "l": "Issuer provides this credential on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE"
    },
    "liabilityDisclaimer": 
    {
      "d": "EY1lkFrn9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NAw",
      "l": "In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall the Issuer be liable for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this credential. "
    }
  }
}
]]></sourcecode>
      <section anchor="compact-clauses">
        <name>Compact Clauses</name>
        <t>The use of clause SAIDS enables a compact form of a set of clauses where each clause value is the SAID of the corresponding clause. For example,</t>
        <sourcecode type="json"><![CDATA[
{
  "r": 
  {
    "d": "EwY1lkFrn9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NA",
    "warrantyDisclaimer":  "EXgOcLxUdYerzwLIr9Bf7V_NAwY1lkFrn9y2PgveY4-9",
    "liabilityDisclaimer": "EY1lkFrn9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NAw"
  }
}
]]></sourcecode>
      </section>
      <section anchor="private-clause">
        <name>Private Clause</name>
        <t>The disclosure of some clauses may be pre-conditioned on acceptance of chain-link confidentiality. In this case, some clauses may benefit from partial disclosure. Thus clauses may be blinded by their SAID, <tt>d</tt>, field when the clause block includes a sufficiently high entropy UUID, <tt>u</tt>, field. The use of a clause UUID enables the compact form of a clause to NOT be discoverable merely from the schema for the clause and its SAID via rainbow table attack <xref target="RB"/><xref target="DRB"/>. Therefore such a clause may be partially disclosable. These are called <strong><em>private clauses</em></strong>. A private clause example is shown below.</t>
        <sourcecode type="json"><![CDATA[
{
  "r": 
  {
    "d": "EwY1lkFrn9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NA",
    "warrantyDisclaimer": 
    {
      "d": "EXgOcLxUdYerzwLIr9Bf7V_NAwY1lkFrn9y2PgveY4-9",
      "u": "0AG7OY1wjaDAE0qHcgNghkDa",
      "l": "Issuer provides this credential on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE"
    },
    "liabilityDisclaimer": 
    {
      "d": "EY1lkFrn9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NAw",
      "u": "0AHcgNghkDaG7OY1wjaDAE0q",
      "l": "In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall the Issuer be liable for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this credential. "
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="simple-compact-clause">
        <name>Simple Compact Clause</name>
        <t>An alternate simplified compact form uses the value of the legal, <tt>l</tt>, field as the value of the clause field label. The schema for a specific clause label will indicate that the field value, for a given clause label is the legal language itself and not the clause block's SAID, <tt>d</tt>, field as is the normal compact form shown above. This alternate simple compact form is shown below. In this form individual clauses are not compactifiable and are fully self-contained.</t>
        <sourcecode type="json"><![CDATA[
{
  "r": 
  {
    "d": "EwY1lkFrn9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NA",
    "warrantyDisclaimer": "Issuer provides this credential on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE",
    "liabilityDisclaimer": "In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall the Issuer be liable for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this credential. "
  }
}
]]></sourcecode>
      </section>
      <section anchor="clause-discovery">
        <name>Clause Discovery</name>
        <t>In compact form, the discovery of either the rule section as a whole or a given clause begins with the provided SAID. Because the SAID, <tt>d</tt>, field of any block is a cryptographic digest with high collision resistance it provides a universally unique identifier to the referenced block details (whole rule section or individual clause). The discovery of a service endpoint URL that provides database access to a copy of the rule section or to any of its clauses may be bootstrapped via an OOBI (Out-Of-Band-Introduction) that links the service endpoint URL to the SAID of the respective block. Alternatively, the issuer may provide as an attachment at issuance a copy of the referenced contract associated with the whole rule section or any clause. In either case, after a successful issuance exchange, the Issuee or holder of any ACDC will have either a copy or a means of obtaining a copy of any referenced contracts in whole or in part of all ACDCs so issued. That Issuee or recipient will then have everything it needs to subsequently make a successful presentation or disclosure to a Disclosee. This is the essence of percolated discovery.</t>
      </section>
    </section>
    <section anchor="informative-example-of-an-acdc">
      <name>Informative Example of an ACDC</name>
      <section anchor="public-compact-variant">
        <name>Public Compact Variant</name>
        <sourcecode type="json"><![CDATA[
{
  "v":  "ACDC10JSON00011c_",
  "d":  "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
  "i":  "did:keri:EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
  "ri": "did:keri:EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
  "s":  "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
  "a":  "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
  "e":  "ERH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZIl3MOA",
  "r":  "Ee71iheqcywJcnjtJtQIYPvAu6DZIl3MORH3dCdoFOLB"
}
]]></sourcecode>
      </section>
      <section anchor="public-uncompacted-variant">
        <name>Public Uncompacted Variant</name>
        <sourcecode type="json"><![CDATA[
{
  "v":  "ACDC10JSON00011c_",
  "d":  "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
  "i":  "did:keri:EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
  "ri": "did:keri:EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
  "s":  "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
  "a":  
  {
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "did:keri:EpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPmkPreYA",
    "score": 96,
    "name": "Jane Doe"
  },
  "e": 
  {
    "d": "EerzwLIr9Bf7V_NHwY1lkFrn9y2PgveY4-9XgOcLxUdY",
    "boss":
    {
      "d": "E9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NHwY1lkFrn",
      "n": "EIl3MORH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZA",
      "w": "high"
    }
  },
  "r": 
  {
    "d": "EwY1lkFrn9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NA",
    "warrantyDisclaimer": 
    {
      "d": "EXgOcLxUdYerzwLIr9Bf7V_NAwY1lkFrn9y2PgveY4-9",
      "l": "Issuer provides this credential on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE"
    },
    "liabilityDisclaimer": 
    {
      "d": "EY1lkFrn9y2PgveY4-9XgOcLxUdYerzwLIr9Bf7V_NAw",
      "l": "In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall the Issuer be liable for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this credential. "
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="composed-schema-that-supports-both-public-compact-and-uncompacted-variants">
        <name>Composed Schema that Supports both Public Compact and Uncompacted Variants</name>
        <sourcecode type="json"><![CDATA[
{
  "$id": "EN8i2i5ye0-xGS95pm5cg1j0GmFkarJe0zzsSrrf4XJY",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Public ACDC",
  "description": "Example JSON Schema Public ACDC.",
  "credentialType": "PublicACDCExample",
  "type": "object",
   "required": 
  [
    "v",
    "d",
    "i",
    "ri",
    "s",
    "a",
    "e",
    "r"
  ],
  "properties": 
  {
    "v": 
    {
      "description": "ACDC version string",
      "type": "string"
    },
    "d": 
    {
     "description": "ACDC SAID",
      "type": "string"
    },
    "i": 
    {
      "description": "Issuer AID",
      "type": "string"
    },
    "ri": 
    {
      "description": "credential status registry AID",
      "type": "string"
    },
    "s": 
    {
      "description": "schema section",
      "oneOf":
      [
        {
          "description": "schema section SAID",
          "type": "string"
        },
        {
          "description": "schema detail",
          "type": "object"
        },
      ]
    },
    "a": 
    {
      "description": "attribute section",
      "oneOf":
      [
        {
          "description": "attribute section SAID",
          "type": "string"
        },
        {
          "description": "attribute detail",
          "type": "object",
          "required": 
          [
            "d",
            "i",
            "score",
            "name"
          ],
          "properties": 
          {
            "d": 
            {
              "description": "attribute section SAID",
              "type": "string"
            },
            "i": 
            {
              "description": "Issuee AID",
              "type": "string"
            },
            "score": 
            {
              "description": "test score",
              "type": "integer"
            },
            "name": 
            {
              "description": "test taker full name",
              "type": "string"
            }
          },
          "additionalProperties": false,
        }
      ],
    },
    "e":
    {
      "description": "edge section",
      "oneOf":
      [ 
        {
          "description": "edge section SAID",
          "type": "string"
        },
        {
          "description": "edge detail",
          "type": "object",
          "required": 
          [
            "d",
            "boss"
          ],
          "properties": 
          {
            "d": 
            {
              "description": "edge section SAID",
              "type": "string"
            },
            "boss": 
            {
              "description": "boss edge",
              "type": "object",
              "required":
              [
                "d",
                "n",
                "w"
              ],
              "properties":
              {
                "d": 
                {
                  "description": "edge SAID",
                  "type": "string"
                },
                "n": 
                {
                  "description": "node SAID",
                  "type": "string"
                },
                "w": 
                {
                  "description": "edge weight",
                  "type": "string"
              },
              "additionalProperties": false
            },
          },
          "additionalProperties": false
        }
      ],
    },
    "r": 
    {
      "description": "rule section",
      "oneOf":
      [
        {
          "description": "rule section SAID",
          "type": "string"
        },
        {
          "description": "rule detail",
          "type": "object",
          "required": 
          [
            "d",
            "warrantyDisclaimer",
            "liabilityDisclaimer"
          ],
          "properties": 
          {
            "d": 
            {
              "description": "edge section SAID",
              "type": "string"
            },
            "warrantyDisclaimer": 
            {
              "description": "warranty disclaimer clause",
              "type": "object",
              "required":
              [
                "d",
                "l"
              ],
              "properties":
              {
                "d": 
                {
                  "description": "clause SAID",
                  "type": "string"
                },
                "l": 
                {
                  "description": "legal language",
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "liabilityDisclaimer": 
            {
              "description": "liability disclaimer clause",
              "type": "object",
              "required":
              [
                "d",
                "l"
              ],
              "properties":
              {
                "d": 
                {
                  "description": "clause SAID",
                  "type": "string"
                },
                "l": 
                {
                  "description": "legal language",
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        }
      ]
    }
  },
  "additionalProperties": false
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="selective-disclosure">
      <name>Selective Disclosure</name>
      <t>As explained previously, the primary difference between <em>partial disclosure</em> and <em>selective disclosure</em> is determined by the correlatability with respect to its encompassing block after <em>full disclosure</em> of the detailed field value. A <em>partially disclosable</em> field becomes correlatable to its encompassing block after its <em>full disclosure</em>. Whereas a <em>selectively disclosable</em> field may be excluded from the <em>full disclosure</em> of any other selectively disclosable fields in its encompassing block. After selective disclosure, the selectively disclosed fields are not correlatable to the so-far undisclosed but selectively disclosable fields in the same encompassing block. In this sense, <em>full disclosure</em> means detailed disclosure of the selectively disclosed attributes not detailed disclosure of all selectively disclosable attributes.</t>
      <t>Recall that <em>partial</em> disclosure is an essential mechanism needed to support chain-link confidentiality <xref target="CLC"/>. The chain-link confidentiality exchange <em>offer</em> requires <em>partial disclosure</em>, and <em>full disclosure</em> only happens after <em>acceptance</em> of the <em>offer</em>. <em>Selective</em> disclosure, on the other hand, is an essential mechanism needed to unbundle in a correlation minimizing way a single commitment by an Issuer to a bundle of fields (i.e. a nested block or array of fields). This allows separating a "stew" of "ingredients" (attributes) into its constituent "ingredients" (attributes) without correlating the constituents via the stew.</t>
      <t>ACDCs, as a standard, benefit from a minimally sufficient approach to selective disclosure that is simple enough to be universally implementable and adoptable. This does not preclude support for other more sophisticated but optional approaches. But the minimally sufficient approach should be universal so that at least one selective disclosure mechanism be made available in all ACDC implementations. To clarify, not all instances of an ACDC must employ the minimal selective disclosure mechanisms as described herein but all ACDC implementations must support any instance of an ACDC that employs the minimal selective disclosure mechanisms as described above.</t>
      <t>The ACDC chaining mechanism reduces the need for selective disclosure in some applications. Many non-ACDC verifiable credentials provide bundled precisely because there is no other way to associate the attributes in the bundle. These bundled credentials could be refactored into a graph of ACDCs. Each of which is separately disclosable and verifiable thereby obviating the need for selective disclosure. Nonetheless, some applications require bundled attributes and therefore may benefit from the independent selective disclosure of bundled attributes. This is provided by <strong><em>selectively disclosable attribute</em></strong> ACDCs.</t>
      <t>The use of a revocation registry is an example of a type of bundling, not of attributes in a credential, but uses of a credential in different contexts. Unbundling the usage contexts may be beneficial. This is provided by <strong><em>bulk-issued</em></strong> ACDCs.</t>
      <t>In either case, the basic selective disclosure mechanism is comprised of a single aggregated blinded commitment to a list of blinded commitments to undisclosed values. Membership of any blinded commitment to a value in the list of aggregated blinded commitments may be proven without leaking (disclosing) the unblinded value belonging to any other blinded commitment in the list. This enables provable selective disclosure of the unblinded values. When a non-repudiable digital signature is created on the aggregated blinded commitment then any disclosure of a given value belonging to a given blinded commitment in the list is also non-repudiable. This approach does not require any more complex cryptography than digests and digital signatures. This satisfies the design ethos of minimally sufficient means. The primary drawback of this approach is verbosity. It trades ease and simplicity and adoptability of implementation for size. Its verbosity may be mitigated by replacing the list of blinded commitments with a Merkle tree of those commitments where the Merkle tree root becomes the aggregated blinded commitment.</t>
      <t>Given sufficient cryptographic entropy of the blinding factors, collision resistance of the digests, and unforgeability of the digital signatures, either inclusion proof format (list or Merkle tree digest) prevents a potential disclosee or adversary from discovering in a computationally feasible way the values of any undisclosed blinded value details from the combination of the schema of those value details and either the aggregated blinded commitment and/or the list of aggregated blinded commitments <xref target="Hash"/><xref target="HCR"/><xref target="QCHC"/><xref target="Mrkl"/><xref target="TwoPI"/><xref target="MTSec"/>. A potential disclosee or adversary would also need both the blinding factor and the actual value details.</t>
      <t>Selective disclosure in combination with partial disclosure for chain-link confidentiality provides comprehensive correlation minimization because a discloser may use a non-disclosing metadata ACDC prior to acceptance by the disclosee of the terms of the chain-link confidentiality expressed in the rule section <xref target="CLC"/>. Thus only malicious disclosees who violate chain-link confidentiality may correlate between independent disclosures of the value details of distinct members in the list of aggregated blinded commitments. Nonetheless, they are not able to discover any as of yet undisclosed (unblinded) value details.</t>
      <section anchor="selectively-disclosable-attribute-acdc">
        <name>Selectively Disclosable Attribute ACDC</name>
        <t>In a <strong><em>selectively disclosable attribute</em></strong> ACDC, the set of attributes is provided as an array of blinded blocks. Each attribute in the set has its own dedicated blinded block. Each block has its own SAID, <tt>d</tt>, field and UUID, <tt>u</tt>, field in addition to its attribute field or fields. When an attribute block has more than one attribute field then the set of fields in that block are not independently selectively disclosable but <bcp14>MUST</bcp14> be disclosed together as a set. Notable is that the field labels of the selectively disclosable attributes are also blinded because they only appear within the blinded block. This prevents un-permissioned correlation via contextualized variants of a field label that appear in a selectively disclosable block. For example, localized or internationalized variants where each variant's field label(s) each use a different language or some other context correlatable information in the field labels themselves.</t>
        <t>A selectively-disclosable attribute section appears at the top level using the field label <tt>A</tt>. This is distinct from the field label <tt>a</tt> for a non-selectively-disclosable attribute section. This makes clear (unambiguous) the semantics of the attribute section's associated schema. This also clearly reflects the fact that the value of a compact variant of selectively-disclosable attribute section is an "aggregate" not a SAID. As described previously, the top-level selectively-disclosable attribute aggregate section, <tt>A</tt>, field value is an aggregate of cryptographic commitments used to make a commitment to a set (bundle) of selectively-disclosable attributes. The derivation of its value depends on the type of selective disclosure mechanism employed. For example, the aggregate value could be the cryptographic digest of the concatenation of an ordered set of cryptographic digests, a Merkle tree root digest of an ordered set of cryptographic digests, or a cryptographic accumulator.</t>
        <t>The <em>Issuer</em> attribute block is absent from an uncompacted untargeted selectively disclosable ACDC as follows:</t>
        <sourcecode type="json"><![CDATA[
{
  "A":
  [
    {
      "d": "ELIr9Bf7V_NHwY1lkgveY4-Frn9y2PY9XgOcLxUderzw",
      "u": "0AG7OY1wjaDAE0qHcgNghkDa",
      "score": 96
    },
    {
      "d": "E9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PYgveY4-",
      "u": "0AghkDaG7OY1wjaDAE0qHcgN",
      "name": "Jane Doe"
    }
  ]
}
]]></sourcecode>
        <t>The <em>Issuer</em> attribute block is present in an uncompacted untargeted selectively disclosable ACDC as follows:</t>
        <sourcecode type="json"><![CDATA[
{
  "A":
  [
    {
      "d": "ErzwLIr9Bf7V_NHwY1lkFrn9y2PYgveY4-9XgOcLxUde",
      "u": "0AqHcgNghkDaG7OY1wjaDAE0",
      "i": "did:keri:EpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPmkPreYA"
    },
    {
      "d": "ELIr9Bf7V_NHwY1lkgveY4-Frn9y2PY9XgOcLxUderzw",
      "u": "0AG7OY1wjaDAE0qHcgNghkDa",
      "score": 96
    },
    {
      "d": "E9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PYgveY4-",
      "u": "0AghkDaG7OY1wjaDAE0qHcgN",
      "name": "Jane Doe"
    }
  ]
}
]]></sourcecode>
        <section anchor="blinded-attribute-array">
          <name>Blinded Attribute Array</name>
          <t>Given that each attribute block's UUID, <tt>u</tt>, field has sufficient cryptographic entropy, then each attribute block's SAID, <tt>d</tt>, field provides a secure cryptographic digest of its contents that effectively blinds the attribute value from discovery given only its Schema and SAID. To clarify, the adversary despite being given both the schema of the attribute block and its  SAID, <tt>d</tt>, field, is not able to discover the remaining contents of the attribute block in a computationally feasible manner such as a rainbow table attack <xref target="RB"/><xref target="DRB"/>.  Therefore the UUID, <tt>u</tt>, field of each attribute block enables the associated SAID, <tt>d</tt>, field to securely blind the block's contents notwithstanding knowledge of the block's schema and that SAID, <tt>d</tt>, field.  Moreover, a cryptographic commitment to that SAID, <tt>d</tt>, field does not provide a fixed point of correlation to the associated attribute (SAD) field values themselves unless and until there has been specific disclosure of those field values themselves.</t>
          <t>Given a total of <em>N</em> elements in the attributes array, let <em>a<sub>i</sub></em> represent the SAID, <tt>d</tt>, field of the attribute at zero-based index <em>i</em>. More precisely the set of attributes is expressed as the ordered set,</t>
          <t><em>{a<sub>i</sub> for all i in {0, ..., N-1}}</em>.</t>
          <t>The ordered set of <em>a<sub>i</sub></em>  may be also expressed as a list, that is,</t>
          <t><em>[a<sub>0</sub>, a<sub>1</sub>, ...., a<sub>N-1</sub>]</em>.</t>
        </section>
        <section anchor="composed-schema-for-selectively-disclosable-attribute-section">
          <name>Composed Schema for Selectively Disclosable Attribute Section</name>
          <t>Because the selectively-disclosable attributes are provided by an array (list), the uncompacted variant in the schema uses an array of items and the <tt>anyOf</tt> composition operator to allow one or more of the items to be disclosed without requiring all to be disclosed. Thus both the <tt>oneOf</tt> and <tt>anyOf</tt> composition operators are used. The <tt>oneOf</tt> is used to provide compact partial disclosure of the aggregate, <em>A</em>, as the value of the top-level selectively-disclosable attribute section, <tt>A</tt>, field in its compact variant and the nested <tt>anyOf</tt> operator is used to enable selective disclosure in the uncompacted selectively-disclosable variant.</t>
          <sourcecode type="json"><![CDATA[
{
  "A": 
  {
    "description": "attribute section",
    "oneOf":
    [
      {
        "description": "attribute section SAID",
        "type": "string"
      },
      {
        "description": "attribute details",
        "type": "array",
        "uniqueItems": true,
        "items": 
        {
          "anyOf":
          [
            {
              "description": "issuer attribute",
              "type": "object",
              "properties":
              "required":
              [
                "d",
                "u",
                "i"
              ],
              "properties":
              {
                "d": 
                {
                  "description": "attribute SAID",
                  "type": "string"
                },
                "u": 
                {
                  "description": "attribute UUID",
                  "type": "string"
                },
                "i": 
                {
                  "description": "issuer SAID",
                  "type": "string"
                },
              },
              "additionalProperties": false
            },
            {
              "description": "score attribute",
              "type": "object",
              "properties":
              "required":
              [
                "d",
                "u",
                "score"
              ],
              "properties":
              {
                "d": 
                {
                  "description": "attribute SAID",
                  "type": "string"
                },
                "u": 
                {
                  "description": "attribute UUID",
                  "type": "string"
                },
                "score": 
                {
                  "description": "score value",
                  "type": "integer"
                },
              },
              "additionalProperties": false
            },
            {
              "description": "name attribute",
              "type": "object",
              "properties":
              "required":
              [
                "d",
                "u",
                "name"
              ],
              "properties":
              {
                "d": 
                {
                  "description": "attribute SAID",
                  "type": "string"
                },
                "u": 
                {
                  "description": "attribute UUID",
                  "type": "string"
                },
                "name": 
                {
                  "description": "name value",
                  "type": "string"
                },
              },
              "additionalProperties": false
            }
          ]      
        }
      }
    ]
    "additionalProperties": false
  }
}
]]></sourcecode>
        </section>
        <section anchor="inclusion-proof-via-aggregated-list-digest">
          <name>Inclusion Proof via Aggregated List Digest</name>
          <t>All the <em>a<sub>i</sub></em> in the list are aggregated into a single aggregate digest denoted <em>A</em> by computing the digest of their ordered concatenation. This is expressed as follows:</t>
          <t><em>A = H(C(a<sub>i</sub> for all i in {0, ..., N-1}))</em> where <em>H</em> is the digest (hash) operator and <em>C</em> is the concatentation operator.</t>
          <t>To be explicit, using the targeted example above, let <em>a<sub>0</sub></em> denote the SAID of the <em>Issuee</em> attribute, <em>a<sub>1</sub></em> denote the SAID of the <em>score</em> attribute, and <em>a<sub>2</sub></em> denote the SAID of the <em>name</em> attribute then the aggregated digest <em>A</em> is computed as follows:</t>
          <t><em>A = H(C(a<sub>0</sub>, a<sub>1</sub>, a<sub>2</sub>))</em>.</t>
          <t>Equivalently using <em>+</em> as the infix concatenation operator, we have,</t>
          <t><em>A = H(a<sub>0</sub> + a<sub>1</sub> + a<sub>2</sub>)</em></t>
          <t>Given sufficient collision resistance of the digest operator, the digest of an ordered concatenation is not subject to a birthday attack on its concatenated elements <xref target="BDC"/><xref target="BDay"/><xref target="QCHC"/><xref target="HCR"/><xref target="Hash"/>.</t>
          <t>In compact form, the value of the selectively-disclosable top-level attribute section, <tt>A</tt>, field is set to the aggregated value <em>A</em>. This aggregate <em>A</em> makes a blinded cryptographic commitment to the all the ordered elements in the list,</t>
          <t><em>[a<sub>0</sub>, a<sub>1</sub>, ...., a<sub>N-1</sub>]</em>.</t>
          <t>Moreover because each <em>a<sub>i</sub></em> element also makes a blinded commitment to its block's (SAD) attribute value(s), disclosure of any given <em>a<sub>i</sub></em> element does not expose or disclose any discoverable information detail about either its own or another block's attribute value(s). Therefore one may safely disclose the full list of <em>a<sub>i</sub></em> elements without exposing the blinded block attribute values.</t>
          <t>Proof of inclusion in the list consists of checking the list for a matching value. A computationally efficient way to do this is to create a hash table or B-tree of the list and then check for inclusion via lookup in the hash table or B-tree.</t>
          <t>To protect against later forgery given a later compromise of the signing keys of the Issuer, the issuer <bcp14>MUST</bcp14> anchor an issuance proof digest seal to the ACDC in its KEL. This seal binds the signing key state to the issuance. There are two cases. In the first case, an issuance/revocation registry is used. In the second case, an issuance/revocation registry is not used.</t>
          <t>When the ACDC is registered using an issuance/revocation TEL (Transaction Event Log) then the issuance proof seal digest is the SAID of the issuance (inception) event in the ACDC's TEL entry. The issuance event in the TEL includes the SAID of the ACDC. This binds the ACDC to the issuance proof seal in the Issuer's KEL through the TEL entry.</t>
          <t>When the ACDC is not registered using an issuance/revocation TEL then the issuance proof seal digest is the SAID of the ACDC itself.</t>
          <t>In either case, this issuance proof seal makes a verifiable binding between the issuance of the ACDC and the key state of the Issuer at the time of issuance. Because aggregated value <em>A</em> provided as the attribute section, <tt>A</tt>, field, value is bound to the SAID of the ACDC which is also bound to the key state via the issuance proof seal, the attribute details of each attribute block are also bound to the key state.</t>
          <t>The requirement of an anchored issuance proof seal means that the forger Must first successfully publish in the KEL of the issuer an inclusion proof digest seal bound to a forged ACDC. This makes any forgery attempt detectable. To elaborate, the only way to successfully publish such a seal is in a subsequent interaction event in a KEL that has not yet changed its key state via a rotation event. Whereas any KEL that has changed its key state via a rotation must be forked before the rotation. This makes the forgery attempt either both detectable and recoverable via rotation in any KEL that has not yet changed its key state or detectable as duplicity in any KEL that has changed its key state. In any event, the issuance proof seal ensures detectability of any later attempt at forgery using compromised keys.</t>
          <t>Given that aggregate value <em>A</em> appears as the compact value of the top-level attribute section, <tt>A</tt>, field, the selective disclosure of the attribute at index <em>j</em> may be proven to the disclosee with four items of information. These are:</t>
          <ul spacing="normal">
            <li>The actual detailed disclosed attribute block itself (at index <em>j</em>) with all its fields.</li>
            <li>The list of all attribute block digests, <em>[a<sub>0</sub>, a<sub>1</sub>, ...., a<sub>N-1</sub>]</em> that includes <em>a<sub>j</sub></em>.</li>
            <li>The ACDC in compact form with selectively-disclosable attribute section, <tt>A</tt>, field value set to aggregate <em>A</em>.</li>
            <li>The signature(s), <em>s</em>, of the Issuee on the ACDC's top-level SAID, <tt>d</tt>, field.</li>
          </ul>
          <t>The actual detailed disclosed attribute block is only disclosed after the disclosee has agreed to the terms of the rules section. Therefore, in the event the potential disclosee declines to accept the terms of disclosure, then a presentation of the compact version of the ACDC and/or the list of attribute digests, <em>[a<sub>0</sub>, a<sub>1</sub>, ...., a<sub>N-1</sub>]</em>. does not provide any point of correlation to any of the attribute values themselves. The attributes of block <em>j</em> are hidden by <em>a<sub>j</sub></em> and the list of attribute digests <em>[a<sub>0</sub>, a<sub>1</sub>, ...., a<sub>N-1</sub>]</em> is hidden by the aggregate <em>A</em>. The partial disclosure needed to enable chain-link confidentiality does not leak any of the selectively disclosable details.</t>
          <t>The disclosee may then verify the disclosure by:
* computing <em>a<sub>j</sub></em> on the selectively disclosed attribute block details.
* confirming that the computed <em>a<sub>j</sub></em> appears in the provided list <em>[a<sub>0</sub>, a<sub>1</sub>, ...., a<sub>N-1</sub>]</em>.
* computing <em>A</em> from the provided list <em>[a<sub>0</sub>, a<sub>1</sub>, ...., a<sub>N-1</sub>]</em>.
* confirming that the computed <em>A</em> matches the value, <em>A</em>, of the selectively-disclosable attribute section, <tt>A</tt>, field value in the provided ACDC.
* computing the top-level SAID, <tt>d</tt>, field of the provided ACDC.
* confirming the presence of the issuance seal digest in the Issuer's KEL 
* confirming that the issuance seal digest in the Issuer's KEL is bound to the ACDC top-level SAID, <tt>d</tt>, field either directly or indirectly through a TEL registry entry.
* verifying the provided signature(s) of the Issuee on the provided top-level SAID, <tt>d</tt> field value.</t>
          <t>The last 3 steps that culminate with verifying the signature(s) require determining the key state of the Issuer at the time of issuance, this may require additional verification steps as per the KERI, PTEL, and CESR-Proof protocols.</t>
          <t>A private selectively disclosable ACDC provides significant correlation minimization because a presenter may use a metadata ACDC prior to acceptance by the disclosee of the terms of the chain-link confidentiality expressed in the rule section <xref target="CLC"/>. Thus only malicious disclosees who violate chain-link confidentiality may correlate between presentations of a given private selectively disclosable ACDC. Nonetheless, they are not able to discover any undisclosed attributes.</t>
        </section>
        <section anchor="inclusion-proof-via-merkle-tree-root-digest">
          <name>Inclusion Proof via Merkle Tree Root Digest</name>
          <t>The inclusion proof via aggregated list may be somewhat verbose when there are a large number of attribute blocks in the selectively disclosable attribute section. A more efficient approach is to create a Merkle tree of the attribute block digests and let the aggregate, <em>A</em>, be the Merkle tree root digest <xref target="Mrkl"/>. Specifically, set the value of the top-level selectively-disclosable attribute section, <tt>A</tt>, field to the aggregate, <em>A</em> whose value is the Merkle tree root digest <xref target="Mrkl"/>.</t>
          <t>The Merkle tree needs to have appropriate second-pre-image attack protection of interior branch nodes <xref target="TwoPI"/><xref target="MTSec"/>. The discloser then only needs to provide a subset of digests from the Merkle tree to prove that a given digest, <em>a<sub>j</sub></em> contributed to the Merkle tree root digest, <em>A</em>. For ACDCs with a small number of attributes the added complexity of the Merkle tree approach may not be worth the savings in verbosity.</t>
        </section>
        <section anchor="hierarchical-derivation-at-issuance-of-selectively-disclosable-attribute-acdcs">
          <name>Hierarchical Derivation at Issuance of Selectively Disclosable Attribute ACDCs</name>
          <t>The amount of data transferred between the Issuer and Issuee (or recipient in the case of an untargeted ACDC) at issuance of a selectively disclosable attribute ACDC may be minimized by using a hierarchical deterministic derivation function to derive the value of the UUDI, <tt>u</tt>, fields from a shared secret salt <xref target="Salt"/>.</t>
          <t>There are several ways that the Issuer may securely share that secret salt. Given that an Ed25519 key pair(s) controls each of the Issuer and Issuee  AIDs, (or recipient AID in the case of an untargeted ACDC) a corresponding X15519 asymmetric encryption key pair(s) may be derived from each controlling Ed25519 key pair(s) <xref target="EdSC"/><xref target="PSEd"/><xref target="TMEd"/>. An X25519 public key may be derived from an Ed25519 public key. Likewise, an X25519 private key may be derived from an Ed25519 private key <xref target="KeyEx"/>.</t>
          <t>In an interactive approach, the Issuer derives a public asymmetric X25519 encryption key from the Issuee's published Ed25519 public key and the Issuee derives a public asymmetric X25519 encryption key from the Issuer's published Ed25519 public key. The two then interact via a Diffie-Hellman (DH) key exchange to create a shared symmetric encryption key <xref target="KeyEx"/><xref target="DHKE"/>. The shared symmetric encryption key may be used to encrypt the secret salt or the shared symmetric encryption key itself may be used has high entropy cryptographic material from which the secret salt may be derived.</t>
          <t>In a non-interactive approach, the Issuer derives an X25519 asymmetric public encryption key from the Issuee's (recipient's) public Ed25519 public key. The Issuer then encrypts the secret salt with that public asymmetric encryption key and signs the encryption with the Issuer's private Ed25519 signing key. This is transmitted to the Issuee, who verifies the signature and decrypts the secret salt using the private X25519 decryption key derived from the Issuee's private Ed25519 key. This non-interactive approach is more scalable for AIDs that are controlled with a multi-sig group of signing keys. The Issuer can broadcast to all members of the Issuee's (or recipient's) multi-sig signing group individually asymmetrically encrypted and signed copies of the secret salt.</t>
          <t>In addition to the secret salt, the Issuer provides to the Issuee (recipient) a template of the ACDC but with empty UUID, <tt>u</tt>, and SAID, <tt>d</tt>, fields in each block with such fields. Each UUID, <tt>u</tt>, field value is then derived from the shared salt with a path prefix that indexes a specific block. Given the UUID, <tt>u</tt>, field value, the SAID, <tt>d</tt>, field value may then be derived. Likewise, both compact and uncompacted versions of the ACDC may then be generated. The derivation path for the top-level UUID, <tt>u</tt>, field (for private ACDCS), is the string "0" and derivation path the the the zeroth indexed attribute in the attributes array is the string "0/0". Likewise, the next attribute's derivation path is the string "0/1" and so forth.</t>
          <t>In addition to the shared salt and ACDC template, the Issuer also provides its signature(s) on its own generated compact version ACDC. The Issuer may also provide references to the anchoring issuance proof seals. Everything else an Issuee (recipient) needs to make a verifiable presentation/disclosure can be computed at the time of presentation/disclosure by the Issuee.</t>
        </section>
      </section>
      <section anchor="bulk-issued-private-acdcs">
        <name>Bulk-Issued Private ACDCs</name>
        <t>The purpose of bulk issuance is to enable the Issuee to use unique ACDC more efficiently SAIDs to isolate and minimize correlation across different usage contexts of essentially the same ACDC while allowing public commitments to the ACDC SAIDs. A private ACDC may be issued in bulk as a set. In its basic form, the only difference between each ACDC is the top-level SAID, <em>d</em>, and UUID, <em>u</em> field values. To elaborate, bulk issuance enables the use of un-correlatable copies while minimizing the associated data transfer and storage requirements. Essentially each copy (member) of a bulk issued ACDC set shares a template that both the Issuer and Issuee use to generate a given ACDC in that set without requiring that the Issuer and Issuee exchange and store a unique copy of each member of the set independently. This minimizes the data transfer and storage requirements for both the Issuer and the Issuee.</t>
        <t>An ACDC provenance chain is connected via references to the SAIDs given by the top-level SAID, <tt>d</tt>, fields of the ACDCs in that chain.  A given ACDC thereby makes commitments to other ACDCs. Expressed another way, an ACDC may be a node in a directed graph of ACDCs. Each directed edge in that graph emanating from one ACDC includes a reference to the SAID of some other connected ACDC. These edges provide points of correlation to an ACDC via their SAID reference. Private bulk issued ACDCs enable the Issuee to control better the correlatability of presentations using different presentation strategies.</t>
        <t>For example, the Issuee could use one copy of a bulk-issued private ACDC per presentation even to the same verifier. This strategy would consume the most copies. It is essentially a one-time-use ACDC strategy. Alternatively, the Issuee could use the same copy for all presentations to the same verifier and thereby only permit the verifier to correlate between presentations it received directly but not between other verifiers. This limits the consumption to one copy per verifier. In yet another alternative, the Issuee could use one copy for all presentations in a given context with a group of verifiers, thereby only permitting correlation among that group.</t>
        <t>In this context, we are talking about permissioned correlation. Any verifier that has received a complete presentation of a private ACDC has access to all the fields disclosed by the presentation but the terms of the chain-link confidentiality agreement may forbid sharing those field values outside a given context. Thus an Issuee may use a combination of bulk issued ACDCs with chain-link confidentiality to control permissioned correlation of the contents of an ACDC while allowing the SAID of the ACDC to be more public. The SAID of a private ACDC does not expose the ACDC contents to an un-permissioned third party. Unique SAIDs belonging to bulk issued ACDCs prevent third parties from making a provable correlation between ACDCs via their SAIDs in spite of those SAIDs being public. This does not stop malicious verifiers (as second parties) from colluding and correlating against the disclosed fields but it does limit provable correlation to the information disclosed to a given group of malicious colluding verifiers. To restate unique SAIDs per copy of a set of private bulk issued ACDC prevent un-permissioned third parties from making provable correlations in spite of those SAIDs being public unless they collude with malicious verifiers (second parties).</t>
        <t>In some applications, chain-link-confidentiality is insufficient to deter un-permissioned correlation. Some verifiers may be malicious with sufficient malicious incentives to overcome whatever counter incentives the terms of the contractual chain-link confidentiality may impose. In these cases, more aggressive technological anti-correlation mechanisms such as bulk issued ACDCs may be useful. To elaborate, in spite of the fact that chain-link confidentiality terms of use may forbid such malicious correlation, making such correlation more difficult technically may provide better protection than chain-link confidentiality alone [[41]].</t>
        <t>It is important to note that any group of colluding malicious verifiers may always make a statistical correlation between presentations despite technical barriers to cryptographically provable correlation. In general, there is no cryptographic mechanism that precludes statistical correlation among a set of colluding verifiers because they may make cryptographically unverifiable or unprovable assertions about information presented to them that may be proven as likely true using merely statistical correlation techniques.</t>
      </section>
      <section anchor="basic-bulk-issuance">
        <name>Basic Bulk Issuance</name>
        <t>The amount of data transferred between the Issuer and Issuee (or recipient of an untargeted ACDC) at issuance of a set of bulk issued ACDCs may be minimized by using a hierarchical deterministic derivation function to derive the value of the UUID, <tt>u</tt>, fields from a shared secret salt <xref target="Salt"/>.</t>
        <t>As described above, there are several ways that the Issuer may securely share a secret salt. Given that the Issuer and Issuee (or recipient when untargeted) AIDs are each controlled by an Ed25519 key pair(s), a corresponding X15519 asymmetric encryption key pair(s) may be derived from the controlling Ed25519 key pair(s) <xref target="EdSC"/><xref target="PSEd"/><xref target="TMEd"/>. An X25519 public key may be derived from an Ed25519 public key. Likewise, an X25519 private key may be derived from an Ed25519 private key <xref target="KeyEx"/>.</t>
        <t>In an interactive approach, the Issuer derives a public asymmetric X25519 encryption key from the Issuee's published Ed25519 public key and the Issuee derives a public asymmetric X25519 encryption key from the Issuer's published Ed25519 public key. The two then interact via a Diffie-Hellman (DH) key exchange to create a shared symmetric encryption key <xref target="KeyEx"/><xref target="DHKE"/>. The shared symmetric encryption key may be used to encrypt the secret salt or the shared symmetric encryption key itself may be used has high entropy cryptographic material from which the secret salt may be derived.</t>
        <t>In a non-interactive approach, the Issuer derives an X25519 asymmetric public encryption key from the Issuee's (or recipient's) public Ed25519 public key. The Issuer then encrypts the secret salt with that public asymmetric encryption key and signs the encryption with the Issuer's private Ed25519 signing key. This is transmitted to the Issuee, who verifies the signature and decrypts the secret salt using the private X25519 decryption key derived from the Issuee's private Ed25519 key. This non-interactive approach is more scalable for AIDs that are controlled with a multi-sig group of signing keys. The Issuer can broadcast to all members of the Issuee's (or recipient's) multi-sig signing group individually asymmetrically encrypted and signed copies of the secret salt.</t>
        <t>In addition to the secret salt, the Issuer also provides a template of the private ACDC but with empty UUID, <tt>u</tt>, and SAID, <tt>d</tt>, fields at the top-level of each nested block with such fields. Each UUID, <tt>u</tt>, field value is then derived from the shared salt with a deterministic path prefix that indexes both its membership in the bulk issued set and its location in the ACDC. Given the UUID, <tt>u</tt>, field value, the associated SAID, <tt>d</tt>, field value may then be derived. Likewise, both full and compact versions of the ACDC may then be generated. This generation is analogous to that described in the section for selective disclosure ACDCs but extended to a set of private ACDCs.</t>
        <t>The initial element in each deterministic derivation path is the string value of the bulk-issued member's copy index <em>k</em>, such as "0", "1", "2" etc.  Specifically, if <em>k</em> denotes the index of an ordered set of bulk issued private ACDCs of size <em>M</em>, the derivation path starts with the string <em>"k"</em> where <em>k</em> is replaced with the decimal or hexadecimal textual representation of the numeric index <em>k</em>. Furthermore, a bulk-issued private ACDC with a private attribute section uses <em>"k"</em> to derive its top-level UUID and <em>"k/0"</em> to derive its attribute section UUID. This hierarchical path is extended to any nested private attribute blocks. This approach is further extended to enable bulk issued selective disclosure ACDCs by using a similar hierarchical derivation path for the UUID field value in each of the selectively disclosable blocks in the array of attributes. For example, the path <em>"k/j"</em> is used to generate the UUID of attribute index <em>j</em> at bulk-issued ACDC index <em>k</em>.</t>
        <t>In addition to the shared salt and ACDC template, the Issuer also provides a list of signatures of SAIDs, one for each SAID of each copy of the associated compact bulk-issued ACDC.  The Issuee (or recipient) can generate on-demand each compact or uncompacted ACDC from the template, the salt, and its index <em>k</em>. The Issuee does not need to store a copy of each bulk issued ACDC, merely the template, the salt, and the list of signatures.</t>
        <t>The Issuer <bcp14>MUST</bcp14> also anchor in its KEL an issuance proof digest seal of the set of bulk issued ACDCs. The issuance proof digest seal makes a cryptographic commitment to the set of top-level SAIDS belonging to the bulk issued ACDCs. This protects against later forgery of ACDCs in the event the Issuer's signing keys become compromised.  A later attempt at forgery requires a new event or new version of an event that includes a new anchoring issuance proof digest seal that makes a cryptographic commitment to the set of newly forged ACDC SAIDS. This new anchoring event of the forgery is therefore detectable.</t>
        <t>Similarly, to the process of generating a selective disclosure attribute ACDC, the issuance proof digest is an aggregate that is aggregated from all members in the bulk-issued set of ACDCs. The complication of this approach is that it must be done in such a way as to not enable provable correlation by a third party of the actual SAIDS of the bulk-issued set of ACDCs. Therefore the actual SAIDs must not be aggregated but blinded commitments to those SAIDs instead. With blinded commitments, knowledge of any or all members of such a set does not disclose the membership of any SAID unless and until it is unblinded. Recall that the purpose of bulk issuance is to allow the SAID of an ACDC in a bulk issued set to be used publicly without correlating it in an un-permissioned provable way to the SAIDs of the other members.</t>
        <t>The basic approach is to compute the aggregate denoted, <em>B</em>, as the digest of the concatenation of a set of blinded digests of bulk issued ACDC SAIDS. Each ACDC SAID is first blinded via concatenation to a UUID (salty nonce) and then the digest of that concatenation is concatenated with the other blinded SAID digests. Finally, a digest of that concatenation provides the aggregate.</t>
        <t>Suppose there are <em>M</em> ACDCs in a bulk issued set. Using zero-based indexing for each member of the bulk issued set of ACDCs, such that index <em>k</em> satisfies <em>k in {0, ..., M-1}, let *d<sub>k</sub></em> denote the top-level SAID of an ACDC in an ordered set of bulk-issued ACDCs. Let <em>v<sub>k</sub></em> denote the UUID (salty nonce) or blinding factor that is used to blind that said. The blinding factor, <em>v<sub>k</sub></em>, is NOT the top-level UUID, <tt>u</tt>, field of the ACDC itself but an entirely different UUID used to blind the ACDC's SAID for the purpose of aggregation. The derivation path for <em>v<sub>k</sub></em> from the shared secret salt is <em>"k."</em> where <em>k</em> is the index of the bulk-issued ACDC.</t>
        <t>Let <em>c<sub>k</sub> = v<sub>k</sub> + d<sub>k</sub></em>,  denote the blinding concatenation where <em>+</em> is the infix concatenation operator.<br/>
Then the blinded digest, <em>b<sub>k</sub></em>, is given by,<br/>
          <em>b<sub>k</sub> = H(c<sub>k</sub>) = H(v<sub>k</sub> + d<sub>k</sub>)</em>, <br/>
where <em>H</em> is the digest operator.</t>
        <t>The aggregation of blinded digests, <em>B</em>, is given by,<br/>
          <em>B = H(C(b<sub>k</sub> for all k in {0, ..., M-1}))</em>, <br/>
where <em>C</em> is the concatenation operator and <em>H</em> is the digest operator. This aggregate, <em>B</em>, provides the issuance proof digest.</t>
        <t>The aggregate, <em>B</em>, makes a blinded cryptographic commitment to the ordered elements in the list
<em>[b<sub>0</sub>, b<sub>1</sub>, ...., b<sub>M-1</sub>]</em>. A commitment to <em>B</em> is a commitment to all the <em>b<sub>k</sub></em> and hence all the d<sub>k</sub>.</t>
        <t>Given sufficient collision resistance of the digest operator, the digest of an ordered concatenation is not subject to a birthday attack on its concatenated elements <xref target="BDC"/><xref target="BDay"/><xref target="QCHC"/><xref target="HCR"/><xref target="Hash"/>.</t>
        <t>Disclosure of any given <em>b<sub>k</sub></em> element does not expose or disclose any discoverable information detail about either the SAID of its associated ACDC or any other ACDC's SAID. Therefore one may safely disclose the full list of <em>b<sub>k</sub></em> elements without exposing the blinded bulk issued SAID values, d<sub>k</sub>.</t>
        <t>Proof of inclusion in the list of blinded digests consists of checking the list for a matching value. A computationally efficient way to do this is to create a hash table or B-tree of the list and then check for inclusion via lookup in the hash table or B-tree.</t>
        <t>A proof of inclusion of an ACDC in a bulk-issued set requires disclosure of <em>v<sub>k</sub></em> which is only disclosed after the disclosee has accepted (agreed to) the terms of the rule section. Therefore, in the event the <em>Disclosee</em> declines to accept the terms of disclosure, then a presentation/disclosure of the compact version of the ACDC does not provide any point of correlation to any other SAID of any other ACDC from the bulk set that contributes to the aggregate <em>B</em>. In addition, because the other SAIDs are hidden by each <em>b<sub>k</sub></em> inside the aggregate, <em>B</em>, even a presentation/disclosure of,<br/>
          <em>[b<sub>0</sub>, b<sub>1</sub>, ...., b<sub>M-1</sub>]</em> <br/>
does not provide any point of correlation to the actual bulk-issued ACDC without disclosure of its <em>v<sub>k</sub></em>. Indeed if the <em>Discloser</em> uses a metadata version of the ACDC in its <em>offer</em> then even its SAID is not disclosed until after acceptance of terms in the rule section.</t>
        <t>To protect against later forgery given a later compromise of the signing keys of the Issuer, the issuer <bcp14>MUST</bcp14> anchor an issuance proof seal to the ACDC in its KEL. This seal binds the signing key state to the issuance. There are two cases. In the first case, an issuance/revocation registry is used. In the second case, an issuance/revocation registry is not used.</t>
        <t>When the ACDC is registered using an issuance/revocation TEL (Transaction Event Log) then the issuance proof seal digest is the SAID of the issuance (inception) event in the ACDC's TEL entry. The issuance event in the TEL uses the aggregate value, <em>B</em>, as its identifier value. This binds the aggregate, <em>B</em>, to the issuance proof seal in the Issuer's KEL through the TEL.</t>
        <t>Recall that the usual purpose of a TEL is to provide a verifiable data registry that enables dynamic revocation of an ACDC via a state of the TEL. A verifier checks the state at the time of use to check if the associated ACDC has been revoked. The Issuer controls the state of the TEL. The registry identifier, <tt>ri</tt>, field is used to identify the public registry which usually provides a unique TEL entry for each ACDC. Typically the identifier of each TEL entry is the SAID of the TEL's inception event which is a digest of the event's contents which include the SAID of the ACDC. In the bulk issuance case, however, the TEL's inception event contents include the aggregate, <em>B</em>, instead of the SAID of a given ACDC. Recall that the goal is to generate an aggregate value that enables an Issuee to selectively disclose one ACDC in a bulk-issued set without leaking the other members of the set to un-permissioned parties (second or third).
Using the aggregate, <em>B</em> of blinded ACDC saids as the TEL registry entry identifier allows all members of the bulk-issued set to share the same TEL without any third party being able to discover which TEL any ACDC is using in an un-permissioned provable way. Moreover, a second party may not discover in an un-permissioned way any other ACDCs from the bulk-issued set not specifically disclosed to that second party. In order to prove to which TEL a specific bulk issued ACDC belongs, the full inclusion proof must be disclosed.</t>
        <t>When the ACDC is not registered using an issuance/revocation TEL then the issuance proof seal digest is the aggregate, <em>B</em>, itself.</t>
        <t>In either case, this issuance proof seal makes a verifiable binding between the issuance of all the ACDCs in the bulk issued set and the key state of the Issuer at the time of issuance.</t>
        <t>A <em>Discloser</em> may make a basic provable non-repudiable selective disclosure of a given bulk issued ACDC, at index <em>k</em> by providing to the <em>Disclosee</em> four items of information (proof of inclusion). These are as follows:</t>
        <ul spacing="normal">
          <li>The ACDC in compact form (at index <em>k</em>) where <em>d<sub>k</sub></em> as the value of its top-level SAID, <tt>d</tt>, field.</li>
          <li>The blinding factor, <em>v<sub>k</sub></em> from which <em>b<sub>k</sub> = H(v<sub>k</sub> + d<sub>k</sub>)</em> may be computed.</li>
          <li>The list of all blinded SAIDs, <em>[b<sub>0</sub>, b<sub>1</sub>, ...., b<sub>M-1</sub>]</em> that includes <em>b<sub>k</sub></em>.</li>
          <li>The signature(s), <em>s<sub>k</sub></em>, of the Issuee on the ACDC's top level SAID, <em>d<sub>k</sub></em>, field.</li>
        </ul>
        <t>A <em>Disclosee</em> may then verify the disclosure by:</t>
        <ul spacing="normal">
          <li>computing <em>d<sub>j</sub></em> on the disclosed compact ACDC.</li>
          <li>computing <em>b<sub>k</sub> = H(v<sub>k</sub> + d<sub>k</sub>)</em></li>
          <li>confirming that the computed <em>b<sub>k</sub></em> appears in the provided list <em>[b<sub>0</sub>, b<sub>1</sub>, ...., b<sub>M-1</sub>]</em>.</li>
          <li>computing the aggregate <em>B</em> from the provided list <em>[b<sub>0</sub>, b<sub>1</sub>, ...., b<sub>M-1</sub>]</em>..</li>
          <li>confirming the presence of an issuance seal digest in the Issuer's KEL that makes a commitment to the aggregate, <em>B</em>, either directly or indirectly through a TEL registry entry.</li>
          <li>verifying the provided signature(s), <em>s<sub>k</sub></em>, of the Issuee on the provided top level SAID, <em>d<sub>k</sub></em>, field.</li>
        </ul>
        <t>The last 3 steps that culminate with verifying the signature(s) require determining the key state of the Issuer at the time of issuance, this may require additional verification steps as per the KERI, PTEL, and CESR-Proof protocols.</t>
        <t>The requirement of an anchored issuance proof seal means that the forger Must first successfully publish in the KEL of the issuer an inclusion proof digest seal bound to a set of forged bulk issued ACDCs. This makes any forgery attempt detectable. To elaborate, the only way to successfully publish such a seal is in a subsequent interaction event in a KEL that has not yet changed its key state via a rotation event. Whereas any KEL that has changed its key state via a rotation must be forked before the rotation. This makes the forgery attempt either both detectable and recoverable via rotation in any KEL that has not yet changed its key state or detectable as duplicity in any KEL that has changed its key state. In any event, the issuance proof seal makes any later attempt at forgery using compromised keys detectable.</t>
        <section anchor="inclusion-proof-via-merkle-tree">
          <name>Inclusion Proof via Merkle Tree</name>
          <t>The inclusion proof via aggregated list may be somewhat verbose when there are a very large number of bulk issued ACDCs in a given set. A more efficient approach is to create a Merkle tree of the blinded SAID digests, <em>b<sub>k</sub></em> and set the aggregate <em>B</em> value as the Merkle tree root <xref target="Mrkl"/>.</t>
          <t>The Merkle tree needs to have appropriate second-pre-image attack protection of interior branch nodes <xref target="TwoPI"/><xref target="MTSec"/>. The discloser then only needs to provide a subset of digests from the Merkle tree to prove that a given digest, <em>b<sub>k</sub></em> contributed to the Merkle tree root digest. For a small numbered bulk issued set of ACDCs, the added complexity of the Merkle tree approach may not be worth the savings in verbosity.</t>
        </section>
        <section anchor="bulk-issuance-of-private-acdcs-with-unique-issuee-aids">
          <name>Bulk Issuance of Private ACDCs with Unique Issuee AIDs</name>
          <t>One potential point of provable but un-permissioned correlation among any group of colluding malicious <em>Disclosees</em> (Second-Party verifiers) may arise when the same Issuee AID is used for presentation/disclosure to all <em>Disclosees</em>  in that group. Recall that the contents of private ACDCs are not disclosed except to permissioned <em>Disclosees</em> (Second-Parties), thus a common <em>Issuee</em> AID would only be a point of correlation for a group of colluding malicious verifiers. But in some cases removing this un-permissioned point of correlation may be desirable.</t>
          <t>One solution to this problem is for the <em>Issuee</em> to use a unique AID for the copy of a bulk issued ACDC presented to each <em>Disclosee</em> in a given context. This requires that each ACDC copy in the bulk-issued set use a unique <em>Issuee</em> AID. This would enable the <em>Issuee</em> in a given context to minimize provable correlation by malicious <em>Disclosees</em> against any given <em>Issuee</em> AID. In this case, the bulk issuance process may be augmented to include the derivation of a unique Issuee AID in each copy of the bulk-issued ACDC by including in the inception event that defines a given Issuee's self-addressing AID, a digest seal derived from the shared salt and copy index <em>k</em>. The derivation path for the digest seal is <em>"k/0."</em> where <em>k</em> is the index of the ACDC. To clarify <em>"k/0."</em> specifies the path to generate the UUID to be included in the inception event that generates the Issuee AID for the ACDC at index <em>k</em>. This can be generated on-demand by the <em>Issuee</em>. Each unique <em>Issuee</em> AID would also need its own KEL. But generation and publication of the associated KEL can be delayed until the bulk-issued ACDC is actually used. This approach completely isolates a given <em>Issuee</em> AID to a given context with respect to the use of a bulk-issued private ACDC. This protects against even the un-permissioned correlation among a group of malicious Disclosees (Second Parties) via the Issuee AID.</t>
        </section>
      </section>
      <section anchor="independent-tel-bulk-issued-acdcs">
        <name>Independent TEL Bulk-Issued ACDCs</name>
        <t>Recall that the purpose of using the aggregate <em>B</em> for a bulk-issued set from which the TEL identifier is derived is to enable a set of bulk issued ACDCs to share a single public TEL that provides dynamic revocation but without enabling un-permissioned correlation to any other members of the bulk set by virtue of the shared TEL. This enables the issuance/revocation/transfer state of all copies of a set of bulk-issued ACDCs to be provided by a single TEL which minimizes the storage and compute requirements on the TEL registry while providing selective disclosure to prevent un-permissioned correlation via the public TEL.</t>
        <t>However, in some applications where chain-link confidentiality does not sufficiently deter malicious provable correlation by Disclosees (Second-Party verifiers), an Issuee may benefit from using ACDC with independent TELs but that are still bulk-issued.</t>
        <t>In this case, the bulk issuance process must be augmented so that each uniquely identified copy of the ACDC gets its own TEL entry in the registry. Each Disclosee (verifier) of a full presentation/disclosure of a given copy of the ACDC only receives proof of one uniquely identified TEL and can NOT provably correlate the TEL state of one presentation to any other presentation because the ACDC SAID, the TEL identifier, and the signature of the issuer on the SAID of a given copy will all be different for each copy. There is therefore no point of provable correlation permissioned or otherwise.</t>
        <t>The obvious drawbacks of this approach (independent unique TELs for each private ACDC) are that the size of the registry database increases as a multiple of the number of copies of each bulk-issued ACDC and every time an Issuer must change the TEL state of a given set of copies it must change the state of multiple TELs in the registry. This imposes both a storage and computation burden on the registry. The primary advantage of this approach, however, is that each copy of a private ACDC has a uniquely identified TEL. This minimizes un-permissioned Third-Party exploitation via provable correlation of TEL identifiers even with colluding Second-Party verifiers. They are limited to statistical correlation techniques.</t>
        <t>In this case, the set of private ACDCs may or may not share the same Issuee AID because for all intents and purposes each copy appears to be a different ACDC even when issued to the same Issuee. Nonetheless, using unique Issuee AIDs may further reduce correlation by malicious Disclosees (Second-Party verifiers) beyond using independent TELs.</t>
        <t>To summarize the main benefit of this approach, in spite of its storage and compute burden, is that in some applications chain-link confidentiality does not sufficiently deter un-permissioned malicious collusion. Therefore completely independent bulk-issued ACDCs may be used.</t>
      </section>
    </section>
    <section anchor="appendix-cryptographic-strength-and-security">
      <name>Appendix: Cryptographic Strength and Security</name>
      <section anchor="cryptographic-strength">
        <name>Cryptographic Strength</name>
        <t>For crypto-systems with <em>perfect-security</em>, the critical design parameter is the number of bits of entropy needed to resist any practical brute force attack. In other words, when a large random or pseudo-random number from a cryptographic strength pseudo-random number generator (CSPRNG) <xref target="CSPRNG"/> expressed as a string of characters is used as a seed or private key to a cryptosystem with <em>perfect-security</em>, the critical design parameter is determined by the amount of random entropy in that string needed to withstand a brute force attack. Any subsequent cryptographic operations must preserve that minimum level of cryptographic strength. In information theory <xref target="IThry"/><xref target="ITPS"/> the entropy of a message or string of characters is measured in bits. Another way of saying this is that the degree of randomness of a string of characters can be measured by the number of bits of entropy in that string.  Assuming conventional non-quantum computers, the convention wisdom is that, for systems with information-theoretic or perfect security, the seed/key needs to have on the order of 128 bits (16 bytes, 32 hex characters) of entropy to practically withstand any brute force attack. A cryptographic quality random or pseudo-random number expressed as a string of characters will have essentially as many bits of entropy as the number of bits in the number. For other crypto-systems such as digital signatures that do not have perfect security, the size of the seed/key may need to be much larger than 128 bits in order to maintain 128 bits of cryptographic strength.</t>
        <t>An N-bit long base-2 random number has 2<sup>N</sup> different possible values. Given that no other information is available to an attacker with perfect security, the attacker may need to try every possible value before finding the correct one. Thus the number of attempts that the attacker would have to try maybe as much as 2<sup>N-1</sup>.  Given available computing power, one can easily show that 128 is a large enough N to make brute force attack computationally infeasible.</t>
        <t>Let's suppose that the adversary has access to supercomputers. Current supercomputers can perform on the order of one quadrillion operations per second. Individual CPU cores can only perform about 4 billion operations per second, but a supercomputer will parallelly employ many cores. A quadrillion is approximately 2<sup>50</sup> = 1,125,899,906,842,624. Suppose somehow an adversary had control over one million (2<sup>20</sup> = 1,048,576) supercomputers which could be employed in parallel when mounting a brute force attack. The adversary could then try 2<sup>50</sup> * 2<sup>20</sup> = 2<sup>70</sup> values per second (assuming very conservatively that each try only took one operation).
There are about 3600 * 24 * 365 = 313,536,000 = 2<sup>log<sub>2</sub>313536000</sup>=2<sup>24.91</sup> ~= 2<sup>25</sup> seconds in a year. Thus this set of a million super computers could try 2<sup>50+20+25</sup> = 2<sup>95</sup> values per year. For a 128-bit random number this means that the adversary would need on the order of 2<sup>128-95</sup> = 2<sup>33</sup> = 8,589,934,592 years to find the right value. This assumes that the value of breaking the cryptosystem is worth the expense of that much computing power. Consequently, a cryptosystem with perfect security and 128 bits of cryptographic strength is computationally infeasible to break via brute force attack.</t>
      </section>
      <section anchor="information-theoretic-security-and-perfect-security">
        <name>Information Theoretic Security and Perfect Security</name>
        <t>The highest level of cryptographic security with respect to a cryptographic secret (seed, salt, or private key) is called  <em>information-theoretic security</em> <xref target="ITPS"/>. A cryptosystem that has this level of security cannot be broken algorithmically even if the adversary has nearly unlimited computing power including quantum computing. It must be broken by brute force if at all. Brute force means that in order to guarantee success the adversary must search for every combination of key or seed. A special case of <em>information-theoretic security</em> is called <em>perfect-security</em> <xref target="ITPS"/>.  <em>Perfect-security</em> means that the ciphertext provides no information about the key. There are two well-known cryptosystems that exhibit <em>perfect security</em>. The first is a <em>one-time-pad</em> (OTP) or Vernum Cipher <xref target="OTP"/><xref target="VCphr"/>, the other is <em>secret splitting</em> <xref target="SSplt"/>, a type of secret sharing <xref target="SShr"/> that uses the same technique as a <em>one-time-pad</em>.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <ul spacing="normal">
        <li>
          <tt>SAID</tt> - Self-Addressing Identifier - any identifier which is deterministaclly generated out of the content, digest of the content</li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="ACDC_ID" target="https://github.com/trustoverip/tswg-acdc-specification">
          <front>
            <title>IETF ACDC (Authentic Chained Data Containers) Internet Draft</title>
            <author initials="S." surname="Smith" fullname="Samuel M. Smith">
              <organization>ProSapien LLC</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="KERI_ID" target="https://github.com/WebOfTrust/ietf-keri">
          <front>
            <title>IETF KERI (Key Event Receipt Infrastructure) Internet Draft</title>
            <author initials="S." surname="Smith" fullname="Samuel M. Smith">
              <organization>ProSapien LLC</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="CESR_ID" target="https://github.com/WebOfTrust/ietf-cesr">
          <front>
            <title>IETF CESR (Composable Event Streaming Representation) Internet Draft</title>
            <author initials="S." surname="Smith" fullname="Samuel M. Smith">
              <organization>ProSapien LLC</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="SAID_ID" target="https://github.com/WebOfTrust/ietf-said">
          <front>
            <title>IETF SAID (Self-Addressing IDentifier) Internet Draft</title>
            <author initials="S." surname="Smith" fullname="Samuel M. Smith">
              <organization>ProSapien LLC</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PTEL_ID" target="https://github.com/WebOfTrust/ietf-ptel">
          <front>
            <title>IETF PTEL (Public Transaction Event Log) Internet Draft</title>
            <author initials="P." surname="Feairheller" fullname="Phil Feairheller">
              <organization>GLEIF</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="Proof_ID" target="https://github.com/WebOfTrust/ietf-cesr-proof">
          <front>
            <title>IETF CESR-Proof Internet Draft</title>
            <author initials="P." surname="Feairheller" fullname="Phil Feairheller">
              <organization>GLEIF</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="IPEX_ID" target="https://github.com/WebOfTrust/keripy/blob/master/ref/Peer2PeerCredentials.md">
          <front>
            <title>IPEX (Issuance and Presentation EXchange) Internet Draft</title>
            <author initials="P." surname="Feairheller" fullname="Phil Feairheller">
              <organization>GLEIF</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="DIDK_ID" target="https://github.com/WebOfTrust/ietf-did-keri">
          <front>
            <title>IETF DID-KERI Internet Draft</title>
            <author initials="P." surname="Feairheller" fullname="Phil Feairheller">
              <organization>GLEIF</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="OOBI_ID" target="https://github.com/WebOfTrust">
          <front>
            <title>IETF OOBI Internet Draft</title>
            <author initials="S." surname="Smith" fullname="Samuel M. Smith">
              <organization>ProSapien LLC</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="JSON" target="https://www.json.org/json-en.html">
          <front>
            <title>JavaScript Object Notation Delimeters</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC8259" target="https://datatracker.ietf.org/doc/html/rfc8259">
          <front>
            <title>JSON (JavaScript Object Notation)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC4627" target="https://datatracker.ietf.org/doc/rfc4627/">
          <front>
            <title>The application/json Media Type for JavaScript Object Notation (JSON)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="JSch" target="https://json-schema.org">
          <front>
            <title>JSON Schema</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="JSch_202012" target="https://json-schema.org/draft/2020-12/release-notes.html">
          <front>
            <title>JSON Schema 2020-12</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CBOR" target="https://en.wikipedia.org/wiki/CBOR">
          <front>
            <title>CBOR Mapping Object Codes</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC8949" target="https://datatracker.ietf.org/doc/rfc8949/">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author initials="C." surname="Bormann" fullname="Carsten Bormann">
              <organization/>
            </author>
            <author initials="P." surname="Hoffman" fullname="Paul Hoffman">
              <organization/>
            </author>
            <date year="2020" month="December" day="04"/>
          </front>
        </reference>
        <reference anchor="MGPK" target="https://github.com/msgpack/msgpack/blob/master/spec.md">
          <front>
            <title>Msgpack Mapping Object Codes</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="ACDC_WP" target="https://github.com/SmithSamuelM/Papers/blob/master/whitepapers/ACDC.web.pdf">
          <front>
            <title>Authentic Chained Data Containers (ACDC) White Paper</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="VCEnh" target="https://github.com/SmithSamuelM/Papers/blob/master/whitepapers/VC_Enhancement_Strategy.md">
          <front>
            <title>VC Spec Enhancement Strategy Proposal</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="ACDC_TF" target="https://wiki.trustoverip.org/display/HOME/ACDC+%28Authentic+Chained+Data+Container%29+Task+Force">
          <front>
            <title>ACDC (Authentic Chained Data Container) Task Force</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="TOIP" target="https://trustoverip.org">
          <front>
            <title>Trust Over IP (ToIP) Foundation</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IETF" target="https://www.ietf.org">
          <front>
            <title>IETF (Internet Engineering Task Force</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="KERI" target="https://arxiv.org/abs/1907.02143">
          <front>
            <title>Key Event Receipt Infrastructure (KERI)</title>
            <author initials="S." surname="Smith" fullname="Samuel M. Smith">
              <organization>ProSapien LLC</organization>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="ITPS" target="https://en.wikipedia.org/wiki/Information-theoretic_security">
          <front>
            <title>Information-Theoretic and Perfect Security</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OTP" target="https://en.wikipedia.org/wiki/One-time_pad">
          <front>
            <title>One-Time-Pad</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="VCphr" target="https://www.ciphermachinesandcryptology.com/en/onetimepad.htm">
          <front>
            <title>Vernom Cipher (OTP)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SSplt" target="https://www.ciphermachinesandcryptology.com/en/secretsplitting.htm">
          <front>
            <title>Secret Splitting</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SShr" target="https://en.wikipedia.org/wiki/Secret_sharing">
          <front>
            <title>Secret Sharing</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CSPRNG" target="https://en.wikipedia.org/wiki/Cryptographically-secure_pseudorandom_number_generator">
          <front>
            <title>Cryptographically-secure pseudorandom number generator (CSPRNG)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IThry" target="https://en.wikipedia.org/wiki/Information_theory">
          <front>
            <title>Information Theory</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CAcc" target="https://en.wikipedia.org/wiki/Accumulator_(cryptography)">
          <front>
            <title>Cryptographic Accumulator</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="XORA" target="https://github.com/SmithSamuelM/Papers/blob/master/whitepapers/XORA.md">
          <front>
            <title>XORA (XORed Accumulator)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="GLEIF" target="https://www.gleif.org/en/">
          <front>
            <title>GLEIF (Global Legal Entity Identifier Foundation)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="vLEI" target="https://github.com/WebOfTrust/vLEI">
          <front>
            <title>vLEI (verifiable Legal Entity Identifier) Definition</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="GLEIF_vLEI" target="https://www.gleif.org/en/lei-solutions/gleifs-digital-strategy-for-the-lei/introducing-the-verifiable-lei-vlei">
          <front>
            <title>GLEIF vLEI (verifiable Legal Entity Identifier)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="GLEIF_KERI" target="https://github.com/WebOfTrust/vLEI">
          <front>
            <title>GLEIF with KERI Architecture</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="W3C_VC" target="https://www.w3.org/TR/vc-data-model/">
          <front>
            <title>W3C Verifiable Credentials Data Model v1.1</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="W3C_DID" target="https://w3c-ccg.github.io/did-spec/">
          <front>
            <title>W3C Decentralized Identifiers (DIDs) v1.0</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Salt" target="https://medium.com/@fridakahsas/salt-nonces-and-ivs-whats-the-difference-d7a44724a447">
          <front>
            <title>Salts, Nonces, and Initial Values</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RB" target="https://en.wikipedia.org/wiki/Rainbow_table">
          <front>
            <title>Rainbow Table</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="DRB" target="https://www.commonlounge.com/discussion/2ee3f431a19e4deabe4aa30b43710aa7">
          <front>
            <title>Dictionary Attacks, Rainbow Table Attacks and how Password Salting defends against them</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="BDay" target="https://en.wikipedia.org/wiki/Birthday_attack">
          <front>
            <title>Birthday Attack</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="BDC" target="https://auth0.com/blog/birthday-attacks-collisions-and-password-strength/">
          <front>
            <title>Birthday Attacks, Collisions, And Password Strength</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="HCR" target="https://en.wikipedia.org/wiki/Collision_resistance">
          <front>
            <title>Hash Collision Resistance</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="QCHC" target="https://cr.yp.to/hash/collisioncost-20090823.pdf">
          <front>
            <title>Cost analysis of hash collisions: Will quantum computers make SHARCS obsolete?</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="EdSC" target="https://eprint.iacr.org/2020/823">
          <front>
            <title>The Provable Security of Ed25519: Theory and Practice Report</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="PSEd" target="https://ieeexplore.ieee.org/document/9519456?denied=">
          <front>
            <title>The Provable Security of Ed25519: Theory and Practice</title>
            <author initials="J." surname="Brendel" fullname="Jacqueline Brendel">
              <organization/>
            </author>
            <author initials="C." surname="Cremers" fullname="Cas Cremers">
              <organization/>
            </author>
            <author initials="D." surname="Jackson" fullname="Dennis Jackson">
              <organization/>
            </author>
            <author initials="M." surname="Zhao" fullname="Mang Zhao">
              <organization/>
            </author>
            <date year="2021" month="May" day="24"/>
          </front>
          <seriesInfo name="2021 IEEE Symposium on Security and Privacy (SP)" value=""/>
        </reference>
        <reference anchor="TMEd" target="https://eprint.iacr.org/2020/1244.pdf">
          <front>
            <title>Taming the many EdDSAs</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="JSchCp" target="https://json-schema.org/understanding-json-schema/reference/combining.html">
          <front>
            <title>Schema Composition in JSON Schema</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="JSchRE" target="https://json-schema.org/understanding-json-schema/reference/regular_expressions.html">
          <front>
            <title>Regular Expressions in JSON Schema</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="JSchId" target="https://json-schema.org/understanding-json-schema/structuring.html#schema-identification">
          <front>
            <title>JSON Schema Identification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="JSchCx" target="https://json-schema.org/understanding-json-schema/structuring.html#base-uri">
          <front>
            <title>Complex JSON Schema Structuring</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RC" target="https://en.wikipedia.org/wiki/Ricardian_contract">
          <front>
            <title>Ricardian Contract</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CLC" target="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2045818">
          <front>
            <title>Chain-Link Confidentiality</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="DHKE" target="https://www.infoworld.com/article/3647751/understand-diffie-hellman-key-exchange.html">
          <front>
            <title>Diffie-Hellman Key Exchange</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="KeyEx" target="https://libsodium.gitbook.io/doc/key_exchange">
          <front>
            <title>Key Exchange</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IDSys" target="https://github.com/SmithSamuelM/Papers/blob/master/whitepapers/Identity-System-Essentials.pdf">
          <front>
            <title>Identity System Essentials</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Hash" target="https://en.wikipedia.org/wiki/Cryptographic_hash_function">
          <front>
            <title>Cryptographic Hash Function</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Mrkl" target="https://en.wikipedia.org/wiki/Merkle_tree">
          <front>
            <title>Merkle Tree</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="TwoPI" target="https://flawed.net.nz/2018/02/21/attacking-merkle-trees-with-a-second-preimage-attack/">
          <front>
            <title>Second Pre-image Attack on Merkle Trees</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MTSec" target="https://blog.enuma.io/update/2019/06/10/merkle-trees-not-that-simple.html">
          <front>
            <title>Merkle Tree Security</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="DSig" target="https://en.wikipedia.org/wiki/Digital_signature">
          <front>
            <title>Digital Signature</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Level" target="https://en.wikipedia.org/wiki/Security_level">
          <front>
            <title>Security Level</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Twin" target="https://en.wikipedia.org/wiki/Digital_twin">
          <front>
            <title>Digital Twin</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="TMal" target="https://en.wikipedia.org/wiki/Transaction_malleability_problem">
          <front>
            <title>Transaction Malleability</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="PGM" target="http://ceur-ws.org/Vol-2100/paper26.pdf">
          <front>
            <title>The Property Graph Database Model</title>
            <author initials="R." surname="Angles" fullname="Renzo Angles">
              <organization/>
            </author>
            <date year="2018"/>
          </front>
        </reference>
        <reference anchor="Dots" target="https://arxiv.org/pdf/1006.2361.pdf">
          <front>
            <title>Constructions from Dots and Lines</title>
            <author initials="M." surname="Rodriguez" fullname="Marko A. Rodriguez">
              <organization/>
            </author>
            <author initials="P." surname="Neubauer" fullname="Peter Neubauer">
              <organization/>
            </author>
            <date year="2010"/>
          </front>
        </reference>
        <reference anchor="KG" target="https://arxiv.org/pdf/2003.02320.pdf">
          <front>
            <title>Knowledge Graphs</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
xGDAI2r37OBoz4pUVvTWDFc2/lXpXFxyrl2Fq7ZVt6XnZdI1KPrE+cRjr2S0
HGJ7jZe9KGHLrDMtBCoZMArQYEDK6MX/Xq5G/5n++z7+6JnevFpDpV70JiRS
QOePSZEPsCzMhLTQd1Ev7Q1pR4wTslPjD6pDU/SEl4H6Ozu9v70PIGSVAT3M
uK6/vb/fj4bDYT96OXjwt5/+9lMP0XEejkIIqS3TNZ1FWT8Agf09fQ0G6EcI
w//w6/f5dSAy+vOB/jkkEPhDAIQ//tvfe0Pm1PVEXVzC7cYV1wLFViG6XYgm
fdt605wZhezEe31xzdgC7Ky0qBGFgeQiZ8YEAwxy4RyjoL1l61fTC+JMaOQn
SXiJKdli3qOS97bZr5AOD8NBFd4EoU4sdqBQzAmGGYVPiQnPceYLCqy/IJg2
wcM4WckI/r3U6zB68FWRa7GhKumr1tCPege9fmtpvbuoZW3KmIS11bVKxb3E
8eiSHdrNeqT6eVeQQZ0EusCUmeuF6w7CwhHb5YoGaRAa8OuDW++ctNgR0Ori
TbcZWuydbaMS3dsvuB7XCZIvfF8VK5Ngdy+Vj9uzL2ijgnDkMOD5tiBsqUzl
4L575PWGqOifH5W9avsw/acJ1fbb/XGjtVc/HyAUvT4eQI2c3G0BEvr6iOj5
eEkMt50NUtf+tY4Ga5i/H49bAfq4x6M1c3xboJjM6JbfDFFrGnkrSL/eGUGL
wr/WEakXSsD/fj8hv/QJaatusC1MRGNbnI9f5Qoxf/2df+zUv+OfnGJ028iu
6hKpcycuDOeUwnDQ5Xjg/fXP0YV/RNatnZ0DKTNV1z+tu58cpP59iZutxyeq
wUxbTYLygdodW4bUFRf4KdLCacGBx8I76ALF19uNewfRf0Rf7x7ubq957+31
xNHZ+7qn1TUFmt1ZXM72vJpCORiH7imFTYt3ymPcmoxyhjgCrW9cjs4YrhGu
0gnUWDTuK6oZYc6c4ZI5tG+rO0x9ffXBba/SZRC8SWvitx/e9jaeFGv+d35+
QwSCOtxkCV2l7t6btqnLOBFABftEHbeAZ8NZ5WABRmvvDz3VZdNsmr6re7lk
W/rRTUKFWskwwhAE80d/CAFwfysEvbYQu1tj5gwAIaEbr1kIsZhfYc7vJc0u
jkZpUc0mmEnDhtFcFW19EUlK7Wbv3z85ovCvJ0fx2oaDSXQYB4sNO4pTBwaB
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

-->

</rfc>
