Re: Registration request for urn:eris: namespace

Peter Saint-Andre <[email protected]>
Newsgroups gmane.ietf.urn
Message-ID <[email protected]>
Hello Endo,

Thank you for submitting this namespace registration request. Other 
reviewers might be more insightful than I am, but I've provided some 
comments and suggestions inline.

On 9/16/23 3:37 AM, Endo Renberg wrote:
> Namespace Identifier:  ERIS
> Version:  1
> Date:  2023-09-16
> Registrant:  Endo Renberg <[email protected]>
> 
> 
> Purpose:  ERIS URNs identify and verify immutable data.

This description is rather terse. Indeed, the sentence "ERIS URNs 
identify and verify immutable data" would be almost as meaningful if we 
removed the word "ERIS". Visiting https://eris.codeberg.page/spec/ we 
learn that:

###

ERIS is an encoding of arbitrary content into a set of uniformly sized, 
encrypted and content-addressed blocks as well as a short identifier 
that can be encoded as an URN.

###

and:

###

[N]aive content-addressing has certain drawbacks:

- Large content is stored as a large chunk of data. In order to optimize 
storage and network operations it is better to split up content into 
smaller uniformly sized blocks and reassemble blocks when needed.

- Unencrypted: Content is readable by all peers involved in 
transporting, caching and storing content.

ERIS addresses these issues by splitting content into small uniformly 
sized and encrypted blocks. These blocks can be reassembled to the 
original content only with access to a short read capability, which can 
be encoded as an URN.

###

I suggest that you provide slightly more detail in the Purpose section.

> ERIS URNs are application, location, and protocol independent and may be
> created by anyone for any purpose which requires immutable data.
> 
> These URNs may be conveyed in URLs using the "URN to Resource" method
> described in RFC2169 (https://datatracker.ietf.org/doc/html/rfc2169).

First, using RFC 2169 seems like a resolution method (that document 
"specifies the 'THTTP' resolution protocol") and thus this sentence 
might belong in the Resolution section of the registration request.

Second, given that (a) RFC 2169 was Experimental and (b) HTTP 1.0 and 
1.1 have been superseded by more modern and secure versions of HTTP, is 
this resolution method truly advisable at this time?

> Software may resolve ERIS URNs to content by use of dedicated ERIS services
> or by embedding an ERIS software library, both of which are freely
> available.
> 
> 
> Syntax:
> 
> BASE32    =   A-Z / 2-7
> ERIS-URN  =  "urn:eris:" 106(BASE32)
> 
> The semantics of the base32 digits is described in
> https://eris.codeberg.page/spec/#section-2.6.

A reference to RFC 4648 might be appropriate regarding the definition of 
base32.

> The use of r/q/f components in URNs is application specific and is neither
> defined or prohibited.

Is that helpful? In the context of ERIS as a simple block-encoding 
method (and quoting descriptions from RFC 8141), I wonder about the 
purpose, even at a high level, of:

- "passing parameters to a URN resolution service" via the r-component?

- "passing parameters to either the named resource or a system that can 
supply the requested service" via the q-component?

- specifying "a location within, or region of, the named resource" via 
the f-component?

> Assignment:  ERIS operates independently of any authority. Data is
> assigned an ERIS URN by chunking it by one of two block-sizes and using
> a convergent (deterministic) or unique block encoding. This results in two
> possible convergent URNs for any given data or an unlimited number of unique
> URNs.

By "data" here do you mean a particular block of data or the content 
that is encoded into blocks? I suspect the former, but it would be good 
to ensure consistency with the terminology in the ERIS spec. (Strictly 
speaking, the URN seems to identify a "read capability", but I'm not 
sure how that differs from the content that is encoded into blocks.)

> Security and Privacy:  ERIS URNs identify data independently of location so
> knowledge of a URN must be assumed to be sufficient authorization to access
> the data that it refers to. 

That feels like a slightly suboptimal authorization model, but the URN 
review team isn't here to critique underlying protocols.

> This behavior also permits the so-called
> "Confirmation of A File" attack which may be partially mitigated by
> creating URNs using unique encodings.

What is meant here by "unique encodings"? Does that mean an encoding 
other than ERIS?

> Interoperability:  An ERIS namespace is not know to be in use elsewhere and
> the ERIS URN is designed to be highly interoperable. The interpretation of
> base32 data within the URN is constrained and non-extensible.

s/know/known/

> Resolution:  An ERIS URN may be resolved to content by standalone services
> or embedded software libraries. No organization is responsible for hosting
> and resolving ERIS encoded data.

What does resolution mean in the context of ERIS as (seemingly) a fully 
decentralized system? Is the read-capability URN resolved to the content 
itself? How does that interact with the encryption properties of ERIS?

> Documentation:  http://purl.org/eris

Pointing to https://eris.codeberg.page/spec/ might be better if that is 
expected to be the longer-lived URI.

BTW, do you also plan to register the blake2b namespace identifier 
mentioned in Section 2.7.1 of the ERIS spec?

Thanks,

Peter
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.