\begin{frame}{Le protocole Nomad} \begin{block}{Mise en contexte} \begin{itemize} \item Protocole d'échange inter-blockchains. \item Utilisation de \textit{smart contracts}. \end{itemize} \end{block} \begin{block}{Les \textit{smart contracts}} \begin{itemize} \item \textit{Home} : "Boite d'envoi", déployé sur les blockchain source. \item \textit{Replica} : "Boite de réception", déployé sur les blockchains de destination. \end{itemize} \end{block} \end{frame} \begin{frame}{Le protocole Nomad} \begin{block}{Fonctionnement d'une transaction} \begin{itemize} \item Création de la transaction. \item Vérification du message par sa racine. \item Accepte la racine. \item Envoi. \end{itemize} \end{block} \end{frame} \begin{frame}{L'attaque} \begin{block}{L'attaque} \begin{itemize} \item Premier Août 2022. \item Apparu après mise a jour utilisant la fonction \textit{process} pour vérifier la racine. \item 190 000 000 de dollars de liquidité volé. \end{itemize} \end{block} \begin{block}{L'erreur d'implémentation} \begin{itemize} \item Erreur d'implémentation sur \textit{Réplica}. \item Problème de vérification de racine. \item Possibilité de valider n'importe quel message. \end{itemize} \end{block} \end{frame} \begin{frame}{L'attaque} \begin{block}{Erreur d'initialisation} \begin{itemize} \item Racine initialisée à $0$, fonctionnement normal. \item Mais, racine $0$ pré-approuvée. \item Tout message non vérifié sera valide. \end{itemize} \end{block} \begin{figure} \centering \includegraphics[scale = 0.3]{centralisation/img/nomad_hack.png} \caption{Contrat Réplica erroné} \end{figure} \end{frame} \begin{frame}{L'attaque} \begin{itemize} \item Correction le 3 septembre 2022 \item La racine nulle n'est plus pré-approuvée. \end{itemize} \begin{figure} \centering \includegraphics[scale = 0.3]{centralisation/img/nomad_fixed.png} \caption{Contrat Réplica corrigé} \end{figure} \end{frame}