From a0ce537eb9fbc217de913099cf8e4c43adb809d0 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sun, 3 Jan 2021 12:03:55 +0100 Subject: Make Multi-device support a section, add some content Signed-off-by: Matthias Beyer --- doc/paper/gen/blockchain_divergence.dot | 8 ++++++ doc/paper/main.tex | 48 ++++++++++++++++++++++++++++++++- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 doc/paper/gen/blockchain_divergence.dot diff --git a/doc/paper/gen/blockchain_divergence.dot b/doc/paper/gen/blockchain_divergence.dot new file mode 100644 index 0000000..43ede0e --- /dev/null +++ b/doc/paper/gen/blockchain_divergence.dot @@ -0,0 +1,8 @@ +digraph G { + rankdir = RL; + node [style=filled,color=grey,shape=circle]; A B C; + rank = same; B, C; + + B -> A + C -> A +} diff --git a/doc/paper/main.tex b/doc/paper/main.tex index 22809a1..6ef7dfe 100644 --- a/doc/paper/main.tex +++ b/doc/paper/main.tex @@ -285,9 +285,55 @@ This enables several other possibilities and use-cases: % Short note about possible data formats -\subsection{Multi-device support} +\section{Multi-device support} % How multi-device support for a profile is implemented using IPNS +Because a user might want to post from different devices to their profile, +multi-device-support has to be ensured. + +Two strategies come into mind: + +\begin{itemize} + \item + Sharing the private key publishing the profile with between the devices + + \item + Making the devices a user posts from agree on the blockchain that + represents the profile +\end{itemize} + +The first option, although tempting because of its simplicy, +results in several issues. +First of all, losing a private key (either by user error, disk error +or even a malicious party) would result in immediate lockout of the profile. +Secondly, organizing of multiple devices posting to the profile in the same time +while not knowing eachother is difficult. + +\begin{wrapfigure}[]{r}{0.15\textwidth} + \includegraphics[width=0.14\textwidth]{gen/blockchain_divergence.png} + \caption{A divergence on the blockchain} + \label{pic:blockchain:divergence} +\end{wrapfigure} + +The second option provides a better ground for developing functionality on. +Because divergence from the blockchain is easily achieved\footnotemark[2] +(see \ref{pic:blockchain:divergence}), +multiple "versions" of the same profile might exist at any point in time. +A third party might be able to retrieve both versions of the profile, so it must +be able to decide which one is the correct one. +If only one private key would post to one profile, that decision would result +in \emph{either} $B$ or $C$ (in \ref{pic:blockchain:divergence}) be considered +the current version, although both are valid. +Hence, if both versions can be considered, a third party might recognize the +divergence in the blockchain, but know that both versions are valid and act +accordingly (e.g. by sorting the content via timestamp for the user to inspect). + +\footnotetext[2]{ + Consider two devices, air-gapped, posting to the same profile. + A situation like node $B$ and $C$ in \ref{pic:blockchain:divergence} is the result. +} + + \subsection{Device "Authorization"} % How devices are authorized to post to a profile -- cgit v1.2.3