265 lines
10 KiB
TeX
265 lines
10 KiB
TeX
\documentclass{beamer}
|
||
\usetheme{Boadilla}
|
||
\usecolortheme{orchid}
|
||
|
||
\usepackage[T1]{fontenc}
|
||
\usepackage[utf8]{inputenc}
|
||
\usepackage[french]{babel}
|
||
\usepackage{stackengine}
|
||
|
||
\addtobeamertemplate{navigation symbols}{}{%
|
||
\usebeamerfont{footline}%
|
||
\usebeamercolor[fg]{footline}%
|
||
\hspace{1em}%
|
||
\insertframenumber/\inserttotalframenumber
|
||
}
|
||
\usepackage{ulem}
|
||
\usepackage{tkz-tab}
|
||
\setbeamertemplate{blocks}[rounded]%
|
||
[shadow=true]
|
||
\AtBeginSection{%
|
||
\begin{frame}
|
||
\tableofcontents[sections=\value{section}]
|
||
\end{frame}
|
||
}
|
||
|
||
\usepackage{tikz}
|
||
\usetikzlibrary{positioning}
|
||
\usetikzlibrary{calc}
|
||
\usetikzlibrary{arrows.meta}
|
||
|
||
\title{Amaury JOLY - Winter School GDR Cybersécurité}
|
||
\author{Amaury JOLY}
|
||
\institute{Université Aix-Marseille \\ Laboratoire d'Informatique et Systèmes (LIS)}
|
||
\date{Janvier 2026}
|
||
|
||
\begin{document}
|
||
|
||
\begin{frame}
|
||
\titlepage
|
||
\vspace{-1.2em}
|
||
|
||
\begin{center}
|
||
\includegraphics[height=1cm]{images/logoamu}\hspace{1cm}%
|
||
\includegraphics[height=1.5cm]{images/logolis}\hspace{1cm}
|
||
\includegraphics[height=0.9cm]{images/logodalgo}\hspace{1cm}%
|
||
\includegraphics[height=0.6cm]{images/logoparsec}
|
||
\end{center}
|
||
\end{frame}
|
||
|
||
|
||
\begin{frame}{Who am I?}
|
||
\begin{itemize}
|
||
\item \textbf{Amaury JOLY}
|
||
\item 3rd-year PhD candidate at the \textbf{Laboratory of Informatics and Systems (LIS)}
|
||
\item \textbf{Distributed Algorithms} team
|
||
\item Supervised by \textbf{Emmanuel GODARD} and \textbf{Corentin TRAVERS}
|
||
\item \textbf{CIFRE} PhD with the company \textbf{Parsec}
|
||
\end{itemize}
|
||
\end{frame}
|
||
|
||
%------------------------------------------------------------
|
||
\begin{frame}{Parsec: company \& product}
|
||
\begin{itemize}
|
||
\item \textbf{Parsec} develops an end-to-end encrypted file sharing platform
|
||
\item Client--server solution: users collaborate through shared workspaces
|
||
\item \textbf{End-to-end encryption}: the server only sees \emph{ciphertexts}
|
||
\item \textbf{Distributed PKI management among clients} (keys/identities handled at the edge)
|
||
\item \alert{one central server stores encrypted data and redistributes it to clients}
|
||
\end{itemize}
|
||
\end{frame}
|
||
|
||
%------------------------------------------------------------
|
||
\begin{frame}{My topic (high level)}
|
||
\begin{block}{Problem statement}
|
||
\textit{``Weak consistency in a zero-trust cloud for real-time collaborative applications.''}
|
||
\end{block}
|
||
|
||
\vspace{0.4em}
|
||
\begin{itemize}
|
||
\item Real-time collaboration: concurrent updates, low latency, intermittent connectivity
|
||
\item We want \textbf{weak consistency} (e.g., eventual / causal behaviors) with clear semantics under concurrency
|
||
\item \textbf{Zero-trust cloud} (Parsec-like setting):
|
||
\begin{itemize}
|
||
\item central server trusted for \textbf{availability} only
|
||
\item server can be \textbf{honest-but-curious} (observes metadata, stores/forwards ciphertexts)
|
||
\item \textbf{no trust assumptions on clients} (they may be compromised or mutually distrustful)
|
||
\end{itemize}
|
||
\end{itemize}
|
||
\end{frame}
|
||
|
||
\begin{frame}
|
||
\frametitle{Our Model}
|
||
\begin{block}{Assumptions}
|
||
\begin{itemize}
|
||
\item The system is highly connected
|
||
\item The system is not partitionable
|
||
\item The system is asynchronous (i.e., no assumption on message delays or relative process speeds)
|
||
\item Nodes can fail by \textbf{crash} (i.e., stop functioning)
|
||
\item Nodes can be \textbf{Byzantine} (i.e., arbitrary behavior)
|
||
\item The communication network is reliable but byzantine nodes can delay or reorder messages
|
||
\item There is a Reliable Broadcast abstraction available
|
||
\end{itemize}
|
||
\end{block}
|
||
\end{frame}
|
||
|
||
\begin{frame}
|
||
\frametitle{Consistency classes}
|
||
\begin{columns}
|
||
\column{0.5\textwidth}
|
||
\resizebox{\columnwidth}{!}{
|
||
\includegraphics{images/carte_criteres.png}
|
||
}
|
||
|
||
\column{0.5\textwidth}
|
||
One approach to define the consistency of an algorithm is to place the concurrent history it produces into a consistency class. \\
|
||
We can define 3 consistency classes:
|
||
\begin{itemize}
|
||
\item \textbf{State Locality} (LS)
|
||
\item \textbf{Validity} (V)
|
||
\item \textbf{Eventual Consistency} (EC)
|
||
\end{itemize}
|
||
\end{columns}
|
||
\end{frame}
|
||
|
||
\begin{frame}
|
||
\frametitle{State Locality (LS)}
|
||
|
||
\begin{columns}
|
||
\column{0.4\textwidth}
|
||
\include{localiteetat_hc}
|
||
\column{0.6\textwidth}
|
||
\begin{block}{Definition}
|
||
For every process $p$, there exists a linearization containing all of $p$'s read operations. \\
|
||
\end{block}
|
||
\begin{math}
|
||
\begin{array}{ll}
|
||
e.g.: & \textcolor{blue}{C_{p_1} = \{r/(0,0), r/(0,2)^w, w(2)\}}, \\
|
||
& \textcolor{red}{C_{p_2} = \{r/(0,0), r/(0,1)^w, w(1)\}}, \\
|
||
& \textcolor{blue}{r/(0,0) \bullet w(2) \bullet r/(0,2)^w} \\
|
||
& \textcolor{red}{r/(0,0) \bullet w(1) \bullet r/(0,1)^w} \\
|
||
\end{array}
|
||
\end{math}
|
||
\end{columns}
|
||
|
||
|
||
\begin{flushright}
|
||
\begin{math}
|
||
LS = \left\{
|
||
\begin{array}{l}
|
||
\mathcal{T} \rightarrow \mathcal{P}(\mathcal{H}) \\
|
||
T \rightarrow \left\{
|
||
\begin{tabular}{lll}
|
||
$H \in \mathcal{H}:$ & \multicolumn{2}{l}{$\forall p \in \mathcal{P}_H, \exists C_p \subset E_H,$} \\
|
||
& & $\hat{Q}_{T,H} \subset C_p$ \\
|
||
& $\land$ & $lin(H[p \cap C_p / C_p]) \cap L(T) \neq \emptyset$ \\
|
||
\end{tabular}
|
||
\right. \\
|
||
\end{array}
|
||
\right.
|
||
\end{math}
|
||
\end{flushright}
|
||
\end{frame}
|
||
|
||
|
||
\begin{frame}
|
||
\frametitle{Validity (V)}
|
||
|
||
\begin{columns}
|
||
\column{0.4\textwidth}
|
||
\include{validite_hc}
|
||
\column{0.6\textwidth}
|
||
\begin{block}{Definition}
|
||
There exists a co-finite set of events such that for each of them, a linearization of all write operations justifies them. \\
|
||
\end{block}
|
||
\begin{math}
|
||
\begin{array}{ll}
|
||
e.g.: & E' = \{r/(2,1)^w, r/(1,2)^w\} \\
|
||
& w(2) \bullet w(1) \bullet \textcolor{red}{r/(2,1)^w} \\
|
||
& w(1) \bullet w(2) \bullet \textcolor{red}{r/(1,2)^w} \\
|
||
\end{array}
|
||
\end{math}
|
||
\end{columns}
|
||
|
||
|
||
\begin{flushright}
|
||
\begin{math}
|
||
V = \left\{
|
||
\begin{array}{l}
|
||
\mathcal{T} \rightarrow \mathcal{P}(\mathcal{H}) \\
|
||
T \rightarrow \left\{
|
||
\begin{array}{lll}
|
||
H \in \mathcal{H}: & \multicolumn{2}{l}{|U_{T,H}| = \infty} \\
|
||
& \lor & \exists E' \subset E_H, (|E_H \setminus E'| < \infty \\
|
||
& & \land \forall e \in E', lin(H[E_H / {e}]) \cap L(T) \neq \emptyset) \\
|
||
\end{array}
|
||
\right. \\
|
||
\end{array}
|
||
\right.
|
||
\end{math}
|
||
\end{flushright}
|
||
\end{frame}
|
||
|
||
|
||
\begin{frame}
|
||
\frametitle{Eventual Consistency (EC)}
|
||
|
||
\begin{columns}
|
||
\column{0.4\textwidth}
|
||
\include{convergence_hc}%
|
||
\column{0.5\textwidth}
|
||
\begin{block}{Definition}
|
||
There exists a co-finite set of events such that for each of them, a single linearization justifies them. \\
|
||
\end{block}
|
||
\begin{math}
|
||
\begin{array}{ll}
|
||
e.g.: & E' = \{r/(1,2)^w, r/(1,2)^w\} \\
|
||
& w(1) \bullet w(2) \bullet \textcolor{red}{r/(1,2)^w} \\
|
||
\end{array}
|
||
\end{math}
|
||
\end{columns}
|
||
|
||
|
||
\begin{flushright}
|
||
\begin{math}
|
||
EC = \left\{
|
||
\begin{array}{l}
|
||
\mathcal{T} \rightarrow \mathcal{P}(\mathcal{H}) \\
|
||
T \rightarrow \left\{
|
||
\begin{array}{lll}
|
||
H \in \mathcal{H}: & \multicolumn{2}{l}{|U_{T,H}| = \infty} \\
|
||
& \lor & \exists E' \subset E_H, |E_H \setminus E'| < \infty \\
|
||
& & \land \displaystyle\bigcap_{e \in E'} \delta_T^{-1}(\lambda(e)) \neq \emptyset \\
|
||
\end{array}
|
||
\right. \\
|
||
\end{array}
|
||
\right.
|
||
\end{math}
|
||
\end{flushright}
|
||
\end{frame}
|
||
|
||
\begin{frame}{Main Work}
|
||
\begin{itemize}
|
||
\item We designed a distributed algorithm that use a \textbf{byzantine-tolerant eventually consistent register} in our model to achieve Agreement with $t < n/3$ Byzantine nodes.
|
||
\item I'm working on a framework using this algorithm to build collaborative applications for the context of a zero-trust cloud.
|
||
\end{itemize}
|
||
\end{frame}
|
||
|
||
\begin{frame}
|
||
\frametitle{Thank you for your attention!}
|
||
\vfill
|
||
\begin{center}
|
||
\includegraphics[height=1cm]{images/logoamu}\hspace{1cm}%
|
||
\vspace{1em}
|
||
|
||
\includegraphics[height=1.5cm]{images/logolis}\hspace{1cm}%
|
||
\vspace{1em}
|
||
|
||
\includegraphics[height=0.9cm]{images/logodalgo}\hspace{1cm}%
|
||
\vspace{1em}
|
||
|
||
\includegraphics[height=0.6cm]{images/logoparsec}
|
||
\end{center}
|
||
\end{frame}
|
||
|
||
\end{document} |