From d1784217c1d73b7635f064275e44ba04b86b2095 Mon Sep 17 00:00:00 2001 From: Dorian Date: Tue, 4 Apr 2023 15:19:50 +0200 Subject: [PATCH] typos --- docs/rapportFinal/centralisation/Plate-formes.tex | 4 ++-- docs/rapportFinal/centralisation/attaques.tex | 6 +++--- docs/rapportFinal/decentralisation/atomic_swaps_htlc.tex | 6 +++--- docs/rapportFinal/decentralisation/lightning.tex | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/rapportFinal/centralisation/Plate-formes.tex b/docs/rapportFinal/centralisation/Plate-formes.tex index fc1f037..6237c35 100644 --- a/docs/rapportFinal/centralisation/Plate-formes.tex +++ b/docs/rapportFinal/centralisation/Plate-formes.tex @@ -10,7 +10,7 @@ Elles proposent également un large éventail de cryptomonnaies disponibles. \subsubsection{Inconvénients et risques} Nous avons pu tout de même relever certains inconvénients et certains risques pour les utilisateurs liés à l'utilisation de ces plate-formes. -Tout d'abords, les utilisateurs doivent confier leurs fonds et leurs données à un tier en qui ils doivent avoir confiance. +Tout d'abords, les utilisateurs doivent confier leurs fonds et leurs données à un tiers en qui ils doivent avoir confiance. Cela peut exposer les utilisateurs à de la fraude, du vol ou encore du piratage si les plate-formes présentent des failles de sécurité. \\ Ensuite, ces plate-formes peuvent être victimes de pannes ou de saturation du réseau pouvant entraîner des retards, des pertes de transactions ou encore du déni de service bloquant ainsi l'accès aux \gls{actif}s des utilisateurs. Finalement, ces plate-formes sont soumises à la réglementation et à la surveillance des autorités financières, limitant leur accessibilité dans certains pays ou régions. @@ -22,7 +22,7 @@ Ce point signifie aussi que les \gls{actif}s de l'utilisateurs sont traçables p \centering \includegraphics[scale=0.2]{centralisation/Achat-Vente.png} \label{fig:simplifiedcex} - \caption{Échange d'un jeton en Euros} + \caption{Modélisation d'un échange} \end{figure} Ces plate-formes fonctionnent sur le principe de l'\textit{order book method} (méthode du carnet d'ordre\cite{orderBook}), une modélisation des ordres d'achats et de vente des jetons. Un ordre étant une demande d'un utilisateur visant à réaliser une opération à un prix et une quantité donnée. diff --git a/docs/rapportFinal/centralisation/attaques.tex b/docs/rapportFinal/centralisation/attaques.tex index ed3bd77..25135c2 100644 --- a/docs/rapportFinal/centralisation/attaques.tex +++ b/docs/rapportFinal/centralisation/attaques.tex @@ -23,7 +23,7 @@ Pour contourner cette étape de récupération des signatures la transaction de Seulement, n'étant pas pour la bonne opération cet ensemble ne peut pas être approuvé par \texttt{verify\_signature}. C'est ici que l'attaquant à utilisé un défaut d'implémentation pour valider son \textit{SignatureSet}. Comme décrit précédemment, la fonction \texttt{verify\_signature} appelle un programme pour effectuer la vérification des signatures. -Cependant il n'y à pas de vérification faites sur le programme appelé, l'attaquant à pu donc utiliser une adresse différente lui permettant de valider sa transaction. +Cependant il n'y a pas de vérification faites sur le programme appelé, l'attaquant à pu donc utiliser une adresse différente lui permettant de valider sa transaction. Avec le \texttt{SignatureSet} ainsi validé, l'attaquant a pu générer un \textit{VAA} valide et pu déclencher une création d'\gls{actif} vers son propre compte sans en avoir déposé au préalable. La correction de cette faille était contenue dans la mise à jour évoquée en début de paragraphe\cite{SolGitFixed}, permettant la vérification du programme appelé pour la vérification. @@ -55,11 +55,11 @@ En analysant l'application \textit{Réplica} après la mise à jour, nous pouvon Dans les lignes précédentes nous observons cette affectation : \texttt{confirmAt[\_commitedRoot] = 1}, le rôle de cette ligne est de pré-approuver la racine d'un message. Cette fonction est utilisée pour approuver le premier message lors du déploiement du contrat sur une \textit{\gls{blockchain}}. -Or ici, la valeur de la racine à été initialisée a $0$, donc cette racine devient une racine valide pour la fonction de vérification des messages. +Or ici, la valeur de la racine a été initialisée à $0$, donc cette racine devient une racine valide pour la fonction de vérification des messages. Seulement comme nous l'avons énoncé précédemment, $0$ est la valeur par défaut pour un message n'ayant pas encore été vérifié. Ainsi, lors de l'émission d'un message par la fonction \texttt{process}, tout message non vérifié sera envoyé. Cette erreur d'implémentation a permis à des pirates d'effectuer plusieurs transactions frauduleuses et de retirer l'équivalent de 190 Millions de dollars dans la réserve de liquidité du bridge de \gls{Nomad}. -Le contrat à été corrigé, dans une mise en ligne datant du 3 Septembre 2022, tel que la racine $0$ n'est plus pré-approuvée. +Le contrat a été corrigé, dans une mise en ligne datant du 3 Septembre 2022, tel que la racine $0$ n'est plus pré-approuvée. \begin{lstlisting}[caption={Fonction corrigée de l'application \textit{Réplica} \cite{NomadGitFixed}}] function initialize( diff --git a/docs/rapportFinal/decentralisation/atomic_swaps_htlc.tex b/docs/rapportFinal/decentralisation/atomic_swaps_htlc.tex index 8b4ba5f..62aaea3 100644 --- a/docs/rapportFinal/decentralisation/atomic_swaps_htlc.tex +++ b/docs/rapportFinal/decentralisation/atomic_swaps_htlc.tex @@ -3,10 +3,10 @@ Un \acrshort{htlc} est un type de \textit{\gls{smart contract}} utilisé dans les applications \textit{\gls{blockchain}} qui réduit le risque de contrepartie en créant une garantie basée sur le temps et une autre sur un verrou cryptographique\cite{narayanam2022generalized}. Ils reposent sur deux primitives fondamentales: le verrou de hachage et le verrou temporel.\\ -Premièrement le verrou de hachage (ou bien \textit{hashlock}): Ce dernier va fonctionner comme une assurance qui va couvrir les parties participantes à la transaction, en leur garantissant que chaque modification de l'échange soit réalisée d'un commun accord de toutes les parties. +Premièrement le verrou de hachage (ou bien \textit{hashlock}): Ce dernier va fonctionner comme une assurance qui va couvrir les participants à la transaction, en leur garantissant que chaque modification de l'échange soit réalisée d'un commun accord de toutes les parties. Cela est mis en place grâce à un partage du hachage de la clef privée de la transaction, ce partage va donc impliquer que le canal de paiement mis en place ne puisse être ouvert ou fermé qu'avec l'accord de tous les participants.\\ Ensuite le verrou temporel (ou bien \textit{timelock}) va laisser un laps de temps prédéterminé afin que chaque côté du canal puisse prendre ses dispositions avant d'effectuer la transaction. Si jamais ce temps est écoulé alors la clause secondaire du contract (elle aussi prédéterminée) sera exécuté. -Dans la plupart des cas cette clause secondaire va simplement fermer le canal de paiement et terminer la transaction sans la diffuser sur une \textit{\gls{blockchain}}.\\ +Dans la plupart des cas cette clause secondaire va simplement fermer le canal de paiement et terminer la transaction sans la diffuser sur la \textit{\gls{blockchain}}.\\ L’intérêt principal de ce type de contrat est qu'il permet d'effectuer facilement des échanges hors chaines. En effet, vu que les participants s'accordent au préalable sur le montant de la transaction ils peuvent tout à fait réaliser l'échange sur des \textit{\gls{blockchain}s} différentes, sous réserve que ces \textit{\gls{blockchain}s} aient des mécanismes de \textit{smarts contracts}. \begin{figure}[h!] @@ -24,7 +24,7 @@ Les \textit{atomics swaps} ou bien \glspl{atomic swap} sont des échanges effect l'échange est insécable, c'est-à-dire qu'a son issue, soit il s'est pleinement exécuté, soit l'état antérieur à l'échange est préservé. Cette primitive permet de garantir que les participants ne seront jamais dans des états jugés "inacceptables". \\ En effet les échanges atomiques partent du postulat que si une partie suit le protocole à la lettre alors, -il ne sera jamais perdant. A contrario les partis ne suivant pas le protocole par malveillance ou par erreur, prennent le risque de perdre leurs mises de départ.\\ \\ +elle ne sera jamais perdante. A contrario les parties ne suivant pas le protocole par malveillance ou par erreur, prennent le risque de perdre leurs mises de départ.\\ \\ Lors d'un \gls{atomic swap} les HTLC vont être utilisés de manière centrale car ils vont permettre d'apporter les garanties que nous avons vue dans la partie précédente. Il faut voir les échanges atomiques comme une généralisation de l'utilisation des HTLC. Lors d'un \gls{atomic swap} les deux \textit{\gls{blockchain}s} mises en relation doivent pouvoir communiquer et échanger sur une interface commune comme un portefeuille multi signature ou un canal d'échange mis en place spécialement pour cette transaction. \\ \\ Si nous nous penchons sur le déroulement d'un \gls{atomic swap} à deux parties nous pouvons déduire les étapes suivantes: \begin{enumerate} diff --git a/docs/rapportFinal/decentralisation/lightning.tex b/docs/rapportFinal/decentralisation/lightning.tex index 371e8e8..bbde8a9 100644 --- a/docs/rapportFinal/decentralisation/lightning.tex +++ b/docs/rapportFinal/decentralisation/lightning.tex @@ -9,7 +9,7 @@ Ils sont des échanges d’\gls{actif}s internes au réseau et ont donc leurs pr \caption{Architecture \textit{\gls{off chain}}} \label{fig:offchain} \end{figure} -Les transactions \textit{\gls{off chain}} sont confirmées en dehors du réseau principal de la \textit{\gls{blockchain}}, ce qui entraîne souvent un processus moins cher et plus rapide pour l’utilisateur. +Les transactions \textit{\gls{off chain}} sont effectués en dehors du réseau principal de la \textit{\gls{blockchain}}, ce qui entraîne souvent un processus moins cher et plus rapide pour l’utilisateur. Tout cela se fait dans un objectif bien précis qui est de garder le maximum de sécurité et de fiabilité de la \textit{\gls{blockchain}} mère tout en essayant d'améliorer la vitesse d'échange et les frais de transaction. Afin d'illustrer comment fonctionne les échanges \textit{\gls{off chain}} nous allons nous concentrer sur une implémentation en particulier: le réseau Lightning. @@ -17,7 +17,7 @@ Afin d'illustrer comment fonctionne les échanges \textit{\gls{off chain}} nous Le réseau lightning (provenant de l'anglais \textit{Lightning Network} et abrégé par LN) fait partie des processus d'échanges que l'on qualifie d'\textit{\gls{off chain}} car il se déroule en dehors de leur \textit{\gls{blockchain}s} principale, ce protocole est un cas concret de cette famille. Ce réseau est une couche de protocole de paiement construite au-dessus de la \textit{\gls{blockchain}} \gls{Bitcoin} qui vise à accélérer les transactions \gls{Bitcoin}, à réduire les coûts et à améliorer la mise a l'échelle \cite{poon2016bitcoin}. -Il permet aux utilisateurs de créer des canaux de paiement peer-to-peer bidirectionnels pour effectuer des transactions en dehors de la \textit{\gls{blockchain}} principale (voir Figure \ref{fig:lightningCouche}), permettant des transactions plus rapides, moins chères et plus privées.\\ +Il permet aux utilisateurs de créer des canaux de paiement \textit{peer-to-peer} bidirectionnels pour effectuer des transactions en dehors de la \textit{\gls{blockchain}} principale (voir Figure \ref{fig:lightningCouche}), permettant des transactions plus rapides, moins chères et plus privées.\\ Les transactions sur le réseau lightning sont effectuées avec des \gls{smart contract}s qui permettent aux utilisateurs de transférer des fonds à des tiers sans l'approbation de la \textit{\gls{blockchain}} principale ou bien d'un tiers de confiance. Les canaux de paiement flash sont créés en verrouillant temporairement des fonds sur une adresse multi-signature (voir Figure \ref{fig:lightningNetwork}), qui est ensuite utilisée pour envoyer des transactions à d'autres participants du réseau.\\ Le réseau lightning utilise un système de routage pour acheminer les paiements entre les participants, en utilisant les canaux de paiement existant pour créer des itinéraires optimaux entre les participants. @@ -57,7 +57,7 @@ Même si le réseau Lightning permet déjà de faire des échanges \textit{\gls{ Le MIT a donc proposé un ouvrage scientifique\cite{mathus2018lightning} afin de proposer une interface plus simple à la fois pour les \gls{blockchain}s mises en cause et les utilisateurs souhaitant utiliser le réseau. Leur \textit{Proof of Concept}\cite{pocMIT} se base sur un fork du réseau Lightning appelé "lit" leur but est de contrer le problème de mise à l'échelle du réseau lightning grace à leurs améliorations. De même ils cherchent à inclure dans le réseau lightning des \gls{blockchain}s qui n'ont pas de valeurs monétaires (informations, NFT,etc.). - +\\ Leur programme rajoute 4 commandes au réseau Lightning mentionné précédemment, ce qui va permettre d'avoir une interface plus simple pour les acteurs des échanges : \begin{itemize} \item \textit{Price}: Commande qui permet aux utilisateurs de rechercher la valeur marchande actuelle en USD de toute crypto-monnaie disponible sur le site \textit{coinranking.com}.\\