Le réseau Moonbeam a été officiellement lancé le 11 janvier 2022.
Lors du lancement, les transferts et la fonctionnalité EVM ont été activés et l’accès SUDO a été révoqué. Étant donné que Moonbeam a été la première parachain à devenir pleinement opérationnel sur Polkadot.
Il s’agit de l’une des premières implémentations complexes de parachain basé sur Substrate offrant une fonctionnalité générique de contrat intelligent, et qu’il introduisait également de nombreuses fonctionnalités inédites basées sur la technologie Substrate et Polkadot.
Les développeurs de Moonbeam ainsi que la Fondation Moonbeam ont décidé de développer et de déployer une fonctionnalité de sécurité unique appelée Mode de maintenance depuis la version initiale.
La palette de maintenance est un module qui fait partie de tous les runtimes de Moonbeam et qui est destiné à être utilisé uniquement dans des cas extrêmement rares de menaces existentielles pour le réseau. Le mode suspend le traitement des transactions et l’exécution de l’EVM tandis que la production régulière de blocs se poursuit.
Les opérations de gouvernance et de staking continuent de fonctionner. Le mode Maintenance est lancé par le comité technique, qui a été nommé par la Moonbeam Foundation et les premiers membres actifs de la communauté de développement.
Cette fonction a été conçue pour supporter les mises à jour d’urgence du réseau. La mise à jour du réseau a toujours un délai d’une heure entre l’annonce et la mise en œuvre, en raison du fonctionnement des systèmes de mise à niveau des relais et des parachains.
Dans le cas d’une menace existante, le réseau serait vulnérable pendant cette période.
L’activation du mode maintenance permet au réseau de se mettre à niveau tout en bloquant tout acteur malveillant qui tenterait d’exploiter la vulnérabilité divulguée.
Un autre cas d’utilisation du mode de maintenance est celui des migrations d’exécution complexes qui obligeraient la blockchain à migrer des données pendant plusieurs blocs. Une telle migration pourrait être compromise si d’autres transactions étaient incluses dans les mêmes blocs. L’activation du mode maintenance pendant ces blocs vise à prévenir ce risque.
Une fois le mode maintenance activé, le runtime échouera automatiquement à exécuter les transferts de solde, les appels de contrats intelligents, etc. (une liste complète peut être trouvée ici : https://github.com/PureStake/moonbeam/blob/master/runtime/moonbeam/src/lib.rs#L900
De plus, les nœuds des collateurs refuseront d’ajouter ces transactions aux blocs afin d’éviter la perception de frais pour les transactions défaillantes.
Le mode de maintenance ne peut être promulgué que par la gouvernance de Moonbeam par un vote « oui » d’au moins deux tiers des membres du comité technique, qui se compose actuellement de 5 membres de la Moonbeam Foundation et de PureStake.
- Le mode maintenance ne change PAS les permissions d’exécuter des transactions privilégiées.
- Le mode Maintenance ne modifie PAS la logique des transactions autorisées.
- Le mode de maintenance s’applique à TOUS les comptes, avec les MÊMES règles.
- Le mode de maintenance peut être désactivé par le comité technique, en utilisant le même processus que lors de son activation.
Processus de décision pour l’activation du mode de maintenance
En cas d’urgence, le comité technique se réunit pour discuter du problème et évaluer le risque pour le réseau. Au moins 4 membres du comité doivent être présents.
Le mode maintenance sera envisagé si l’incident est classé comme une menace existentielle pour le réseau et que toutes les autres options ont été épuisées.
À ce moment-là, une proposition de mise en œuvre de la maintenance sera soumise à la blockchain et les deux tiers du comité technique (actuellement 4 membres sur 5) devront voter « oui » pour activer la maintenance.
Il est prévu que ce type de processus soit changé après le déploiement en production des fonctionnalités de la gouvernance v2 sur Kusama et Polkadot, qui seront intégrées à Moonbeam.
La gouvernance v2 décentralisera davantage la prise de décision sur le réseau.
Première utilisation du mode maintenance – Rapport de bogue Immunefi
Le 27 juin 2022, la Moonbeam Foundation a reçu un rapport de bogue via la plateforme de prime de bogue Immunefi concernant un bogue dans la bibliothèque Frontier qui pourrait conduire à une incohérence dangereuse entre le runtime et l’environnement EVM.
Le bug pourrait être exploité pour miner des actifs non sécurisés sur le réseau. La bibliothèque Frontier est développée par l’écosystème Polkadot et maintenue par Parity.
Elle est utilisée parmi de nombreux parachains sur Polkadot qui étaient tous vulnérables à l’exploitation. Les développeurs de Moonbeam ont informé Parity et les projets parachains concernés et ont décidé de développer et de déployer un correctif dès que possible.
Environ 4 heures après la divulgation du bug, l’un des projets parachain concernés a par inadvertance partagé des détails sur le problème sur son dépôt Github public alors que Moonbeam était encore vulnérable.
À ce moment-là, le mode maintenance a été activé pour empêcher toute exploitation du réseau encore non protégé, ce qui était de plus en plus probable en raison de la divulgation accidentelle.
Quelques heures plus tard, le bogue a été corrigé par une mise à niveau du runtime du réseau et le mode de maintenance a pris fin. Le réseau a repris son fonctionnement normal.
Mode de maintenance en réponse au piratage du Bridge Nomad
Des rapports ont indiqué que des transactions irrégulières se produisaient sur le côté Ethereum d’un contrat intelligent utilisé par Nomad, une application de pont tierce déployée sur le réseau Moonbeam.
Comme les impacts semblaient être étendus et que la cause profonde du problème n’était pas immédiatement connue, le mode maintenance a été activé.
Le mode de maintenance a pris fin et les opérations normales du réseau ont repris peu après que la source de la vulnérabilité ait été attribuée au contrat de pont Nomad lui-même et non au code de Moonbeam.