mirror of
https://etulab.univ-amu.fr/v18003685/pfe-blockchain.git
synced 2024-02-26 02:14:01 +01:00
modification sur la forme de la partie wormhole de la présentation
This commit is contained in:
@ -1,19 +1,29 @@
|
||||
% Auteur : Louis de Campou
|
||||
\begin{frame}{Wormhole}
|
||||
Protocole générique de passage de messages qui connecte 13 chaînes dont Ethereum et Solana.
|
||||
\newline
|
||||
|
||||
Wormhole émet un message à partir d'une chaîne qui sont observés et vérifiés par un réseau de nœuds "Guardian". Après vérification, ce message est soumis à la chaîne cible pour traitement.
|
||||
Protocole de passage de messages qui connecte 13 chaînes dont Ethereum et Solana.
|
||||
\newline
|
||||
|
||||
\begin{itemize}
|
||||
\item Verified Action Approval (VAA)
|
||||
\item Gardiens
|
||||
\item Verified Action Approval (VAA)
|
||||
\item Payloads
|
||||
\item Relayer
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Wormhole : Gardiens}
|
||||
|
||||
Un gardien est une autorité de confiance qui a comme rôle d'observer et de signer un message.\newline
|
||||
|
||||
\begin{block}{Fonctionnement du réseau de gardiens}
|
||||
\begin{itemize}
|
||||
\item Un message est émis depuis une chaîne source
|
||||
\item Chaque gardien observe individuellement ce message, vérifie sa validité puis le signe
|
||||
\item Lorsque 2/3 des gardiens ont signé le message, le consensus est atteint
|
||||
\item Le message signé est transmis à la chaîne cible pour traitement
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Wormhole : Verified Action Approval (VAA)}
|
||||
|
||||
Primitive de messagerie de base de Wormhole
|
||||
@ -21,57 +31,27 @@ Primitive de messagerie de base de Wormhole
|
||||
|
||||
En-tête :
|
||||
\begin{itemize}
|
||||
\item Version VAA (version, byte)
|
||||
\item Index de l'ensemble des gardiens (guardian\_set\_index, u32)
|
||||
\item Nombre de signatures stockées (len\_signatures, u8)
|
||||
\item Collection des signatures ECSDA/secp256k1 (signatures, [][66]byte)
|
||||
\item Index de l'ensemble des gardiens
|
||||
\item Nombre de signatures stockées
|
||||
\item Collection des signatures ECSDA (secp256k1)
|
||||
\end{itemize}
|
||||
|
||||
Corps :
|
||||
\begin{itemize}
|
||||
\item Horadatage du bloc (timestamp, u32)
|
||||
%\item Nombre pseudo-aléatoire (nonce, u32)
|
||||
\item L'ID de la chaîne Wormhole du contrat émetteur (emitter\_chain, u16)
|
||||
\item L'adresse du contrat émetteur (emitter\_address, [32]byte)
|
||||
\item Le numéro de séquence lié à la chaîne et à l'adresse émetteur (sequence, u64)
|
||||
%\item Le niveau de cohérence (consistency\_level, u8)
|
||||
\item La charge utile, le contenu du message VAA (payload, []byte)
|
||||
\item L'ID de la chaîne Wormhole du contrat émetteur
|
||||
\item L'adresse du contrat émetteur
|
||||
\item Le payload
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Wormhole : Gardiens}
|
||||
«Un ensemble de noeuds distribués qui surveillent l'état de plusieurs blockchains»
|
||||
\newline
|
||||
|
||||
19 gardiens à parts égales définis comme «les sociétés de validation les plus importantes et les plus connues dans le domaine des crypto-monnaies».
|
||||
\newline
|
||||
|
||||
«Décentralisation : le contrôle du réseau doit être réparti entre plusieurs parties»
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Wormhole : Gardiens}
|
||||
Rôle : observer des messages (format VAA) puis signer le corps du message contenant le payload.\newline
|
||||
|
||||
La signature du gardien correspondant est ensuite ajouté dans l'en-tête du VAA avec incrémentation de len\_signatures\newline
|
||||
|
||||
Chaque gardien travaille individuellement («isolation») puis mise en commun des signatures (=> multisig) qui forme une preuve qu'un état a été observé et validé par une majorité du réseau Wormhole.\newline
|
||||
|
||||
Mécanisme de consensus : Proof of Authority (2/3 des signatures nécessaires pour parvenir au consensus)\newline
|
||||
|
||||
1 charge utile par VAA => 13 signatures + 13 vérifications pour 1 charge utile
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Wormhole : Payloads}
|
||||
|
||||
Charges utiles spécifiques attachées à un VAA depuis une chaîne source pour indiquer à la chaîne cible comment traiter le message Wormhole après vérification.\newline
|
||||
|
||||
5 payloads au total :
|
||||
5 payloads au total dont :
|
||||
\begin{itemize}
|
||||
\item Transfer (déclenche la libération de jetons verrouillés)
|
||||
\item TransferWithPayload
|
||||
\item AssetMeta (atteste les méta-données de l'actif, obligatoire avant un premier transfert)
|
||||
\item RegisterChain (enregistre le contrat bridge pour une chaîne étrangère)
|
||||
\item UpgradeContract
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
@ -80,28 +60,19 @@ Charges utiles spécifiques attachées à un VAA depuis une chaîne source pour
|
||||
Pour transférer des jetons des chaînes A à B, il y a verrouillage des jetons sur la chaîne A puis on frappe ("mint") sur la chaîne B.\newline
|
||||
|
||||
\begin{itemize}
|
||||
\item ID de la charge utile (payload\_id, u8)
|
||||
\item Montant du transfert (amount, u256)
|
||||
\item L'adresse sur la chaîne d'origine (token\_address, u8[32])
|
||||
\item ID de la chaîne d'origine (token\_chain, u16)
|
||||
\item L'adresse sur la chaîne de destination (to, u8[32])
|
||||
\item ID de la chaîne de destination (to\_chain, u16)
|
||||
\item Une taxe payée au relayer (fee, u256)
|
||||
\item ID de la charge utile
|
||||
\item Montant du transfert
|
||||
\item L'adresse sur la chaîne d'origine
|
||||
\item ID de la chaîne d'origine
|
||||
\item L'adresse sur la chaîne de destination
|
||||
\item ID de la chaîne de destination
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Wormhole : Relayer}
|
||||
«Un processus qui délivre un ou plusieurs VAA(s) à une destination»
|
||||
\begin{frame}{Wormhole : Conclusion}
|
||||
|
||||
\begin{itemize}
|
||||
\item Sans confiance
|
||||
\item Sans privilèges
|
||||
\begin{itemize}
|
||||
\item Le réseau de gardiens est l'élement le plus critique de l'écosystème mais aussi le plus opaque
|
||||
\item Wormhole se dit décentralisé mais ne l'est pas selon notre définition
|
||||
\end{itemize}
|
||||
|
||||
\begin{enumerate}
|
||||
\item Un VAA est émis depuis la chaîne source indiquant que tant de jetons ont été verrouillés
|
||||
\item VAA transmis aux gardiens
|
||||
\item Signature de 2/3 des gardiens
|
||||
\item Transmission du VAA signé à la chaîne cible
|
||||
\end{enumerate}
|
||||
\end{frame}
|
Reference in New Issue
Block a user