Internet DRAFT - draft-zhang-satp-network-identification
draft-zhang-satp-network-identification
Internet Engineering Task Force W. Zhang
Internet-Draft Enterprise Ethereum Alliance
Intended status: Informational T. Hardjono
Expires: 5 February 2024 MIT
4 August 2023
SATP Network Identification
draft-zhang-satp-network-identification-00
Abstract
There is currently a lack of a standard network identification or
numbering for digital asset networks. This deficiency makes it
difficult for the transfer of digital assets from one network to
another, due among others, to the possibility in the collision in the
numbering of the remote networks. This document proposes a globally
unique 32-byte identifier for each asset network based on some unique
inherent characteristics of each network.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 5 February 2024.
Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the
document authors. All rights reserved.
Zhang & Hardjono Expires 5 February 2024 [Page 1]
Internet-Draft SATP Network Identification August 2023
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. General Identification Requirements . . . . . . . . . . . . . 3
3. Identifier Specification . . . . . . . . . . . . . . . . . . 3
3.1. Hash of genesis block (16 bytes) . . . . . . . . . . . . 3
3.2. Custom subnetwork number (4 bytes) . . . . . . . . . . . 3
3.3. Subnetwork Type (2 bytes) . . . . . . . . . . . . . . . . 4
3.4. Network Owner Identifier (2 bytes) . . . . . . . . . . . 4
3.5. Reserved (7 bytes) . . . . . . . . . . . . . . . . . . . 4
3.6. Checksum (1 bytes) . . . . . . . . . . . . . . . . . . . 4
4. Security Considerations . . . . . . . . . . . . . . . . . . . 4
5. References . . . . . . . . . . . . . . . . . . . . . . . . . 5
5.1. Normative References . . . . . . . . . . . . . . . . . . 5
5.2. Informative References . . . . . . . . . . . . . . . . . 6
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction
In order to begin addressing the lack of a standard for network
identification (numbering) for digital asset networks (e.g. based on
shared ledgers), the current document proposes a 32-byte identifier
scheme that permits each network to be uniquely identified at the
network level, while at the same permitting each network to assign
its own numbering to interior sub-networks (e.g. multiple shared
ledgers within a network). This approach is based on the scheme
proposed in [EIP3220].
A standard identifier scheme for asset networks is important for the
interoperability among these networks, as it prevents
misidentification of networks and provides a means for nodes and
gateways in the network to assert (to external entities) which
network or ledger they represent.
Additionally, a standard identifier scheme is crucial for the IETF
secure asset transfer protocol (SATP), where gateways seeking to
transfer digital assets from one network to another must be able to
uniquely identify the origin network and destination network [SATP-
ARCH].
Zhang & Hardjono Expires 5 February 2024 [Page 2]
Internet-Draft SATP Network Identification August 2023
2. General Identification Requirements
An asset network identification should satisfy the following general
requirements:
* It should provide unique identification of each asset network in a
way that facilitates cross-network transfers in the digital asset
ecosystem.
* It should semantically carry some minimal information that
supports the discovery of asset networks.
* When possible, it should semantically permit the network owner to
subset (sub-net) the identifier string to indicate sub-networks
(ledgers) within the asset network.
* It should permit the differentiation between an original (parent)
network from a forked (child) network.
3. Identifier Specification
The following provides the specification for the 32-bytes for the
network identification, including the field length and description or
purpose of each field.
3.1. Hash of genesis block (16 bytes)
Within a network utilizing a shared ledger, this is the cryptographic
hash of the genesis block of the ledger.
In the case of a network forked into two networks, the official
network should still keep its original hash. The forked network
should take the hash of the block immediately prior to the fork.
The 16 bytes is the 16 least significant bytes, assuming network byte
order.
In other specifications [EIP3220] this is also called the Truncated
Genesis Block Hash.
3.2. Custom subnetwork number (4 bytes)
This is the subnetwork identification number that can be used
internally within a network or the legacy network number when signing
transactions intended for the ledger in that subnetwork. The number
can be used to identify subnetworks or be compatible with legacy
network identifications.
Zhang & Hardjono Expires 5 February 2024 [Page 3]
Internet-Draft SATP Network Identification August 2023
For networks that do not support this feature, this value must be set
zero.
In other specifications [EIP3220] this is also called the Native
ChainID.
3.3. Subnetwork Type (2 bytes)
This is the portion that identifies the subnetwork within a network,
if any exists.
Reserve is 0x00 as an undefined.
In other specifications [EIP3220] this is also called the Chain Type.
Examples: The value 0x01 is Ethereum mainnet. The value 0x1[0-A] is
Ethereum testnet. The value 0x2[0-A] is Ethereum a private
development network.
3.4. Network Owner Identifier (2 bytes)
This portion is optionally used by an owner of an original network in
the case of forks of that network into separate independent networks.
For networks that do not support the notion of an owner, this value
is set to zero.
In other specifications [EIP3220] this is also called the Governance
Identifier.
3.5. Reserved (7 bytes)
Reserved for future use. Use 000000 for now.
3.6. Checksum (1 bytes)
Used to verify the integrity of the identifier. The value is
calculated as the truncated SHA256 message digest of the rest of the
identifier, using the least significant byte, assuming network byte
order.
4. Security Considerations
Today there is no mechanism for network owners to register (or
obtain) a unique network identifier for their networks. This raises
the dilemma that two networks may choose the same identifiers,
leading to collisions in the case of cross-network (cross-
jurisdiction) asset transfers:
Zhang & Hardjono Expires 5 February 2024 [Page 4]
Internet-Draft SATP Network Identification August 2023
* Preventing identifier collision: With the use of the current
proposed network identification scheme, the utilization of the
hash of the genesis block of each network (ledger) provides a
higher assurance that the chances for collisions in numbering will
be low.
* Detecting replay attacks: The use of a standardized asset network
identifier reduces the potential for replay attacks a network
internally (locally) by virtue of the inclusion of the interior
subnetwork number (ChainID) portion in the signed transaction.
In the case of gateways in SATP, the network identifier could be
included in the digital certificate (e.g. X.509 certificate) that
identifies the gateway device and gateway owner, signifying that the
gateway serves the given network.
When two gateways G1 and G2 are participating in a cross-network
asset transfer (SATP-core) each gateway can include their
corresponding network identifier in the pre-transfer preparation
stage (Stage-0).
5. References
5.1. Normative References
[EIP3220] Zhang, W. and P. Robinson, "EIP-3220: Crosschain
Identifier Specification", 21 October 2020,
<https://eips.ethereum.org/EIPS/eip-3220>.
[NIST] Yaga, D., Mell, P., Roby, N., and K. Scarfone, "NIST
Blockchain Technology Overview (NISTR-8202)", October
2018, <https://doi.org/10.6028/NIST.IR.8202>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[SATParch] Hardjono, T., Hargreaves, M., Smith, N., and V.
Ramakrishna, "Secure Asset Transfer Protocol
Architecture", 24 July 2023,
<https://datatracker.ietf.org/doc/draft-ietf-satp-
architecture/>.
[SATPcore] Hargreaves, M., Hardjono, T., and R. Belchior, "IETF
Secure Asset Transfer Protocol (SATP)", 9 July 2023,
<https://datatracker.ietf.org/doc/draft-ietf-satp-
core/>.>.
Zhang & Hardjono Expires 5 February 2024 [Page 5]
Internet-Draft SATP Network Identification August 2023
5.2. Informative References
[Chainlist]
Chainlist, "Chainlist
(https://github.com/dbarobin/networklist-org)", 2020,
<https://chainlist.network>.
[ISO20022] ISO, "Universal Financial Industry Message Scheme (ISO
20022).", July 2023, <https://www.iso20022.org>.
Authors' Addresses
Weijia Zhang
Enterprise Ethereum Alliance
Email: weijiazhang@utexas.edu
Thomas Hardjono
MIT
Email: hardjono@mit.edu
Zhang & Hardjono Expires 5 February 2024 [Page 6]