lsd0004

LSD0004: R5N Distributed Hash Table
Log | Files | Refs

commit 8c16ce42ffe188a8519ea9fe3e8e5f178ff4a6c4
parent 2d43555b1b43b62cc7efb6f234e42f6d2b936335
Author: Christian Grothoff <christian@grothoff.org>
Date:   Fri, 12 Jul 2024 00:45:36 +0200

minor improvements/corrections

Diffstat:
Mdraft-schanzen-r5n.xml | 92++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
1 file changed, 51 insertions(+), 41 deletions(-)

diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml @@ -190,9 +190,9 @@ sufficient number of direct connections with other honest peers to achieve acceptable performance. As the number of malicious peers and their connections increases, performance - of the system SHOULD gracefully degrade, and only collapse - for peers that an adversary has fully isolated from the - benign network. + of the system <bcp14>SHOULD</bcp14> gracefully degrade, and + only collapse for peers that an adversary has fully isolated + from the benign network. </t> <t> The main security objectives are to provide honest nodes @@ -201,21 +201,22 @@ well as invalid routing path data if such routing meta-data is present. While malicious nodes may make up arbitrary key-value pairs and paths within the adversary's domain, - invalid key-value pairs SHOULD ideally be discarded at the - first honest node, and path data MUST honestly state - entry- and exit-points from the honest network into the - subset of malicious nodes. + invalid key-value pairs <bcp14>SHOULD</bcp14> ideally be + discarded at the first honest node, and path data + <bcp14>MUST</bcp14> honestly state entry- and exit-points + from the honest network into the subset of malicious nodes. </t> <t> - Malicious nodes MAY attempt to exhaust the storage capacity - of honest nodes by distributing well-formed (but possibly - otherwise useless) application data. We assume that storage - space is relatively cheap compared to bandwidth and that - honest nodes also frequently re-publish the useful data - that they publish. As a result, an adversary MAY reduce the - effectiveness and longevity of data cached in the DHT, but - is assumed to not be able to effectively prevent publication - and retrieval of application data by honest nodes. + Malicious nodes <bcp14>MAY</bcp14> attempt to exhaust the + storage capacity of honest nodes by distributing well-formed + (but possibly otherwise useless) application data. We assume + that storage space is relatively cheap compared to bandwidth + and that honest nodes also frequently re-publish the useful + data that they publish. As a result, an adversary + <bcp14>MAY</bcp14> reduce the effectiveness and longevity of + data cached in the DHT, but is assumed to not be able to + effectively prevent publication and retrieval of application + data by honest nodes. </t> </section> </section> @@ -419,7 +420,7 @@ includes on-path customizable key-value validation to delete malformed data and path randomiziation to help evade malicious peers. R<sup>5</sup>N also expects to perform - over a network where not each peer can communicate with every other peer, + over a network where not every peer can communicate with every other peer, and where thus its route discovery feature provides utility to higher-level applications. As a result, both the features and the security properties of RELOAD and R<sup>5</sup>N are different, except in that both allow @@ -456,8 +457,8 @@ <section> <name>Overview</name> <t> - In R<sup>5</sup>N peers provide - the two fundamental core operations of any DHT to their applications: + In R<sup>5</sup>N peers provide to their applications + the two fundamental core operations of any DHT: </t> <ul> <li> @@ -510,7 +511,7 @@ It also serves as a set of requirements of possible transport mechanisms that can be used to implement R<sup>5</sup>N with. That being said, common transport protocols such as TCP/IP or UDP/IP and their - interfaces are suitable R<sup>5</sup>N underlays used by existing + interfaces are suitable R<sup>5</sup>N underlays and are used as such by existing implementations. </t> <!-- consider moving some of this back into sec considerations --> @@ -538,7 +539,7 @@ <em>Block-Type</em> in the GANA <em>Block-Type</em> registry (<xref target="gana_block_type"/>) and provide a specification of the associated block operations (<xref - target="block_functions"/>). to implementors of + target="block_functions"/>) to implementors of R<sup>5</sup>N. <xref target="figure_r5n_arch"/> illustrates the architectural overview of R<sup>5</sup>N. </t> @@ -3093,7 +3094,7 @@ Type | Name | References | Description </dd> </dl> <t> - The GET procedure may allow a set of optional parameters in order to + The GET procedure may allow additional optional parameters in order to control or modify the query: </t> <dl> @@ -3143,7 +3144,8 @@ Type | Name | References | Description </dd> <dt>Block-Data:</dt> <dd> - is the application-specific block payload. Contents are specific to the <tt>Block-Type</tt>. + is the application-specific block payload. Contents are + specific to the <tt>Block-Type</tt>. </dd> <dt>Block-Expiration:</dt> <dd> @@ -3153,25 +3155,34 @@ Type | Name | References | Description <dt>Key:</dt> <dd> is the key under which the block was stored. This may be different from the - key that was queried if the flag FindApproximate was set. + key that was queried if the flag <tt>FindApproximate</tt> was set. </dd> <dt>GET-Path:</dt> <dd> - is a signed path of the public keys of peers which the query - traversed through the network. The DHT will try to make - the path available if the <tt>RecordRoute</tt> flag was set by - the application calling the PUT procedure. The reported - path may have been silently truncated from the beginning. + is a signed path of the public keys of peers which the + query traversed through the network. The DHT will try to + make the path available if the <tt>RecordRoute</tt> flag + was set by the application calling the PUT procedure. The + reported path may have been truncated from the beginning. + The API <bcp14>SHOULD</bcp14> signal truncation by exposing + the <tt>Truncated</tt> flag. </dd> <dt>PUT-Path:</dt> <dd> is a signed path of the public keys of peers which the - result message traversed. The DHT will try to make the - path available if the <tt>RecordRoute</tt> flag was set for the GET procedure. - The reported path may have been silently truncated from the beginning. - As the block was cached by the node at the end of this - path, this path is more likely to be stale compared to the - <tt>GET-Path</tt>. + result message traversed. The DHT will try to make the + path available if the <tt>RecordRoute</tt> flag was set + for the GET procedure. The reported path may have been + truncated from the beginning. The API + <bcp14>SHOULD</bcp14> signal truncation by exposing the + <tt>Truncated</tt> flag. As the block was cached by the + node at the end of this path, this path is more likely to + be stale compared to the <tt>GET-Path</tt>. + </dd> + <dt>Truncated:</dt> + <dd> + is true if the <tt>GET-Path</tt> or <tt>PUT-Path</tt> + was truncated, otherwise false. </dd> </dl> </section> @@ -3197,8 +3208,8 @@ Type | Name | References | Description <dd>is the application-specific payload of the block to store.</dd> </dl> <t> - The PUT procedure may allow a set of optional parameters in order to - control or modify the query: + The PUT procedure may accept additional optional parameters that + control or modify the operation: </t> <dl> <dt>Replication-Level:</dt> @@ -3208,10 +3219,9 @@ Type | Name | References | Description </dd> <dt>Flags:</dt> <dd> - is a bit-vector which indicates certain - processing requirements for messages. - Any combination of flags as defined in <xref target="route_flags"/> - may be specified. + is a bit-vector which indicates certain processing + requirements for messages. Any combination of flags as + defined in <xref target="route_flags"/> may be specified. </dd> </dl> <t>