[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Encoding for Robust Immutable Storage (ERIS)
From: |
pukkamustard |
Subject: |
Encoding for Robust Immutable Storage (ERIS) |
Date: |
Fri, 10 Jul 2020 08:59:17 +0200 |
User-agent: |
mu4e 1.4.10; emacs 26.3 |
Hello GNUNet,
I'd like to request feedback, questions and comments on an
encoding of
content very much inspired by ECRS that I have been working on:
Encoding
for Robust Immutable Storage (ERIS)
https://openengiadina.net/papers/eris.html
The motivation is to use the encoding in a social network like
settings
where short messages and interactions are encoded using ERIS (as
RDF
[1]).
There is one major difference to ECRS (and a couple smaller ones)
that I
would like to highlight:
** Verification capability
ERIS adds a verification capability. Holders of the verification
capability can enumerate all blocks required to decode the content
and
verify integrity of the blocks without being able to decode the
content.
This enables peers to cache the entire content without being able
to
read the content.
The verification capability is enabled by using two keys:
1. A read key to encode the blocks holding content.
2. A verification key (which is deterministically derived from the
read
key) to encode the intermediary nodes of the Merkle tree.
This makes the scheme slightly more complicated than ECRS and also
requires a two-pass encoding (when using convergent encryption).
Nevertheless I believe this is a very important feature that maybe
results in a better privacy/complexity/availability trade-off as
alluded
to in a previous thread
(https://lists.gnu.org/archive/html/gnunet-developers/2020-05/msg00015.html).
** Block size
Block size is chosen to be 4kB. This an optimization towards small
content (short messages and social interactions).
** URN
Encoded content can be referred to by a URN making it usable from
existing Web (and RDF) settings. This could be added to ECRS.
** No namespacing / keyword search
There are currently no SBlock or KBlock like features. The idea is
that
these features can be built on-top of the base encoding (including
SBlock and KBlock).
We have a little JavaScript demo:
https://openengiadina.gitlab.io/js-eris/ . As well as
implementation in Guile [2].
I'd be very happy for your insight and feedback.
Thanks!
-pukkamustard
[1] https://openengiadina.net/papers/content-addressable-rdf.html
[2] https://gitlab.com/openengiadina/data-model/
- Encoding for Robust Immutable Storage (ERIS),
pukkamustard <=