modification sur la forme de la partie wormhole de la présentation

This commit is contained in:
louisdeck
2023-03-23 20:22:50 +01:00
parent 57f5e1e8b3
commit 8d048c3f62

View File

@ -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}