Files
bwconsistency/docs/presentations/autre/WinterSchoolGDRCyber2026/main.tex
2026-01-15 09:30:33 +01:00

265 lines
10 KiB
TeX
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
\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}