(Episode 2 sur 5) Nous avons parlé des rollups dans le premier volet de cette série consacrée aux couches secondaires d’Ethereum. Aujourd’hui nous allons voir comment ils fonctionnent, et surtout, qui coordonne le ballet des transactions entre la chaîne principale et les chaînes secondaires. Ce chef d’orchestre, c’est le séquenceur. C’est lui qui reçoit, ordonne et soumet les transactions à la chaîne principale.
Le séquenceur est trop important pour qu’on ne lui consacre pas un article entier. Découvrons ensemble comment celui-ci fonctionne concrètement sur un rollup tel qu’Optimism, le premier à avoir introduit cette innovation.
💡Les points-clés
- Le séquenceur reçoit, ordonne et soumet les transactions d’Optimism (ou d’un autre rollup) à la chaîne principale d’Ethereum.
- Il garantit la sécurité et la disponibilité des transactions, mais ne sont pas à l’abri d’une panne technique.
- Pour l’heure, tous les séquenceurs sont centralisés.
- Les séquenceurs décentralisés arrivent, ce qui permettra d’augmenter la décentralisation, la performance et l’interopérabilité des rollups !
1. Qu’est-ce qu’un séquenceur ?
Le séquenceur est le “cerveau” au cœur d’un rollup comme Arbitrum ou Optimism. Comme son nom l’indique, c’est le séquenceur qui reçoit les transactions des utilisateurs et les ordonne dans des lots qui sont ensuite soumis à la chaîne principale (layer 1) d’Ethereum.
A l’heure actuelle, Arbitrum et Optimism possèdent chacun un seul séquenceur. Raison pour laquelle on parle d’un séquenceur “centralisé” 🖥️.
Un exemple de la vie de tous les jours vous permettra de saisir son importance 😉.
Imaginons que vous êtes un étudiant dans une classe et que vous vouliez rendre un devoir à votre professeur. Le devoir consiste à résoudre un problème mathématique et à montrer tes calculs. Voici ce que vous devez faire :
- Vous envoyez votre solution au séquenceur, qui joue le rôle d’un assistant du professeur. Il reçoit les solutions de tous les étudiants de la classe et les met dans une boîte.
- Le séquenceur prend la boîte et la donne au professeur, qui la place sur son bureau. C’est ce qu’on appelle la chaîne de transactions : c’est l’endroit où le professeur stocke les boîtes qu’il reçoit des séquenceurs.
- Le séquenceur ouvre la boîte et regarde les solutions des élèves. Dans le bureau du professeur, il vérifie que les calculs sont corrects et qu’ils respectent les règles du problème. Il note le résultat final de chaque solution sur un papier. Il appelle ce papier la racine d’état : c’est un résumé qui indique l’état du problème après chaque solution.
- Le séquenceur prend le papier et le donne au professeur, qui le place sur une étagère. C’est ce qu’on appelle la chaîne d’engagement d’état : c’est l’endroit où le professeur stocke les papiers qu’il reçoit des séquenceurs.
2. “EVM compatible” : pourquoi est-ce important d’avoir un séquenceur bâti avec les mêmes outils qu’Ethereum ?
Comme vous le savez sans doute, Ethereum repose sur une communauté de développeurs très active et très compétente.
Depuis des années, ils utilisent et réutilisent la même boîte à outils :
- SOLIDITY / VYPER : les deux langages de programmation principaux pour créer des smart contracts, avec de nombreux outils associés (par exemple Ethers, Hardhat, dapp, slither).
- MACHINE VIRTUELLE ETHEREUM (EVM) : la machine virtuelle la plus populaire pour les blockchains, dont le fonctionnement interne est bien maîtrisé par rapport aux autres machines virtuelles alternatives ✍️.
- GO-ETHEREUM (GETH) : l’implémentation la plus répandue du protocole Ethereum, qui représente plus de 75 % des nœuds du réseau. C’est un logiciel très robuste 💪, très testé et très fiable 👌
Comme Arbitrum et Optimism utilisent Ethereum comme couche 1, il serait dommage de ne pas profiter de tous ces outils existants !
Cela faciliterait la vie des développeurs, qui n’auraient pas besoin d’apprendre une nouvelle technologie. L’argument de l’expérience développeur est souvent avancé, mais il y a un autre aspect important à considérer : la sécurité.
La sécurité est primordiale dans le domaine des blockchains.
On ne peut pas se permettre de faire des erreurs quand on manipule l’argent des autres. En modifiant légèrement les outils existants, au lieu de tout recréer à partir de zéro, on peut conserver la plupart des propriétés de sécurité du logiciel original.
L’audit devient alors plus simple, car il suffit de vérifier les différences par rapport à la version initiale, au lieu de revoir tout un code qui peut contenir plus de 100 000 lignes 😄.
C’est Optimism qui, le premier, a repris chaque élément de la boîte à outils Ethereum pour bâtir son séquenceur, devenant ainsi le premier layer 2 EVM-compatible.
3. Séquenceurs centralisés : quels sont les risques ?
Vous savez maintenant ce qu’est un séquenceur d’un rollup : c’est le logiciel qui reçoit, ordonne et soumet les transactions à la chaîne principale d’Ethereum.
Pour qu’une transaction soit soumise à la chaîne principale, elle doit être signée par un certain nombre de parties autorisées, qui peuvent être des utilisateurs, des opérateurs de rollups ou des vérificateurs. Les multisignatures sont donc un moyen de renforcer la sécurité et la décentralisation des séquenceurs.
Mais vous vous dites peut-être qu’il y a un risque à dépendre d’un seul séquenceur qui pourrait être malhonnête ou défaillant. Vous avez raison, car s’ils fonctionnent, tout n’est pas parfait 😥.
Exemple avec Arbitrum :
We are currently experiencing Sequencer downtime. Thank you for your patience as we work to restore it. All funds in the system are safe, and we will post updates here.
— Arbitrum (💙,🧡) (@arbitrum) January 9, 2022
Ou encore Optimism :
Today at 1:27 PM UTC, a rare race condition deadlocked the OE mainnet sequencer. As a result, transactions could temporarily only be submitted via L1. Our team investigated and deployed a temporary fix at 2:45 PM. We’ve identified a long-term fix and will be deploying it asap.
— Optimism (✨🔴_🔴✨) (@optimismFND) November 19, 2021
Ou enfin zkSync Era :
NETWORK UPDATE: Today, the zkSync Era network experienced downtime from 1:52–6:02 AM CET. Our team identified the cause and resolved the issue, and the system is healthy and operating 100% as expected again. We’ll provide a post-mortem with further details to the community soon.
— zkSync ∎ (@zksync) April 1, 2023
Il existe plusieurs solutions pour cela, mais l’une des plus intéressantes est celle des séquenceurs partagés. Qu’est-ce que c’est ? C’est un réseau qui s’occuperait de séquencer les transactions pour plusieurs rollups à la fois 💡.
4. Astria, Espresso et Radius : les séquenceurs décentralisés, nouveau défi des rollups
Il existe plusieurs projets qui travaillent sur des séquenceurs partagés, comme Astria, Espresso ou Radius. Chacun a ses propres caractéristiques et avantages, mais ils partagent la même vision : rendre le Web3 plus rapide, moins cher et plus ouvert.
Concrètement, voici comment ça marche :
- Le séquenceur partagé reçoit les transactions des utilisateurs de différents rollups et les regroupe dans des lots. Il publie ces lots sur la chaîne principale d’Ethereum, qui sert de couche de disponibilité des données (DA). Cela garantit que les données sont accessibles à tous et ne peuvent pas être modifiées.
- Il publie également les racines d’état intermédiaires, qui sont des résumés cryptographiques qui indiquent l’état du système après chaque transaction. Il les publie sur une autre chaîne, qui sert de couche d’engagement d’état (SE). Cela permet aux nœuds de vérifier que le séquenceur respecte les règles du protocole et ne triche pas.
- Les nœuds complets des rollups peuvent alors télécharger les transactions et les racines d’état intermédiaires à partir des couches DA et SE. Ils peuvent choisir de ne traiter qu’un sous-ensemble des transactions, selon leurs préférences. Ils peuvent aussi détecter et signaler toute fraude commise par le séquenceur ou par les utilisateurs.
On voit que les séquenceurs partagés offrent une plus grande flexibilité et une meilleure scalabilité aux rollups. Surtout, ils permettent aussi d’améliorer l’interopérabilité entre les rollups.
Nous voici rendus à la fin de ce deuxième volet de notre série consacrée aux layer 2. Dans le prochain épisode de cette série, nous découvrirons ensemble tout ce qu’il faut savoir sur les Rollups de type zk (et zkEVM)💡, les concurrents des rollups optimistes à l’image d’Arbitrum et Optimism.
Sources : Bankless, Paradigm Research, Paradigm Research
Sur le même sujet :
- Layer 2 : comment fonctionnent les couches secondaires d’Ethereum ?
- Optimism : le layer 2 d’Ethereum a réalisé sa mise à jour Bedrock