<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml2rfc.tools.ietf.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references.c.m.d.i.p.t.. -->

<!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC3552 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY RFC2234 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2234.xml">
<!ENTITY RFC5939 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5939.xml">
<!ENTITY RFC7519 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7519.xml">
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml2rfc.tools.ietf.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-chen-dlt-gateway-identification-01" ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters -->

    <title abbrev="SATP Gateway">Gateway Identification and Discovery</title>
	<author fullname="Shiping Chen" initials="S" surname="Chen">
      <organization>CSIRO Data61</organization>
      <address>
        <email>shiping.chen@data61.csiro.au</email>
      </address>
    </author>

    <author fullname="Thomas Hardjono" initials="T" surname="Hardjono">
      <organization>MIT</organization>
      <address>
        <email>hardjono@mit.edu</email>
      </address>
    </author>

	<author fullname="Qin Wang" initials="Q" surname="Wang">
	  <organization>CSIRO Data61</organization>
	  <address>
		<email>qin.Wang@data61.csiro.au</email>
	  </address>
	</author>

    <date day="15" month="August" year="2022"/>

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
         in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>General</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>template</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
	<t>
		<xref target="SATP"/> is a secure asset transfer protocol that operates between two
		gateways. This memo describes requirements,
		standards and architectural options that can be considered to identify,
		discover and verify gateways before transferring secure digital
		assets via SATP.
	</t>
    </abstract>
  </front>

  <middle>

    <!-- START SECTION -->
	<section anchor="Section 1" title="Introduction">

	<t>
		Currently there is a growth in the number of blockchain and distributed
		ledger technology (DLT) systems being deployed worldwide for different
		areas of applications (e.g., finance, supply chains, IoT devices, etc.).
		One notable application is in the area of digital assets (or virtual
		assets) <xref target="FATF"/>.
	</t>

	<t>
		As independent autonomous systems, each decentralized ledger network (DLN)
		employs its own interior protocols (e.g. consensus protocols) that manages
		the resources (e.g., shared ledger) relevant to the assets and entities in
		that network. Key to the success of the blockchain and DLT paradigm is the
		interoperability between DLNs, permitting digital assets to be moved across
		DLNs in an efficient and secure manner.
	</t>

	<t>
		For the purposes of asset transfers across DLNs, one or more nodes within
		a DLN can take-on the role of a gateway that peers with other gateways
		belonging to other DLNs <xref target="ARCH"/>. As a node participating in a blockchain,
		a gateway has access to the resources (e.g., ledger) located in the interior
		of that blockchain. Facing outbound, the gateway has the ability to peer with
		matching gateways to facilitate asset transfers
	</t>

	<t>
		A core requirement for the gateway-to-gateway protocol <xref target="SATP"/>
		employed by peered gateways is the correct identification of the systems
		that act as gateways, the efficient look-up/discovery of the required
		gateway on demand, and the correct validation of the ownership of the
		discovered gateway.
	</t>

	<t>
		This memo is to identify the key security requirements for a trustworthy gateway.
		Based on the requirements, decentralised identification description <xref target="DiD"/> standard
		is selected to describe a gateway as its identifier. Then, architectural options
		are presented to showcase how to use the decentralised gateway identifier for
		gateway discovery and verification.
	</t>

	</section>
    <!-- END SECTION -->


    <!-- START SECTION -->
	<section anchor="Section 2" title="Conventions used in this document">
	
	<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
	"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" 
	in this document are to be interpreted as described in RFC 2119 [RFC2119].</t>

	<t>In this document, these words will appear with that interpretation
	only when in ALL CAPS. Lower case uses of these words are not to be
	interpreted as carrying significance described in RFC 2119. </t>
		
	</section>
    <!-- END SECTION -->

    <!-- START SECTION -->
	<section anchor="Section 3" title="Terminology">

	<t>The following are some terminology used in the current document. 
	Further terminology can be found in [Arch].</t>

	<t><list style="symbols">
		<t>
			Decentralized ledger network (DLN): A blockchain system or
			an implementation of a decentralized ledger technology (DLT)
			consisting nodes that shares a common set of resources. This
			term is used generically to refer to the collection of nodes
			as an autonomous system (AS).
		</t>

		<t>
			DLN identification number: This is the unique network
			identification for a DLN. This is akin to the AS-number issued
			by ARIN in North America for autonomous systems operated
			by Internet Service Providers (ISP).
		</t>

		<t>
			Device identity: This is the unique public-private key
			pair that is bound to the device (e.g. hardware) of the gateway.
			Examples include the IEEE 802.1AR Secure Device Identity [DevID]
			and the TPM EK/AIK key pair [TPM]. The device identity public
			key may be represented using an X.509 certificate.
		</t>

		<t>
			Gateway service endpoint: The URL or URI at the gateway
			device that provides gateway related services, such as asset
			transfer/migration services. See <xref target="SATP"/>
			for details about secure asset transfer protocol.
		</t>

		<t>
			Service endpoint identity: This is the unique public-private
			key pair bound to the protocol service end-point of the gateway function.
			This key-pair is used in the establishment of a secure channel with
			a peer gateway (e.g., TLS). The endpoint identity public key should be
			represented using an X.509 certificate, which unambiguously states
			the purpose of the endpoint.
		</t>

		<t>
			Owner identity: This is the unique public-private key pair of
			the entity who legally owns and operates the gateway. For clarity
			this entity is referred to as a virtual asset service provider (VASP).
			The VASP identity public key should be represented using an X.509 certificate,
			possibly including extended fields such as those found in Extended Validation
			(EV) X.509 certificates [CAB].
		</t>

		<t>
			Organization identity: This is a Legal Entity Identifier [LEI] or other
			identifier linking resource ownership to real world entity. Any  schema for
			identifying DLT Gateway owners may be implemented , such as LEI Directory,
			closed group memberships, SWIFT BIC, etc.
		</t>

		<t>
			Decentralised identifiers (DiD): is a type of identifier that enables
			a verifiable, decentralized digital identity. DiD consists of an unique
			identifier string associated with a identifier documents, in which all
			required properties can be described in a key-value style.
		</t>

	</list></t>

	</section>
    <!-- END SECTION -->

    <!-- SECTION -->
	<section anchor="Section 4" title="Gateway Identification">
   		 <!-- SUBSECTION -->
		<section anchor="Section 4.1" title="Requirements">

			<t>
			In the context of a digital asset transfer, a gateway identification, discovery
			and verification solution consists of mechanisms that permit a local gateway to
			obtain assurance that a given remote device is a gateway with a verifiable identity
			and ownership. That is, it needs to obtain assurance that
				(a) the device is a genesis and trusted computer system with proper security settings;
				(b) is operating as a gateway for a designated blockchain or
				decentralized ledger network (DLN) and
				(c) is owned by an entity operating under the relevant jurisdiction in the context of
			the digital asset in question.
			In the other word, the gateway identification should provide enough information to enable
			the above assurance verification at both application and network layers:
			</t>

			<t><list style="symbols">
				<t>
					Application layer: At the application layer a gateway identification scheme
					is needed that permits a legal organization who participates in a given DLN to declare
					(advertise) one or more gateways into that DLN. This permits organizations to
					establish peering agreements (contracts) based on the asset type, DLN and jurisdictions,
					identifying (specifying) the gateways that will be used to connect to the DLN.
				</t>

				<t>
					Network layer: In order for asset transfer services to scale-up, some degree
					of automation is needed for a gateway to discover peer gateways in remote DLN.
					This discovery must be efficient in order to minimize the time required for a
					digital asset from an originator in an origin DLN to be transferred cross-chain
					to the beneficiary in the destination DLN (see [SATP]).
				</t>
			</list></t>



		</section>

		<section anchor="Section 4.2" title="DiD for Gateway Identification">

			<t>
				Since the gateways are used to transfer digital assets across DLNs, they must have
				an unique identifier, which is discoverable globally or within a specific consortium,
				e.g. [SWIFT].  In addition, They also must provide enough verifiable business and security
				settings at both application and network level for them to verify and trust each other
				to ensure the security and legal compliance of the asset transfer.
			</t>

			<t>
				According to the above requirement analysis, there is a need for a data container
				used to host a collection of identification and security settings at both application
				and network (device) layers. DiD is a natural technology to meet the requirement.
				Applying DiD for gateway identification and verification is shown in Figure 1.
			</t>

			<figure align="center" anchor="Applying DiD for Gateway Identification">
			<artwork><![CDATA[

             +--------------+
             |    DiD Doc   |------------------>did:Gateway:123xyz
             +--------------+                         |
                     ^                                |
                     |                                |
                     |                                |
                     |                                V
             +---------------+                  +-----------+
             | Gateway Owner |----------------->|  Gateway  |
             +---------------+                  +-----------+

			]]></artwork>
      		</figure>

			<t>
				The gateway identification must include (but not limited) the following verifiable
				identification information for authentication and secure channel establishment for
				secure asset transfer:
				<list style="symbols">

					<t>
						Authentication: The gateway must be owned/operated by a legal business entity
						registered with the local authority. The registration should be verifiable via
						3rd-party services and/or trustworthy decentralized business directories, using
						standard identification schema, such as [LEI].
					</t>

					<t>
						Authorization: The gateway owner must be issued with a license/certificate as
						authorized approval to provide virtual assets transfer services as a gateway
						from the corresponding blockchain foundation/authority, and register the
						services with well-known business directories (e.g., VASP).
					</t>

					<t>
						Service: DiD document must include a complete service endpoint URI, or the necessary
						information used to construct such a URI, like SATP URI. In addition,  the service
						endpoint identity public key should be represented using an X.509 certificate for
						establishing a secure channel between the two gateway peers (e.g., TLS). Optionally,
						some service-specific settings may be included here, such as a storage URI for SATP logging.
					</t>

					<t>
						Device: Optionally, a gateway may be implemented in computer systems with a secure processor
						(TPM) [ISO/IEC 11889] or secure enclave (e.g., SGX) for assurance of device-level security.
						The Did document may include such information for remote attestation of the device
						security setting.
					</t>
				</list>
			</t>

			<figure align="center" anchor="A DiD gateway example">
				<artwork><![CDATA[

did:Gateway:123xyz
{
      "@context": [
         "https://www.w3.org/ns/did/v1",
         "https://w3id.org/security/suites/ed25519-2020/v1"
      ]

      "id": "did:GatewayExample:123xyz
      "authentication": [{
         "id": "5493-00-84UKLVMY22DS-16",
         "type": "LEI",
         ......
      }]

      "Authorization": [{
         "id": "abc-123",
         "type": "VASP",
         ......
      }]

       "Service": [{
         "end-point": "satres://..........",
         "type": "SATP"
         ......
      }]
}

			]]></artwork>
			</figure>


		</section>
   		 <!-- SUBSECTION -->
	</section>


	  <section anchor="Section 5" title="Gateway Registration and Discovery">

		<t>
			In this section, an overall architecture is proposed to support the gateway
			registration and discovery. Three implementation options are discussed.
			The basic CURD operations that a DiD repository must implement are provided.
		</t>

		<section anchor="Section 5.1" title="Architecture">

			<t>
				A given asset service provider may possess multiple nodes within one
				or more DLNs. No matter what consensus model is applied in a DLN,
				it is desirable that the DLN has one or more gateways capable of
				participating in an asset transfer between two DLNs. As such,
				there must be some mechanism that permits these gateway owners
				to declare their DiD as a gateway into a given DLN.
			</t>

			<t>
				To make a gateway widely discoverable, the gateway owner should follow
				the common Publish/Lookup design pattern [UDDI] by registering the
				gateway's DiD with a public DiD repository for other gateways or
				applications to look up. The process is shown in Figure 3.
			</t>
			<figure align="center" anchor="Gateway Registration and Discovery">
				<artwork><![CDATA[
                        +----------------+
      2. Lookup +------>| DiD Repository |<------+ 1. Register
                |       +----------------+       |
                |                                |
                |                                |
 +------+    +-----+    3. Mutual Verify      +-----+    +------+
 | DLN1 |--->| GW1 |<------------------------>| GW2 |--->| DLN2 |
 +------+    +-----+    4. SATP Transfer      +-----+    +------+

			]]></artwork>
			</figure>

			<t>
				First of all, GW2 registers its DiD with the DiD Repository as shown
				Step 1 in Figure 3. When another gateway (GW1) wants to transfer digital assets
				from DLN1 to DLN2, GW1 can discover GW2 by querying its DiD from the DiD repository
				as shown Step 2 in Figure 3. With the resolved DiD of GW2, GW1 can request a mutual
				verification with GW2 by sending its DiD string as shown Step 3 in Figure 3.
				Once GW1 and GW2 establish a trusted channel after passing all verification,
				they can start a SATP asset transfer as shown Step 4 in Figure 3.
			</t>

			<t>
				This discovery and verification processes must be automated as far as possible,
				and discovery should not require human intervention. If a directory
				of gateways is available, then it should be utilized by both GW1 and GW2.
			</t>
		</section>

	  <section anchor="Section 5.2" title="Gateway DiD Repository Implementation">
		  <t>
			  A public DiD repository can be implemented using one of the following
			  system architectures:
			  <list style="symbols">
				  <t>
					  Centralized client/server architecture: It is a mature system architecture
					  and can be easily implemented. The disadvantage of this architecture is
					  that all users have to trust the centralized server, which violates
					  the design principle of DiD.
				  </t>
				  <t>
					  Decentralized Ledger: A nature implementation is to use blockchain/DLN directly.
					  There have already such implementations under development, such as <xref target="SOVRIN"/>
					  and <xref target="BTCR"/>.
				  </t>
				  <t>
					  DNS - Domain Naming Service <xref target="RFC2181"/>: can be leveraged and/or extended to support
					  DiD registration and discovery. These gateways can even form a DNS-like distributed
					  DiD repository system to enable gateway registration and discovery by themselves.
				  </t>
			  </list>
		  </t>

		 <t>
			 No matter which above architecture to be adopted, the DiD repository service
			 must support the basic CRUD operations via standard API or SDK as follows:

		  <list style="symbols">
			  <t>
				  Create (Register): The DiD repository system must specify
				  how a client creates a DID record in the repository.
				  <list style="symbols">
					  <t>
						  Input: A DiD string with its associated document
					  </t>
					  <t>
						  Output: A DiD record created in the repository if successful
					  </t>
				  </list>
				  To do so, the DiD repository system must conduct all cryptographic
				  and non-cryptographic operations to ensure the correctness and
				  ownership of the DiD to register. In addition, DiD repository may
				  design and add specific metadata attached to a DiD record to help
				  a particular class of clients easily to query a particular gateway,
				  such as "Gateways for Bitcoin" or "ateways for Bitcoin for clients
				  in Asia-Pacific".
			  </t>

			  <t>
				  Read (Resolver): Given a DiD string, the DiD repository must be able
				  to resolve the DiD string by returning a valid DiD document if the DiD string
				  is valid.
				  <list style="symbols">
					  <t>
						  Input: A DiD string
					  </t>
					  <t>
						  Output: its corresponding DiD document if successful
					  </t>
				  </list>
				  Due to the verity of the ways to obtain a DiD string, how to look up
				  a DiD string is beyond of this memo.
			  </t>

			  <t>
				  Update (Reversion): From time to time, a gateway owner may want to update
				  its gateway, e.g. add a new service. As a result, the DiD repository system
				  should allow the gateway owner to update its existing DiD, subject to passing
				  the required security verification:
				  <list style="symbols">
					  <t>
						  Input: A DiD string with a new DiD document or a set of attributes to update
					  </t>
					  <t>
						  Output: The existing DiD record is updated or a reversion is created
					  </t>
				  </list>
				  Note that due to the immutability of blockchain/DLT, a reversion of the DiD
				  to be updated may be created, instead of updating, for a decentralized implementation.
			  </t>

			  <t>
				  Delete (Revoke): a DiD repository must also allow a gateway owner to delete/revoke
				  its existing DiD. While implementations may be different for different architectures,
				  the DiD repository must ensure the DiD will never be used once being deleted although
				  the record cannot be deleted persistently.
			  </t>
		  </list>
		 </t>
		  <t>
			  There are a few on-going projects in developing such decentralised DiD repository systems,
			  e.g., <xref target="TVDR"/>
		  </t>
	  </section>
	  </section>

	  <section anchor="Verification" title="Gateway Verification">
		  <t>
			  Once a gateway (DW1) obtains another gateway (DW2)'s DiD, it
			  can initialize a session with its gateway peer for mutual verification.
			  The high-level process/protocol is presented in Figure 4.
		  </t>

		  <figure align="center" anchor="Gateway Verification Protocol">
			  <artwork><![CDATA[
 +------+    +-----+    +----------------+    +-----+    +------+
 | DLN1 |    | GW1 |    | DiD Repository |    | GW2 |    | DLN2 |
 +---+--+    +--+--+    +--------+-------+    +--+--+    +---+--+
     |-----1--->|                |               |          |
     |          +---------2----->|               |          |
     |          |<--------3------+               |          |
     |          |                |               |          |
     |          |----------------4-------------->|          |
     |          |                |<-------5------+          |
     |          |                +--------6----->|          |
     |          |                |               |          |
     |          |<-------7-----------------------|          |
     |          |-------------------------8----->|          |
     |          |             ......             |          |
     |          |                                +----9---->|
     |          |<-------10----------------------+          |
			]]></artwork>
		  </figure>

		  <t>
			  <list style="numbers">
				  <t>
					  DLN1: request to transfer an asset to an address with DLN2
				  </t>
				  <t>
					  DW1: request for DLN2's DiD Doc from the DiD Repository
				  </t>
				  <t>
					  DiD Repository: resolve and return DLN2's DiD Doc
				  </t>
				  <t>
					  DW1: after passing DLN2's DiD verification, request for a mutual verification by sending itself DiD string
				  </t>
				  <t>
					  DW2: request for DLN2's DiD Doc from the DiD Repository
				  </t>
				  <t>
					  DiD Repository: resolve and return DLN1's DiD Doc
				  </t>
				  <t>
					  DW2: Send ACK if passing DLN1's DiD verification
				  </t>
				  <t>
					  DW1: start a SATP tranfer
				  </t>
				  <t>
					  DW2: If everything is OK, write/mint the transferred asset to DLN2
				  </t>
				  <t>
					  DW2: send ACK to notify DW1
				  </t>
			  </list>
		  </t>
		  <t>
			  Note that the above protocol has been simplified. The actual verification process
			  may involve one or more the trusted 3rd-part to help verify some of the business
			  qualifications and security capabilities defined in the DiD docs. And
			  there are more than one interactions between DW1 and DW2 according to the transfer
			  type and SATP protocol.
		  </t>
	  </section>

		<section anchor="Security" title="Security Consideration">
			<t>
				In addition to the basic security setting mentioned above,
				the following technologies can also be considered as either
				enhancement or alternatives of security settings:
			</t>
			<t><list style="symbols">
				<t>
					HTTPS/TLS: Whenever using HTTP [RFC2616] for the protocol
					execution, HTTPS/TLS [RFC2660] must be enabled by default
					against eavesdropping attack.
				</t>
				<t>
					DNSSEC: is a set of extensions to DNS that uses asymmetric
					cryptography to provide origin authentication and integrity
					checking for DNS data [RFC2535]. DNSSEC ensures not just
					the origin of the DNS record, but also its integrity, which
					thus enhances the security and trust of the blockchain gateway
					queries if adopting DNSSEC.
				</t>
				<t>
					Trusted hardware and attestations: Gateways may be implemented
					in computer systems possessing a secure processor (e.g., TPM)
					[ISO/IEC 11889] or secure enclave (e.g., SGX). For example,
					server machines can store security keys and conducts common security
					operations for hardware authentication and authorization. The use of
					device-unique public key pairs bound to these types of trusted hardware,
					coupled with their attestation capabilities, may significantly
					enhance the security and trust between the gateways to conduct
					blockchain asset transfer services collaboratively.
				</t>

				<t>
					Given the important roles that the DLNs? gateways will play,
					their IP address should be regarded as ASN (Autonomous System Number)
					and assigned by IANA's RIRs (Regional Internet Registries), such as ARIN
					(the American Registry for Internet Numbers) and dedicated to DLN gateway
					servers. This will greatly enhance the security and trust of the BGSP's
					services, due to the high bar to secure an ASN.
				</t>
			</list></t>
	</section><!-- END SECTION -->
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->


	<references title="Normative References">
	
      <!--?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
      	&RFC2119;
		&RFC2234;
		&RFC7519;

		<reference anchor="RFC2181" target="https://datatracker.ietf.org/doc/rfc2181/">
			<front>
				<title>Clarifications to the DNS Specification</title>
				<author initials="R" surname="Elz"></author>
				<author initials="R" surname="Bush"></author>
				<date day="01" month="March" year="2021"/>
			</front>
		</reference>

		<reference anchor="RFC2616" target="https://www.ietf.org/rfc/rfc2616.txt">
			<front>
				<title>Hypertext Transfer Protocol -- HTTP/1.1</title>
				<author initials="R" surname="Fielding"></author>
				<author initials="J" surname="Mogul"></author>
				<author initials="L" surname="MMasinter"></author>
				<author initials="T" surname="Berners-Lee"></author>
				<date day="01" month="June" year="1999"/>
			</front>
		</reference>

		<reference anchor="RFC2660" target="https://datatracker.ietf.org/doc/html/rfc2660">
			<front>
				<title>Clarifications to the DNS Specification</title>
				<author initials="E" surname="Rescorla"></author>
				<author initials="A" surname="Schiffman"></author>
				<date day="01" month="August" year="1999"/>
			</front>
		</reference>

		<reference anchor="RFC4033" target="https://datatracker.ietf.org/doc/html/rfc4033">
			<front>
				<title>DNS Security Introduction and Requirements</title>
				<author initials="R" surname="Arends"></author>
				<author initials="R" surname="Austein"></author>
				<author initials="M" surname="Larson"></author>
				<author initials="D" surname="Massey"></author>
				<author initials="S" surname="Rose"></author>
				<date day="01" month="March" year="2005"/>
			</front>
		</reference>

		<reference anchor="RFC2535" target="https://datatracker.ietf.org/doc/html/rfc2535">
			<front>
				<title>Domain Name System Security Extensions</title>
				<author initials="D" surname="Eastlake"></author>
				<date day="01" month="March" year="2005"/>
			</front>
		</reference>

		<reference anchor="DiD" target="https://www.w3.org/TR/did-core/">
			<front>
				<title>Decentralized Identifiers (DIDs) v1.0</title>
				<author initials="M" surname="Sporny"></author>
				<author initials="D" surname="Longley"></author>
				<author initials="M" surname="Sabadello"></author>
				<author initials="D" surname="Reed"></author>
				<author initials="O" surname="Steele"></author>
				<author initials="C" surname="Allen"></author>
				<date day="19" month="July" year="2022"/>
			</front>
		</reference>

		<reference anchor="UDDI" target="https://www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm#uddiv3">
			<front>
				<title>UDDI Version 3.0.2, published by OASIS</title>
				<author initials="L" surname="Clement"></author>
				<author initials="A" surname="Hately"></author>
				<author initials="C" surname="Riegen"></author>
				<author initials="T" surname="Rogers"></author>
				<date day="19" month="Oct" year="2004"/>
			</front>
		</reference>

	</references>

	<references title="Informative References">

		<reference anchor="SATP" target="https://datatracker.ietf.org/doc/draft-hargreaves-sat-core/">
			<front>
				<title>Secure Asset Transfer Protocol</title>
				<author initials="Q." surname="Hargreaves"> </author>
				<author initials="T." surname="Hardjono">	</author>
				<author initials="R." surname="Belchior">	</author>
				<date day="2" month="May" year="2022"/>
			</front>
		</reference>

		<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 and Proliferation - The FATF Recommendations
				</title>
				<author initials="" surname="FATF"> </author>
				<date day="" month="March" year="2022"/>
			</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">		</author>
			<author initials="P." surname="Mell">		</author>
			<author initials="N." surname="Roby">		</author>
			<author initials="K." surname="Scarfone">		</author>
			<date day="" month="October" year="2018"/>
		</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, Sepcial Issue on Blockchain Technology, Vol. 2, No. 24</title>
			<author initials="T." surname="Hardjono">		</author>
			<author initials="N." surname="Smith">			</author>
			<date day="" month="December" year="2019"/>
		</front>
		</reference>

      	<reference anchor="ARCH" target="https://datatracker.ietf.org/doc/draft-hardjono-blockchain-interop-arch/">
		<front>
			<title>An Interoperability Architecture for Blockchain Gateways. draft-hardjono-blockchain-interop-arch-02</title>
			<author initials="T." surname="Hardjono">	</author>
			<author initials="M." surname="Hargreaves">		</author>
			<author initials="N." surname="Smith">		</author>
			<date day="21" month="April" year="2021"/>
		</front>
		</reference>



		<reference anchor="SOVRIN" target="https://sovrin-foundation.github.io/sovrin/spec/did-method-spec-template.html">
			<front>
				<title>Clarifications to the DNS Specification</title>
				<author initials="M." surname="Lodder"></author>
				<author initials="D." surname="Hardman"></author>
				<date day="01" month="May" year="2022"/>
			</front>
		</reference>

		<reference anchor="BTCR" target="https://github.com/WebOfTrustInfo/rwot5-boston/blob/master/topics-and-advance-readings/btcr-dids-ddos.md">
			<front>
				<title>BTCR DIDs and DDOs</title>
				<author initials="K.H." surname="Duffy"></author>
				<author initials="R." surname="Grant"></author>
				<author initials="C." surname="Allen"></author>
				<date day="01" month="May" year="2022"/>
			</front>
		</reference>

		<reference anchor="TVDR" target="https://github.com/compellio/tz-verifiable-data-registry/tree/testnet">
			<front>
				<title>Tezos Verifiable Data Registry</title>
				<author initials="" surname="Compellio.io"></author>
				<date day="1" month="July" year="2022"/>
			</front>
		</reference>

	</references>

  </back>
</rfc>