<?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-06" 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 Views and View Addresses">Views and View Addresses for Secure Asset Transfer</title>
    <seriesInfo name="Internet-Draft" value="draft-ramakrishna-satp-views-addresses-06"/>
    <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="15"/>
    <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+192XIb2ZXgO78iQ47pIj0AuEglsVjhGJMUpaJLC1tkqezu
nnBcABdAmolMOBdSKFkR9Q/9MhPh/rn6kj7rXTITEOXlYSKGYZdIIPMu5559
u8PhcGenqk0+/aPJityeJGtb7azSk50kKWcTO63qdSafJkldTIJf03xq8zr4
YGpX9eIkeQJ/VUVZl3ZW6bfVehn9WZfpxL06KZZLGMl9m+ZZmvtJ7Yd6mKVV
PYRBxkUGjxXDX/9Pfm9l/DBVM3af5MXOTp3WuPT3qb2vEtgh/ZacTqelrSpb
JbOiTK7tpCltcgof1MlNafJqZssdMx6X9u4kuT692fj6zrSY5GYJE0xLM6uH
pVma2zKtFrkZVqZeDe/wxaHR54cHT3cmprbzolyfwBZnsMJ0VZ4kddlU9dHB
wTcHRzumtOYkeXS6WmUpPJwWOU/9zppseJMu7aOd+6K8nZdFs4LnelefXJUF
HEaRPcKThQGXJ8nlxc2LnVu7hpen8Fde2zK39fA5rnxnArPYvGoqWovd2bmz
eWMRAx46DxzSegWQePQjLC7N58lLfBE/X5o0g88BIL9NbT0bFeUcPzblBBDl
0aKuV9XJ/j4+hR+ld3akj+3jB/vjsriv7D68v4/vzdN60YzhTXyKwLz/MOjj
yxlAv6qDad0gIx53lBYPHO6Bj40W9RKPwTT1oigRokP4PyI4wPr9KHnn36fP
GZ/e2/zW1Dh23nkCAGPy9CdCDTjIs9eAGpVFUNHXluF9xws7+m2aj9LxcgRk
0Zn7CvAqrcNp09ysza0Jv3nYdKs7fnXjdBej5HRsxzaY7aJcrk0VfBxPdc44
ua7CeSy9MzL4zm8n+sQIMDme7nqUvAGQmWkw3zVsytpV+MXDNlfxi6OcXjz8
be8Gv4cZTQkwgMmCSb/nk6uaMm19/7C5b3N66XEI2B1kHeUS3rwjGiUIHh2e
0Hse0WB5PbCXz/4wSr5rwg9OR8llCacYfvZ8lHxvygZWXAAzX6zD72L8GW5E
aPnmd6PkDzzfFGjwJHlt1snRwdEhfVSbcm6BLJUqTfkhvWMOMK72jw4Oj0YH
zx4//oYfFp5uy3SWmnFmk7fjypZ3BMikmCVXgCRpVcFfdpq8stO5Latk9/L8
7Jxm3EOI5dPy8HgrwOCJosnMbdoC0hmutWxt+gzAk6e3xV34+fkoOTfA0SKQ
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

-->

</rfc>
