<?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-rfc version 1.7.29 (Ruby 3.4.4) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="o-*+"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ramakrishna-satp-views-addresses-05" category="info" consensus="true" submissionType="IETF" tocDepth="4" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.1 -->
  <front>
    <title abbrev="SAT Asset Exchange">Secure Asset Exchange Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-ramakrishna-satp-views-addresses-05"/>
    <author initials="V." surname="Ramakrishna" fullname="Venkatraman Ramakrishna">
      <organization>IBM Research</organization>
      <address>
        <email>vramakr2@in.ibm.com</email>
      </address>
    </author>
    <author initials="V." surname="Pandit" fullname="Vinayaka Pandit">
      <organization>IBM Research</organization>
      <address>
        <email>pvinayak@in.ibm.com</email>
      </address>
    </author>
    <author initials="E." surname="Abebe" fullname="Ermyas Abebe">
      <organization>Consensys</organization>
      <address>
        <email>ermyas.abebe@consensys.net</email>
      </address>
    </author>
    <author initials="S." surname="Nishad" fullname="Sandeep Nishad">
      <organization>IBM Research</organization>
      <address>
        <email>sandeep.nishad1@ibm.com</email>
      </address>
    </author>
    <author initials="K." surname="Narayanam" fullname="Krishnasuri Narayanam">
      <organization>IBM Research</organization>
      <address>
        <email>knaraya3@in.ibm.com</email>
      </address>
    </author>
    <date year="2025" month="September" day="10"/>
    <area>Applications and Real-Time</area>
    <workgroup>Secure Asset Transfer Protocol</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 251?>

<t>With increasing use of DLT (distributed ledger technology) systems, including blockchain systems and networks, for virtual assets, there is a need for asset-related data and metadata to traverse system boundaries and link their respective business workflows. Core requirements for such interoperation between systems are the abilities of these systems to project views of their assets to external parties, either individual agents or other systems, and the abilities of those external parties to locate and address the views they are interested in. A view denotes the complete or partial state of a virtual asset, or the output of a function computed over the states of one or more assets, or locks or pledges made over assets for internal or external parties. Systems projecting these views must be able to guard them using custom access control policies, and external parties consuming them must be able to verify them independently for authenticity, finality, and freshness. The end-to-end protocol that allows an external party to request a view by an address and a DLT system to return a view in response must be DLT-neutral and mask the interior particularities and complexities of the DLT systems. The view generation and verification modules at the endpoints must obey the native consensus logic of their respective systems.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-satp.github.io/draft-ramakrishna-satp-views-addresses/draft-ramakrishna-satp-views-addresses.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ramakrishna-satp-views-addresses/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Secure Asset Transfer Protocol Working Group mailing list (<eref target="mailto:sat@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/sat/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/sat/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-satp/draft-ramakrishna-satp-views-addresses"/>.</t>
    </note>
  </front>
  <middle>
    <?line 255?>

<section anchor="introduction">
      <name>Introduction</name>
      <t anchor="introduction-doc">Blockchain systems, especially those of the permissioned variety, are a heterogeneous mix, fulfilling a diverse range of needs and built on several different DLT stacks that are not compatible with each other. Yet, in an interconnected world, the business processes running on each system cannot afford to remain isolated and the virtual assets they manage cannot afford to remain in siloes. These systems must be interoperable so that assets can move, and their properties can be reflected across network boundaries, and so that business processes can span multiple systems. Interoperability will, in effect, mimic a larger or scaled up, blockchain system composed of smaller blockchain systems without explicitly requiring those systems to coalesce.</t>
      <t>At the core of any cross-blockchain system transaction is the ability of a system to project a view of assets and associated data recorded on its ledger to external parties, be they individual agents or other blockchain systems.  On the reverse, a blockchain system must also have the ability to identify and address views of assets or associated data in another system, and further, to validate that view before its business process consumes it.  View projection, addressing, and consumption, must eliminate or minimize the role of third parties to avoid loss of data privacy, control over business process, or diminishment of autonomy.</t>
      <t>This document specifies formats for views and view addresses on distributed ledgers. Similar to the notion of database views, distributed ledger views reflect what a given network wishes to expose to external parties, typically through scripts, as well as access control considerations. In contrast to conventional databases, exposure and access control considerations must be decided through decentralized consensus. Also, in contrast to a conventional database, the consumer of the view, who may be a DLT system, must be able to independently validate it as the consensus view of the providing network. Hence, a view incorporates the notion of a proof made against a claim. The view address must encapsulate the view request, and optionally carry a policy that circumscribes the construction of proof.</t>
      <t>The protocol to communicate view requests and responses is beyond the scope of this draft and will be specified in a separate draft.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t anchor="terminology-doc">The following are some terminology used in the current document:</t>
      <ul spacing="normal">
        <li>
          <t>Blockchain system: Blockchains are distributed digital ledgers of cryptographically signed transactions that are grouped into blocks.  Each block is cryptographically linked to the previous one (making it tamper evident) after validation and undergoing a consensus decision.  As new blocks are added, older blocks become more difficult to modify (creating tamper resistance). New blocks are replicated across copies of the ledger within the network, and any conflicts are resolved automatically using established rules <xref target="NIST"/>.</t>
        </li>
        <li>
          <t>Blockchain network: This is a blockchain system that is built on a network of nodes that maintain a common shared copy of the blockchain using a consensus protocol.</t>
        </li>
        <li>
          <t>Distributed ledger technology (DLT) system: Technology that enables the operation and use of distributed ledgers, where the ledger is shared (replicated) across a set of DLT nodes and synchronized between the DLT nodes using a consensus mechanism <xref target="ISO"/>.  Every blockchain system is also a DLT system, and so we will mostly use the latter term in this draft when discussing protocols for cross-system interactions.</t>
        </li>
        <li>
          <t>Distributed ledger network: This is a DLT system that is built on a network of nodes that maintain a shared copy of the ledger or portions of it on different subsets of nodes using a consensus protocol.</t>
        </li>
        <li>
          <t>Resource Domain: The collection of resources and entities participating within a blockchain or DLT system. The domain denotes a boundary for permissible or authorized actions on resources.</t>
        </li>
        <li>
          <t>Interior Resources: The various interior protocols, data structures and cryptographic constructs that are a core part of a blockchain or DLT system.  Examples of interior resources include the ledger (blocks of confirmed transaction data), public keys on the ledger, consensus protocol, incentive mechanisms, transaction propagation networks, etc.</t>
        </li>
        <li>
          <t>Exterior Resources: The various resources that are outside a blockchain or DLT system, and are not part of the operations of the system.  Examples include data located at third parties such as asset registries, ledgers of other blockchain/DLT systems, PKI infrastructures, etc.</t>
        </li>
        <li>
          <t>Nodes: The nodes of the blockchain or DLT system which form the peer-to-peer network, which collectively maintain the shared ledger in the system by following a consensus algorithm.</t>
        </li>
        <li>
          <t>Gateway nodes: The nodes of the blockchain or DLT system that are functionally capable of acting as a gateway in an asset transfer. A gateway node conforms to the Secure Asset Transfer Architecture <xref target="SATA"/> and implements the Secure Asset Transfer Protocol (SATP) <xref target="SATP"/>. Being a node on the blockchain/DLT system, a gateway has at least read access to the interior resources (e.g., ledger) of the blockchain. Optionally, it may have write access to the ledger and also the ability to participate in the consensus mechanism deployed for the system. Depending on the blockchain/DLT system implementation, some or all of the nodes may be gateway-capable.</t>
        </li>
        <li>
          <t>Clients: Entities are permitted to invoke smart contracts to read or update ledger state in a blockchain or DLT system. They possess unique identities in the form of public keys. In a permissioned system, identity certificates are issued by the system's internal providers (or certificate authorities).</t>
        </li>
        <li>
          <t>Wallets: Collection of client identities represented by public-private key pairs, and optionally certificate issued by a blockchain or DLT system's identity providers (or certificate authorities).</t>
        </li>
        <li>
          <t>Virtual Asset: A virtual asset is a digital representation of value that can be digitally traded, or transferred as defined by the FATF <xref target="FATF"/>.</t>
        </li>
        <li>
          <t>Virtual Asset Service Provider (VASP): Legal entity handling virtual assets as defined by the FATF <xref target="FATF"/>.</t>
        </li>
        <li>
          <t>Ledger state: A snapshot of the information held in a distributed shared ledger, typically (though not necessarily) as a set of blockchain or DLT system. Examples of interior resources include key-and-value pairs. This information includes records of virtual assets and the state of business processes that are meaningful to the DLT system's participants and clients. State elements and subsets may be scoped under the namespaces of given smart contracts, thereby being accessible only through invocations on those contracts.</t>
        </li>
        <li>
          <t>Smart contracts: Business workflows written in programming languages that manage the states of assets and business processes on a shared ledger in a DLT system. These contracts constrain the ability of system clients to modify ledger state and embed guards around state elements. Contracts can be invoked to read from, or write, to, a ledger. They can be deployed on several system nodes, who must agree on a given ledger state update via a consensus protocol.</t>
        </li>
        <li>
          <t>Consensus protocol/mechanism: Process by which nodes agree on a ledger state update, typically (though not mandatorily) through a smart contract invocation.</t>
        </li>
        <li>
          <t>Local transaction: A transaction triggered by a client to update the ledger state in a blockchain or DLT system, typically (though not mandatorily) through a smart contract invocation.</t>
        </li>
        <li>
          <t>View: A projection of a blockchain or DLT system's ledger state for external consumption, i.e., for parties outside that system. This can be a single element, a subset of the state, or a function over a subset.</t>
        </li>
        <li>
          <t>View Address: A unique identifier or locator for a view into a blockchain or DLT system's ledger. This is analogous to an HTTP URL.</t>
        </li>
        <li>
          <t>Source system: Blockchain or DLT system governing the ledger from which a view is produced.</t>
        </li>
        <li>
          <t>Destination system: System in which a view is consumed. This can be a blockchain or DLT system.</t>
        </li>
        <li>
          <t>Remote system: Counterparty system in a view request-response protocol instance. From the vantage point of the source system, this refers to the destination system, and vice versa.</t>
        </li>
        <li>
          <t>View requestor: Person or organization triggering a view request from a source network.</t>
        </li>
        <li>
          <t>Proof: A data structure containing evidence linking a view to its source system's blockchain, or more generally, ledger. The evidence may be probabilistic and in some cases cryptographically verifiable.</t>
        </li>
        <li>
          <t>Access/exposure policy: Set of rules governing the release of a view to an external party (i.e., outside the source system), held in consensus by nodes on the source system's ledger.</t>
        </li>
        <li>
          <t>Verification policy: Rules for validation of proofs associated with views maintained in a destination system. If the destination system is a blockchain or DLT system, these rules are held in consensus by nodes on the that system's ledger.</t>
        </li>
        <li>
          <t>View Request: A request for a made by an external party to a source blockchain or DLT system. The external party may be a client in a destination blockchain or DLT system. The request consists of a view address and various metadata, including optionally a verification policy.</t>
        </li>
        <li>
          <t>Asset locking or escrow: The conditional mechanism used within a blockchain or DLT system to make an asset temporarily unavailable for use by its owner. The condition of the asset release can be based on a duration of time (e.g., hash time locks) or other parameters.</t>
        </li>
      </ul>
      <t>Further terminology definitions can be found in <xref target="NIST"/> and <xref target="ISO"/>. The term 'blockchain' and 'distributed ledger technology' (DLT) are used interchangeably in this document.</t>
    </section>
    <section anchor="assumptions-and-principles">
      <name>Assumptions and Principles</name>
      <t anchor="assumptions-principles">The addressing of a DLT system’s assets and asset-related data as well as the exposure of such data to a foreign DLT system assumes the presence of one or more gateways that are either part of the system or working on behalf of it. These gateways are ultimately responsible for generating and interpreting both addresses and data, hiding any DLT- or network-specific protocol considerations from each other. All DLT- and network-specific software artifacts that are exchanged among gateways will be encapsulated in generic (or DLT-neutral) software artifacts. The gateways are assumed to be interoperable using a protocol that corresponds to the design principles of the Internet architecture. The specification of this protocol is beyond the scope of this draft and will be described in a separate draft.</t>
    </section>
    <section anchor="ledger-state-views-and-proofs">
      <name>Ledger State Views and Proofs</name>
      <section anchor="views">
        <name>Abstraction of Distributed Ledger States</name>
        <t anchor="views-abstraction">A distributed ledger system maintains a set of ledgers, akin to databases. Each such ledger is organized and addressable in a hierarchical namespace with the identifier of the distributed ledger system being the root. A ledger is shared among a subset of members of the network that the system, which maintains the distributed ledger, is built on. These subsets of members may overlap or be mutually exclusive, depending on the precepts of the given DLT, but for the purpose of this document, the distinction is not relevant. For example, the Hyperledger Fabric blockchain platform maintains a set of channels, where each channel is shared exclusively by a subset of members <xref target="Andr18"/>. In contrast, the Corda platform allows each data item to be shared by an arbitrary subset of members, in effect creating databases privy to mutually overlapping member sets <xref target="Hear19"/>. The Ethereum Mainnet has a dynamic group of members maintaining a single global ledger with open, or public, access.</t>
        <t>Each shared ledger within a system maintains a snapshot of the latest, or current, state, determined through consensus (or agreement) by the members sharing it. In addition, a tamper-evident history of the current state, which can be a blockchain or any other form of a transaction log, is also maintained by the members sharing that database. The state of the distributed ledger system as a whole is the union of states of the ledgers it comprises of.</t>
        <t>Finally, any data item within a ledger can be retrieved, or any processed data extracted, using its native logic and interfaces. As a ledger is a traditional database in most respects, it supports extraction and processing the same way a database does. For example, data in a SQL database can be extracted using record keys and schema attributes, whereas in a No-SQL database, data is extracted using knowledge of key value pairs and overlaid schema. Just as views and stored procedures are used to extract information from a database, UTXO scripts (in Bitcoin <xref target="Naka08"/>) or smart contracts (in Ethereum <xref target="Ethe22"/>, and several permissioned DLTs like Hyperledger Fabric and Corda) are used to extract information from a ledger. An interface is provided to give the user the ability to query or update ledger data. As UTXO scripts are just simple forms of smart contracts, we will assume in our abstraction that each ledger within a DLT system possesses a smart contract interface.</t>
      </section>
      <section anchor="distributed-ledger-system-views">
        <name>Distributed Ledger System Views</name>
        <t anchor="views-dls">A view into a distributed ledger system state is similar in concept to a traditional database view but has certain additional features because the backing state is maintained in a different way than state in a traditional database is. Fundamentally, a DLT system view is information that is derived from that system's ledger. We define it as an abstract representation of state projected from a ledger that is consumable by entities, who may or may not belong to the network or possess credentials to access raw ledger state. Views are uniquely addressable within a DLT system. A view can be static, i.e., referring to information derived from a point-in-time (or historical) state, or dynamic, i.e., referring to information derived from the current state.</t>
        <t>Semantically, a view represents the what and not the how, i.e., it projects information from a ledger but not the details of the process through which that information came into being. This process has multiple facets, from the consensus and commitment protocols through which raw data was recorded on the ledger to the smart contract procedure through which information was extracted from the raw ledger data. These procedures are specific to DLT implementations, which we wish to keep opaque from the cross-system communication infrastructure, specifically the systems' gateways. This will allow the communication infrastructure to ignore details of ledger implementations while managing state when a view is communicated from a system to an external entity. Therefore, we specify the view as a package with a generic structure, independent of a specific DLT implementation. Internally, a view will contain data that has a DLT-specific representation, but we will leave the interpretation of this to modules internal to the systems. In this document, we will specify the formats of the DLT-independent portions of a view that will be handled by the communication infrastructure and provide suggestive sample view contents for prominent DLTs.</t>
        <t>There is a caveat to the above definition, arising from a fundamental difference between a traditional database and a DLT system. This is the fact that state in the former is maintained by a single authority whereas state in the latter is maintained collectively, and held in agreement, by a peer group of entities, each of which can fail or be malicious. Therefore, a DLT system view is incomplete without an associated proof of it being derived from state agreed to by the group as a whole. In practice, this does not require unanimity but rather enough representation from group members to overcome failure of individual peers' failures and to assure an external client that the system as a whole will not repudiate that view, in accordance with the consensus rules of the source ledger, at a later time. Theoretically, we can quantify the nature of this proof under certain models. If peers are susceptible only to crash failures, an agreement over state from more than 50% of the peers will qualify as sufficient proof. If peers can be malicious, i.e., fail in Byzantine ways, a consistent state view is required from more than 2/3 of the peers. More generally, the nature of proof, or determining what is sufficient, can be derived from the consensus mechanism used by the system.</t>
        <t>The proof associated with a view represents two things. One is an assurance that the view is a group, or consensus, view of the ledger held by the DLT system as a whole. The other is evidence of authenticity of the state projection that the view represents. And though the construction of a proof is very DLT-specific, the notion that a proof may be supplied with a view can be embodied in a DLT-independent specification, thereby adhering to the principle of DLT opacity to the communication infrastructure. Finally, proofs are also consistent with the "what, not how" principle because they certify that a view represents state at a given point in time and not the history of events that led to that state.</t>
        <t>Now we can look at the structure of a view in more detail. At a high level, a view consists of the following:</t>
        <ul spacing="normal">
          <li>
            <t>Request Id: a unique value corresponding to the request for a view made by an external entity to the DLT system.</t>
          </li>
          <li>
            <t>Data: ledger state projection, or derived information, with proof.</t>
          </li>
          <li>
            <t>Metadata: attributes of the payload used to unpack and interpret it.</t>
          </li>
        </ul>
        <t>Data consists of the following:</t>
        <ul spacing="normal">
          <li>
            <t>View Address: this is supplied by an external entity, and is the equivalent of a "getter function" that can be used to uniquely identify (or derive) projection into a DLT system state.</t>
          </li>
          <li>
            <t>Information: this is the actual ledger state projection.</t>
          </li>
          <li>
            <t>Schema: this described the Information data structure and can be used to unpack (or unmarshal) it. It is optional if the ledger schema is well-known.</t>
          </li>
          <li>
            <t>Proof: This is a structure that validates the Information. It is optional, though recommended for DLT system views.</t>
          </li>
          <li>
            <t>Proof Schema: this describes the Proof data structure. It is optional if the proof schema is well-known.</t>
          </li>
        </ul>
        <t>Metadata consists of the following:</t>
        <ul spacing="normal">
          <li>
            <t>View Type: this tells us whether the view is a singleton data item, a collection of data items, or a computation over data items that are part of the DLT system state.</t>
          </li>
          <li>
            <t>Protocol Type: this denotes a unique value associated with a given DLT protocol; e.g., Bitcoin, Ethereum, Hyperledger Fabric, Corda, Solana.</t>
          </li>
          <li>
            <t>Timestamp: this denotes the time at which the view was produced.</t>
          </li>
          <li>
            <t>Proof Type: this denotes the type, or category, of proof being supplied, e.g., Notarizations/certifications (also called proof of authority), Simplified Payment Verifications, Zero Knowledge Proof, Proof of Proof-of-Work.</t>
          </li>
          <li>
            <t>Serialization Format: this denotes the format used to serialize the view data, e.g., XML, JSON, protocol buffer.</t>
          </li>
          <li>
            <t>Commitments: these are commitments made on the view by authorities or infrastructure (e.g., the Ethereum Mainnet) external to the DLT system.</t>
          </li>
        </ul>
      </section>
      <section anchor="simple-views">
        <name>Simple Views</name>
        <t anchor="views-simple">A simple DLT view is any unit of a database within a DLT system that is exposable through interfaces programmed over that database. More concretely, any blockchain or smart contract system provides the ability to write scripts or procedures that can act on the raw ledger (database) data, accompanied by interfaces to trigger those scripts or procedures to query or update ledger state. In such a system, a simple view is any information that can be obtained directly through an invocation of this interface, e.g., any transaction exposed by a smart contract deployed on a ledger within the system.</t>
        <t>In the DLT view structure specified earlier, the View Type within Metadata will be set to SIMPLE if such a view is requested by an external entity. The content of the view address (described later in this draft) can be interpreted to know if the external entity is requesting a simple view.</t>
      </section>
      <section anchor="aggregate-views">
        <name>Aggregate Views</name>
        <t anchor="views-aggregate">An aggregate DLT view is a collection of addressable units of databases within a DLT system. In effect, it is an array of simple views, which can be derived through multiple invocations of different scripts or smart contract transactions acting on raw ledger data. In the DLT view structure specified earlier, the View Type within Metadata will be set to AGGREGATE if such a view is requested by an external entity. The content of the view address (described later in this draft) can be interpreted to know if the external entity is requesting an aggregate view.</t>
      </section>
      <section anchor="complex-or-processed-views">
        <name>Complex or Processed Views</name>
        <t anchor="views-complex">A complex or processed DLT view is the output of a function computed over a set of addressable units of databases within a DLT system. In effect, it is a function computed over an aggregate view. In the DLT view structure specified earlier, the View Type within Metadata will be set to AGGREGATE if such a view is requested by an external entity. The content of the view address (described later in this draft) can be interpreted to know if the external entity is requesting a complex view, and the function to be computed will also be specified in the view address.</t>
      </section>
      <section anchor="view-proofs">
        <name>View Proofs</name>
        <t anchor="views-proofs">Proof within a view must ratify the view’s contents as the consensus over a projection of ledger state by members of the DLT system. Because the projection of state is itself DLT-specific, though it can be wrapped in DLT-neutral structures as we have described earlier, the proof also takes DLT-specific shapes. But we can list the set of attributes any proof must contain in abstract terms as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Association of response with request: a connection (ideally, cryptographically secure) between the request supplied in the view address with the ledger state projection as inferred by the source system. For instance, this can take the form of a signature over a common structure consisting of both the request and the response.</t>
          </li>
          <li>
            <t>Authenticity of response: a connection (ideally, cryptographically secure) between a member generating a ledger state projection and its DLT system. For instance, this can take the form of a certificate chain associating the signer with the DLT system’s membership authorities. This is necessary for a permissioned DLT system and is optional for open (or permissionless) DLT systems.</t>
          </li>
          <li>
            <t>Evidence of consensus: information showing that the view contents are agreed upon by the network as a whole. For a permissioned DLT system, this typically implies that an identical and authentic ledger state projection must be provided by a large enough quorum of its members so that the view cannot be repudiated in the future. In an open (or permissionless) system, this can simply be the portion of a mined block that shows why it belongs to the longest chain; i.e., proof-of work or succinct versions of it (like Proof-of-Proof-of-Work <xref target="Naka08"/>, or PoPoW <xref target="Kiay16"/><xref target="Kiay17"/>). In any DLT system, such evidence can optionally pass a policy check, where the policy rule is supplied by the view requestor and typically embodies the consensus logic that led to the commitment of the ledger state projection being requested.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="ledger-state-view-addresses">
      <name>Ledger State View Addresses</name>
      <t anchor="view-address">To request a view from a DLT system, an external entity must be able to unambiguously specify the information it seeks in the form of a view address. The use of the term “address” follows from the abstraction of a DLT system as a repository of data resources that can be retrieved and computed on. A view address in blockchain or distributed ledger systems is equivalent to URLs <xref target="RFC1630"/> (for example, specified as an HTTP address <xref target="RFC2616"/>), which are used to address resources offered by Internet and World Wide Web servers <xref target="RFC1738"/>.</t>
      <t>From a functional perspective, a view address can also be thought of as an interface over a “getter”, which is a standard software pattern used to fetch data values in a computer program. The schematic representation of a getter is dependent on the protocol followed by the underlying distributed ledger system, but is conceptually abstracted away by the view address. An external entity can create and manipulate a view address without understanding its semantics and usage, which are hidden by the DLT system. This allows the system to use alternate representations for getters internally without requiring external entities to understand the implementations of these operators. The view address states the “what” and not the “how”.</t>
      <t>A view address must be a globally unique identifier of a view on a distributed ledger system, because global interoperability is our goal. Therefore, as with DNS addresses for Internet servers and URLs for World Wide Web resources, a view address is a hierarchical address, with different segments identifying units of decreasing size and increasing specificity in sequence. The syntax is as follows:</t>
      <artwork><![CDATA[
  address  = location-segment "/"
             ledger-segment "/"
             view-segment
             ; distributed-ledger-system/ledger/data-projection
]]></artwork>
      <t>The location-segment provides identification and reachability information for the distributed ledger system. The ledger-segment identifies a unique ledger within this system, and the view-segment identifies a view or state projection from that ledger.</t>
      <t>Decentralized ledger systems don’t have a single location as they are built on networks of peer nodes. Maintainers of these systems may expose one or more endpoints for external entities to access views, which can be hosted on the network nodes themselves or on designated gateways. Gateways form the communication infrastructure for cross-system interactions and can be deployed in different configurations: a single system may possess multiple gateways, or a single gateway may serve multiple systems. Therefore, to formulate a view address, one needs to know the set of endpoints that lead to a given distributed ledger system and a unique identifier for the network that hosts that system. In certain systems and gateways, an identifier that represents a set of endpoints can be used instead of explicitly enumerating those endpoints. Also, if the specified set of endpoints is known to serve a single system, the network identifier can be omitted. The syntax of the location-segment is as follows:</t>
      <artwork><![CDATA[
  location-segment  = gateway ["/" network-id]
  gateway           = endpoint *(";" endpoint) / name
  endpoint          = host [":" port]
  host              = hostname / IP-address
  port              = 1*DIGIT
  network-id        = name
  hostname          = name 1*("." name)
  name              = (ALPHA / "_") *(ALPHA / DIGIT / "_" / "-")
  IP-address        = 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT
]]></artwork>
      <t>A single gateway serving a given distributed ledger system (network) can be represented as follows:</t>
      <artwork><![CDATA[
  location-segment  = gateway.trade.com:7542/trade-network
                      \____________________/ \___________/
                                 |                 |
                              endpoint          network
]]></artwork>
      <t>Multiple gateways serving a network can be represented as follows:</t>
      <artwork><![CDATA[
  location-segment  = gateway1.trade.com:7542;   \
                      gateway2.trade.com:7542;   |--gateway (endpoints)
                      gateway3.trade.com:7542    /
                      /trade-network
                       \___________/
                             |
                          network
]]></artwork>
      <t>Gateways serving a single well-known network can be represented as follows:</t>
      <artwork><![CDATA[
  location-segment  = gateway1.trade.com:7542;gateway2.trade.com:7542
                      \_____________________________________________/
                                             |
                                    gateway (endpoints)
]]></artwork>
      <t>The ledger-segment names either the ledger, if that ledger has a distinct identifier within the system, or a procedure to access a ledger, which represents a common set of facts shared by a subset of members of the network that maintains the distributed ledger. These subsets may overlap; i.e., certain nodes may maintain more than one ledger in the system. The procedure name can take the form of an identifier that represents, say, a decentralized application spanning certain nodes, or an explicit enumeration of the identifiers of the nodes themselves. The ledger segment syntax is as follows:</t>
      <artwork><![CDATA[
  ledger-segment = *1(
                      (ALPHA / "_")
                      1*(ALPHA / DIGIT / "_" / "-" / ";" / “:”)
                     )
]]></artwork>
      <t>The ledger-segment can be blank if the distributed ledger system has a single ledger. This is the norm in open blockchain systems like Bitcoin or the Ethereum Mainnet, and in private Ethereum-based systems like Quorum and Hyperledger Besu.</t>
      <t>Examples are as follows:</t>
      <artwork><![CDATA[
  ledger-segment = trade-channel
                   \___________/
                         |
                    ledger name

  ledger-segment = paymentsDapp
                   \___________/
                         |
                 procedure/app name

  ledger-segment = paymentsDappNode1:9005;paymentsDappNode2:9005
                   \____________________/ \____________________/
                              |                      |
                     procedure/app node     procedure/app node
]]></artwork>
      <t>The view-segment uniquely identifies a view within a ledger. Features particular to a distributed ledger technology will determine how to encode this segment, but we can draw out common abstractions across DLTs to create a generic specification. All such technologies offer a procedural interface to access and manipulate data, typically (but not always) in the form of a smart contract. The exposed interface offers multiple functions to generate views based on the provided input. Hence, we can specify the view-segment as being composed of a contract, a function, and a list of input arguments. In the most general case, a default contract may be assumed, and arguments may be unnecessary, and so these can be omitted. The function, which can either be a procedural identifier, or a direct reference to a data item or collection of data items, or a programming instruction, must be specified. The view-segment syntax is as follows:</t>
      <artwork><![CDATA[
  view-segment   = [contract-id] ":"
                   function-spec *(":" input-argument)
  contract-id    = (ALPHA / "_") 1*(ALPHA / DIGIT / "_")
  function-spec  = name
  input-argument = name
  name           = *HEXDIGIT ; hex-encoded ASCII string
]]></artwork>
      <t>An example of a view-segment for a Hyperledger Fabric ledger is:</t>
      <artwork><![CDATA[
  view-segment   = trade-chaincode:getBillOfLading:bill-10012
                   \_____________/ \_____________/ \________/
                           |               |            |
                       contract         function     argument
]]></artwork>
      <t>An example for a Corda ledger is:</t>
      <artwork><![CDATA[
  view-segment   = :com.trade.dapp.flows.GetDocumentByTypeAndId:C:5
                    \_________________________________________/ \_/
                                         |                       |
                                      function               arguments
]]></artwork>
      <t>An example of a complete view address is as follows:</t>
      <artwork><![CDATA[
  gw.trade.com:7542/traden/tradel/tradec:getBill:bill-10012
  \______________________/ \____/ \_______________________/
              |               |                |
      location-segment  ledger-segment    view-segment
]]></artwork>
    </section>
    <section anchor="ledger-state-view-verification-policies">
      <name>Ledger State View Verification Policies</name>
      <t anchor="view-verification-policies">A verification policy for a ledger state view is a set of rules that the proof within the view can be validated against (or filtered through). The condition embedded within a rule can be arbitrary, though in practice, it should embody the process by which that ledger’s state was updated and consented to in a decentralized manner by the network of peers maintaining it. In permissioned networks built on DLTs like Hyperledger Fabric or Corda, a policy typically requires evidence of attestations made by a sufficiently large, or representative, portion of the peer network maintaining the ledger. This takes the form of a set of signatures and is crucial to validating views generated by networks built on DLTs like Hyperledger Fabric and Corda. In open networks, we can envision policies that require validation of the view data being derived from a block in the longest chain, for example. But in this specification, we will consider only attestation-based policies and leave more general policies to future drafts.</t>
      <t>The structure of a verification policy is as follows:</t>
      <ul spacing="normal">
        <li>
          <t>Security Domain: a unique identifier for the distributed ledger system (or network maintaining it) projecting the ledger state view.</t>
        </li>
        <li>
          <t>Rules: a set of rules, each governing the validation of artifacts exposed through a particular category of views within the Security Domain.</t>
        </li>
      </ul>
      <t>Each Rule consists of the following:</t>
      <ul spacing="normal">
        <li>
          <t>View Pattern: a regular expression that can match a set of views.</t>
        </li>
        <li>
          <t>Policy: a policy rule/filter governing all views that match View Pattern.</t>
        </li>
      </ul>
      <t>Each Policy consists of the following:</t>
      <ul spacing="normal">
        <li>
          <t>Type: an identifier or flag denoting the type of this policy rule. For attestation-based policies, this should be set to “Signature”, and other identifiers can be created for other policy types in future drafts.</t>
        </li>
        <li>
          <t>Criteria: a Boolean expression with ANDs and ORs, where the principals consist of (1) the name of a DLT system unit/stakeholder (typically corresponding to a subset of nodes in the peer network), and (2) the number of signatures requires from this unit.</t>
        </li>
      </ul>
    </section>
    <section anchor="ledger-state-view-request">
      <name>Ledger State View Request</name>
      <t anchor="view-request">A view request is a message sent to a distributed ledger system by any external entity. It consists of the following:</t>
      <ul spacing="normal">
        <li>
          <t>View Address: uniquely identifies the data sought by the requester.</t>
        </li>
        <li>
          <t>Verification Policy: indicates the proof criteria for the requested view.</t>
        </li>
      </ul>
    </section>
    <section anchor="ledger-state-view-access-control-policies">
      <name>Ledger State View Access Control Policies</name>
      <t anchor="view-access-control-policies">An access control policy for a ledger state view is a set of rules governing the exposure of the view to an external entity. Each rule maps a set of principals to a set of views. The structure of an access control policy is as follows:</t>
      <ul spacing="normal">
        <li>
          <t>Security Domain: a unique identifier for the entity (which can be a distributed ledger system itself) requesting a ledger state view.</t>
        </li>
        <li>
          <t>Rules: a set of rules, each governing access from some entity within Security Domain to artifacts exposed through a particular category of views.</t>
        </li>
      </ul>
      <t>Each Rule consists of the following:</t>
      <ul spacing="normal">
        <li>
          <t>Principal: a string that can match a set of subjects or principals, which can represents an individuals or an organization or a subgroup within an organization identified by role or attribute set (profile).</t>
        </li>
        <li>
          <t>Principal Type: a keyword that denotes the nature of the principal.
This can be one of the following:
          </t>
          <ul spacing="normal">
            <li>
              <t>PUBLIC-KEY: indicates that the principal is a public key associated with an individual member of the Security Domain.</t>
            </li>
            <li>
              <t>CA: indicates that the principal is a certification authority for an organization within the Security Domain.</t>
            </li>
            <li>
              <t>ROLE: indicates that the principal identifies a role within the Security Domain.</t>
            </li>
            <li>
              <t>ATTRIBUTE: indicates that the principal identifies a set of attributes, or a profile for a member, within the Security Domain.</t>
            </li>
            <li>
              <t>‘*’: indicates that the principal can be any member of the Security Domain. The Principal can be left blank in this case.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Resource: a regular expression that can match a set of views, which identifies the objects governed by this rule.</t>
        </li>
        <li>
          <t>Read: a Boolean flag indicating whether this rule is currently active.</t>
        </li>
      </ul>
    </section>
    <section anchor="related-open-issues">
      <name>Related Open Issues</name>
      <t anchor="open-issues">This draft provides a specification for views and how to addresses them. It further describes a protocol whereby one system can request a view from another through gateways. But there are several aspects of the end to-end process, which are extraneous to the data sharing protocol yet crucial to its successful completion. Though detailed specifications of these are beyond the scope of this draft, we list them in this section for readers’ considerations.</t>
      <section anchor="forms-of-proof">
        <name>Forms of proof</name>
        <t anchor="open-issues-proof">Though we have tried to be agnostic of the nature of the proof associated with a view in this draft, the data sharing protocol implicitly assumes that the proof takes the form of a quorum of digital signatures from parties belonging to a permissioned distributed ledger system. But several other proof types can exist, each suitable to the type of system that is exporting a view and the technology stack and consensus mechanism it is built on <xref target="Naka08"/><xref target="Kiay16"/><xref target="Kiay17"/><xref target="PoS"/><xref target="PoET"/><xref target="PoA"/>.</t>
      </section>
      <section anchor="temporal-guarantees-of-view-authenticity">
        <name>Temporal guarantees of view authenticity</name>
        <t anchor="open-issues-temporal">The view address as specified in this draft has no temporal component, implicitly conveying a request for the latest or “freshest” state projection from a shared ledger. Even apart from expanding the specification of the view address to include, for example, an absolute or relative timestamp, we will need to augment the data sharing protocol with a mechanism to convey proof of temporal veracity of a view. Work done on verifiable observation of shared ledgers using a public bulletin board <xref target="Abebe21"/> can be taken as the starting point for such a specification.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FATF" target="http://www.fatf-gafi.org/publications/fatfrecommendations/documents/fatf-recommendations.html">
          <front>
            <title>International Standards on Combating Money Laundering and the Financing of Terrorism &amp; Proliferation - The FATF Recommendations</title>
            <author initials="" surname="FATF">
              <organization/>
            </author>
            <date year="2018" month="October"/>
          </front>
        </reference>
        <reference anchor="ISO" target="https://www.iso.org/standard/82208.html">
          <front>
            <title>Blockchain and distributed ledger technologies-Vocabulary (ISO:22739:2024)</title>
            <author initials="" surname="ISO">
              <organization/>
            </author>
            <date year="2024" month="January"/>
          </front>
        </reference>
        <reference anchor="NIST" target="https://doi.org/10.6028/NIST.IR.8202">
          <front>
            <title>NIST Blockchain Technology Overview (NISTR-8202)</title>
            <author initials="D." surname="Yaga">
              <organization/>
            </author>
            <author initials="P." surname="Mell">
              <organization/>
            </author>
            <author initials="N." surname="Roby">
              <organization/>
            </author>
            <author initials="K." surname="Scarfone">
              <organization/>
            </author>
            <date year="2018" month="October"/>
          </front>
        </reference>
        <reference anchor="RFC1630">
          <front>
            <title>Universal Resource Identifiers in WWW: A Unifying Syntax for the Expression of Names and Addresses of Objects on the Network as used in the World-Wide Web</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <date month="June" year="1994"/>
            <abstract>
              <t>This document defines the syntax used by the World-Wide Web initiative to encode the names and addresses of objects on the Internet. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1630"/>
          <seriesInfo name="DOI" value="10.17487/RFC1630"/>
        </reference>
        <reference anchor="RFC1738">
          <front>
            <title>Uniform Resource Locators (URL)</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <author fullname="M. McCahill" initials="M." surname="McCahill"/>
            <date month="December" year="1994"/>
            <abstract>
              <t>This document specifies a Uniform Resource Locator (URL), the syntax and semantics of formalized information for location and access of resources via the Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1738"/>
          <seriesInfo name="DOI" value="10.17487/RFC1738"/>
        </reference>
        <reference anchor="RFC2616">
          <front>
            <title>Hypertext Transfer Protocol -- HTTP/1.1</title>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="J. Gettys" initials="J." surname="Gettys"/>
            <author fullname="J. Mogul" initials="J." surname="Mogul"/>
            <author fullname="H. Frystyk" initials="H." surname="Frystyk"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <date month="June" year="1999"/>
            <abstract>
              <t>HTTP has been in use by the World-Wide Web global information initiative since 1990. This specification defines the protocol referred to as "HTTP/1.1", and is an update to RFC 2068. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2616"/>
          <seriesInfo name="DOI" value="10.17487/RFC2616"/>
        </reference>
        <reference anchor="SATA" target="https://datatracker.ietf.org/doc/draft-ietf-satp-architecture/">
          <front>
            <title>Secure Asset Transfer (SAT) Interoperability Architecture, IETF, draft-ietf-satp-architecture-08</title>
            <author initials="T." surname="Hardjono">
              <organization/>
            </author>
            <author initials="M." surname="Hargreaves">
              <organization/>
            </author>
            <author initials="N." surname="Smith">
              <organization/>
            </author>
            <author initials="V." surname="Ramakrishna">
              <organization/>
            </author>
            <date year="2025" month="July"/>
          </front>
        </reference>
        <reference anchor="SATP" target="https://datatracker.ietf.org/doc/draft-ietf-satp-core/">
          <front>
            <title>Secure Asset Transfer Protocol (SATP) Core, IETF, draft-ietf-satp-core-11</title>
            <author initials="M." surname="Hargreaves">
              <organization/>
            </author>
            <author initials="T." surname="Hardjono">
              <organization/>
            </author>
            <author initials="R." surname="Belchior">
              <organization/>
            </author>
            <author initials="V." surname="Ramakrishna">
              <organization/>
            </author>
            <author initials="A." surname="Chiriac">
              <organization/>
            </author>
            <date year="2025" month="August"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="Abebe21" target="https://arxiv.org/abs/2012.07339">
          <front>
            <title>Verifiable Observation of Permissioned Ledgers (ICBC 2021)</title>
            <author initials="E." surname="Abebe">
              <organization/>
            </author>
            <author initials="Y." surname="Hu">
              <organization/>
            </author>
            <author initials="A." surname="Irvin">
              <organization/>
            </author>
            <author initials="D." surname="Karunamoorthy">
              <organization/>
            </author>
            <author initials="V." surname="Pandit">
              <organization/>
            </author>
            <author initials="V." surname="Ramakrishna">
              <organization/>
            </author>
            <author initials="J." surname="Yu">
              <organization/>
            </author>
            <date year="2021" month="May"/>
          </front>
        </reference>
        <reference anchor="Andr18" target="https://arxiv.org/abs/1801.10228">
          <front>
            <title>Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains, EuroSys</title>
            <author initials="E." surname="Androulaki">
              <organization/>
            </author>
            <author initials="A." surname="Barger">
              <organization/>
            </author>
            <author initials="V." surname="Bortnikov">
              <organization/>
            </author>
            <author initials="C." surname="Cachin">
              <organization/>
            </author>
            <author initials="K." surname="Christidis">
              <organization/>
            </author>
            <author initials="A." surname="De Caro">
              <organization/>
            </author>
            <author initials="D." surname="Enyeart">
              <organization/>
            </author>
            <author initials="C." surname="Ferris">
              <organization/>
            </author>
            <author initials="G." surname="Laventman">
              <organization/>
            </author>
            <author initials="Y." surname="Manevich">
              <organization/>
            </author>
            <author initials="S." surname="Muralidharan">
              <organization/>
            </author>
            <author initials="C." surname="Murthy">
              <organization/>
            </author>
            <author initials="B." surname="Nguyen">
              <organization/>
            </author>
            <author initials="M." surname="Sethi">
              <organization/>
            </author>
            <author initials="G." surname="Singh">
              <organization/>
            </author>
            <author initials="K." surname="Smith">
              <organization/>
            </author>
            <author initials="A." surname="Sorniotti">
              <organization/>
            </author>
            <author initials="C." surname="Stathakopoulou">
              <organization/>
            </author>
            <author initials="M." surname="Vukolic">
              <organization/>
            </author>
            <author initials="S." surname="Weed Cocco">
              <organization/>
            </author>
            <author initials="J." surname="Yellick">
              <organization/>
            </author>
            <date year="2018" month="January"/>
          </front>
        </reference>
        <reference anchor="BVGC20" target="https://arxiv.org/abs/2005.14282v2">
          <front>
            <title>A Survey on Blockchain Interoperability: Past, Present, and Future Trends</title>
            <author initials="R." surname="Belchior">
              <organization/>
            </author>
            <author initials="A." surname="Vasconcelos">
              <organization/>
            </author>
            <author initials="S." surname="Guerreiro">
              <organization/>
            </author>
            <author initials="M." surname="Correia">
              <organization/>
            </author>
            <date year="2020" month="May"/>
          </front>
        </reference>
        <reference anchor="Clar88">
          <front>
            <title>The Design Philosophy of the DARPA Internet Protocols, ACM Computer Communication Review, Proc SIGCOMM 88, vol. 18, no. 4, pp. 106-114</title>
            <author initials="D." surname="Clark">
              <organization/>
            </author>
            <date year="1988" month="August"/>
          </front>
        </reference>
        <reference anchor="Ethe22" target="https://ethereum.org/en/whitepaper/">
          <front>
            <title>Ethereum whitepaper</title>
            <author>
              <organization/>
            </author>
            <date year="2022" month="September"/>
          </front>
        </reference>
        <reference anchor="Gray81">
          <front>
            <title>The Transaction Concept: Virtues and Limitations, in VLDB Proceedings of the 7th International Conference, Cannes, France, September 1981, pp. 144-154</title>
            <author initials="J." surname="Gray">
              <organization/>
            </author>
            <date year="1981" month="September"/>
          </front>
        </reference>
        <reference anchor="Hear19" target="https://docs.r3.com/en/pdf/corda-technical-whitepaper.pdf">
          <front>
            <title>Corda: A Distributed Ledger</title>
            <author initials="M." surname="Hearn">
              <organization/>
            </author>
            <author initials="R. G." surname="Brown">
              <organization/>
            </author>
            <date year="2019" month="August"/>
          </front>
        </reference>
        <reference anchor="Herl19" target="https://doi.org/10.1145/3209623">
          <front>
            <title>Blockchains from a Distributed Computing Perspective, Communications of the ACM, vol. 62, no. 2, pp. 78-85</title>
            <author initials="M." surname="Herlihy">
              <organization/>
            </author>
            <date year="2019" month="February"/>
          </front>
        </reference>
        <reference anchor="HLP19" target="https://ieeexplore.ieee.org/document/8743548">
          <front>
            <title>Towards an Interoperability Architecture for Blockchain Autonomous Systems, IEEE Transactions on Engineering Management</title>
            <author initials="T." surname="Hardjono">
              <organization/>
            </author>
            <author initials="A." surname="Lipton">
              <organization/>
            </author>
            <author initials="A." surname="Pentland">
              <organization/>
            </author>
            <date year="2019" month="June"/>
          </front>
        </reference>
        <reference anchor="HS2019" target="https://doi.org/10.3389/fbloc.2019.00024">
          <front>
            <title>Decentralized Trusted Computing Base for Blockchain Infrastructure Security, Frontiers Journal, Special Issue on Blockchain Technology, Vol. 2, No. 24</title>
            <author initials="T." surname="Hardjono">
              <organization/>
            </author>
            <author initials="N." surname="Smith">
              <organization/>
            </author>
            <date year="2019" month="December"/>
          </front>
        </reference>
        <reference anchor="Kiay16">
          <front>
            <title>Proofs of proofs of work with sublinear complexity, International Conference on Financial Cryptography and Data Security, pages 61–78, Springer</title>
            <author initials="A." surname="Kiayias">
              <organization/>
            </author>
            <author initials="N." surname="Lamprou">
              <organization/>
            </author>
            <author initials="A." surname="Stouka">
              <organization/>
            </author>
            <date year="2016"/>
          </front>
        </reference>
        <reference anchor="Kiay17" target="https://eprint.iacr.org/2017/963">
          <front>
            <title>Non-Interactive Proofs of Proof-of-Work, Cryptology ePrint Archive, Paper 2017/963</title>
            <author initials="A." surname="Kiayias">
              <organization/>
            </author>
            <author initials="A." surname="Miller">
              <organization/>
            </author>
            <author initials="D." surname="Zindros">
              <organization/>
            </author>
            <date year="2017" month="September"/>
          </front>
        </reference>
        <reference anchor="Naka08" target="https://bitcoin.org/bitcoin.pdf">
          <front>
            <title>Bitcoin: A Peer-to-Peer Electronic Cash System, Decentralized Business Review</title>
            <author initials="S." surname="Nakamoto">
              <organization/>
            </author>
            <date year="2008" month="October"/>
          </front>
        </reference>
        <reference anchor="PoA" target="https://www.coindesk.com/learn/what-is-proof-of-authority/">
          <front>
            <title>What Is Proof-of-Authority? Understanding PoA Consensus Mechanisms, CoinDesk</title>
            <author initials="M." surname="Antolin">
              <organization/>
            </author>
            <date year="2022" month="June"/>
          </front>
        </reference>
        <reference anchor="PoET" target="https://eprint.iacr.org/2021/086">
          <front>
            <title>On Elapsed Time Consensus Protocols, Cryptology ePrint Archive, Paper 2021/086</title>
            <author initials="M." surname="Bowman">
              <organization/>
            </author>
            <author initials="D." surname="Das">
              <organization/>
            </author>
            <author initials="A." surname="Mandal">
              <organization/>
            </author>
            <author initials="H." surname="Montgomery">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="PoS" target="https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/">
          <front>
            <title>Proof-of-Stake (PoS) | ethereum.org</title>
            <author>
              <organization/>
            </author>
            <date year="2022" month="September"/>
          </front>
        </reference>
        <reference anchor="SRC84">
          <front>
            <title>End-to-End Arguments in System Design, ACM Transactions on Computer Systems, vol. 2, no. 4, pp. 277-288</title>
            <author initials="J." surname="Saltzer">
              <organization/>
            </author>
            <author initials="D." surname="Reed">
              <organization/>
            </author>
            <author initials="D." surname="Clark">
              <organization/>
            </author>
            <date year="1984" month="November"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+192XIb2ZXgO78iQ45pkR4AXKQqsVjhGJMUpaJLC1tkqezu
nnBcABdAmolMOBdSKFkR9Q/9MhPh/rn6kj7rXTITEOXlYSKGYZdIIPMu5559
u8PhcGenqk0+/aPJityeJGtb7azSk50kKWcTO63qdSafJkldTIJf03xq8zr4
YGpX9eIkeQp/VUVZl3ZW6bfVehn9WZfpxL06KZZLGMl9m+ZZmvtJ7Yd6mKVV
PYRBxkUGjxXDX/9Pfm9l/DBVM3af5MXOTp3WuPRrO2lKm5xWla2Tiw+Thcnn
NrkqC1hxke2Y8bi0d/DY6U3rmZ1pMcnNEoaYlmZWD0uzNLdlWi1yM6xMvRre
pfa+GprptLTwYjU8+GpnYmo7L8r1CWxiBmtIV+VJUpdNVR8dHHxzcLRjSmtO
kkenq1WWwsNpkVcJQD95Z002vEmX9tHOfVHezsuiWcFz0eJvSpNXM1u6xT/C
s4MBlyfJ5cXNi51bu4aXp/BXXtsyt/XwOa58ZwKz2LxqKlqL3dm5s3lj8Ywf
Og8cw3oFkHj0IywuzefJS3wRP1+aNIPPASC/TW09GxXlHD825QRQ4dGirlfV
yf4+PoUfpXd2pI/t4wf747K4r+w+vL+P783TetGM4U18isC8/zDo48sZQL+q
g2ndICMed5QWDxzugY+NFvUSj8E09aIoEaJD+D+iMMD6/Sh559+nzxmf3tv8
1tQ4dt55AgBj8vQnQg04yLPXgBqVRVDR15bhfccLO/ptmo/S8XIEiN+Z+wrw
Kq3DadPcrM2tCb952HSrO35143QXo+R0bMc2mO2iXK5NFXwcT3XOOLmuwnks
vTMy+M5vJ/rECDA5nu56lLwBkJlpMN81bMraVfjFwzZX8YujnF48/G3vBr+H
GU0JMIDJgkm/55OrmjJtff+wuW9zeulJCNgdZB3lEt68IxolCB4dntB7HtFg
eT2wl8/+MEq+a8IPTkfJZQmnGH72fJR8b8oGVlwAu16sw+9i/BluRGj55nej
5A883xRo8CR5bdbJ0cHRIX1Um3JugSyVKk35Ib1jDjCu9o8ODo9GB8+ePPmG
H2au/d6W6Sw148wmb8eVLe8IkEkxS64ASdKqgr/sNHllp3NbVsnu5fnZOc24
hxDLp+Xh8VaAwRNFk5nbtAWkM1xr2dr0GYAnT2+Lu/Dz81FyboCjRSAFNDlf
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

-->

</rfc>
