Rejoignez-Nous sur

Migrer notre boulangerie Tezos à travers l'Atlantique avec seulement 1 minute d'arrêt

1*O YN0qEDmmIia Y1s l7eg

News

Migrer notre boulangerie Tezos à travers l'Atlantique avec seulement 1 minute d'arrêt

Coinbase

Par Luke Youngblood

introduction

Depuis notre lancement en 2018, Coinbase Custody stimule l'innovation au nom de nos clients, qui souhaitent de plus en plus participer aux réseaux dans lesquels ils ont investi. Ces nouvelles formes de participation au réseau vont au-delà de la fourniture de la conservation des actifs numériques la plus sûre et la plus fiable disponible et inclure des activités comme voter en gouvernance et jalonnement. Nous implantons activement, ou participons à la création de nouveaux blocs dans le grand livre numérique, sur le réseau Tezos depuis début 2019. C'est ce que l'on appelle parfois la «cuisson».

Prise en charge de nouveaux produits financiers

À l'automne 2019, Amun a lancé le premier Tezos Exchange Traded Product (ETP), à la SIX Swiss Exchange. Le ETP Amun Tezos est exposé à la performance des prix du token Tezos / XTZ, mais génère également un rendement en raison du jalonnement (cuisson) effectué par Amun pour le compte des investisseurs. Coinbase Custody fournit non seulement la garde des jetons Tezos / XTZ sous-jacents pour Amun, mais il joue également ces jetons en leur nom. Cependant, Amun avait besoin que cette activité de jalonnement ait lieu dans l'UE afin de pouvoir se conformer à la réglementation, mais la boulangerie Coinbase Custody Tezos opérait actuellement aux États-Unis. C'est l'histoire de la façon dont nous avons migré notre boulangerie Tezos des États-Unis vers l'Irlande avec seulement 1 minute d'arrêt.

Sécuriser le réseau Tezos

Contrairement à la preuve de travail, dans la preuve des réseaux de pieu, les compétences de sécurité et opérationnelles remplacent la puissance de calcul brute et l'électricité comme le mécanisme central qui sécurise les transactions dans le grand livre numérique. Les validateurs, qui sont les mêmes que les mineurs en preuve de travail, fournissent des attestations cryptographiques sécurisées et hautement disponibles en votant sur la validité ou non des transactions dans le registre numérique.

Génération de votes et de signatures

Afin de voter ou de produire un bloc sur lequel d'autres validateurs voteront, un validateur doit signer le vote ou le bloc avec sa clé privée. Si nous stockions simplement la clé privée sur notre nœud de validateur, tout attaquant qui serait en mesure de compromettre notre nœud de validateur serait non seulement en mesure de compromettre nos dépôts de sécurité, qui sont nécessaires pour miser sur le réseau Tezos, ils pourraient également être en mesure de attaquer le réseau lui-même en votant sur une version alternative du registre numérique qui censure les transactions. En preuve de travail, cela s'appelle une attaque à 51%, et en preuve d'enjeu les conséquences seraient similaires. La capacité de censurer les transactions pourrait compromettre les principes fondamentaux de ces réseaux décentralisés: résistance à la censure et immuabilité.

Coup de bâton

Afin d'augmenter la sécurité de ces réseaux et d'empêcher les validateurs de mauvaise conduite et censure des transactions, les validateurs doivent mettre en place des dépôts de garantie, parfois appelés caution, et si un participant du réseau découvre qu'ils ont voté deux fois à la même hauteur de bloc, ils perdent ces dépôts de garantie et récompenses. Ceci est connu sous le nom de «slashing» et est un mécanisme important qui protège la preuve des réseaux de pieu. Le cautionnement Coinbase Custody sert de dépôt de garantie qui atténue le risque de perte potentielle des fonds des clients.

Signature à distance

Avant le lancement du bétanet Tezos en juin 2018, les premiers développeurs de la communauté tels que Blockscale, Nomadic Labs et Obsidian Systems ont développé une nouvelle solution pour aider à sécuriser les réseaux de preuve de participation: le signataire distant. Au lieu de stocker des clés privées sur un nœud de validateur lui-même, où elles pourraient être compromises par un attaquant, les clés privées pourraient être stockées dans un système distant, qui pourrait inclure un module de sécurité matérielle (HSM) pour empêcher l'exfiltration du matériel de clé privée. De plus, un compteur à augmentation monotone pouvait être incrémenté à chaque signature de vote, ce qui permettait pour la première fois une fonctionnalité de sécurité critique: la protection de double signature. Si un vote avait déjà été signé à cette hauteur, toute tentative de signer un autre vote à la même hauteur serait rejetée, protégeant le validateur du risque de coupure.

Sécurité du validateur de garde Coinbase

Coinbase Custody déploie nos validateurs conformément aux meilleures pratiques en matière de sécurité des validateurs. Nous tirons parti d'une solution de signature à distance qui utilise un mutex ou un verrou mutuellement exclusif. UNE mutex est un concept en informatique qui est largement utilisé dans les systèmes de négociation électroniques et les marchés où les temps d'arrêt ne sont pas une option, mais l'exécution d'une transaction deux fois serait également inacceptable. Plusieurs systèmes informatiques peuvent tenter d'exécuter une transaction, par exemple, mais un seul système pourra acquérir le mutex et exécuter la transaction. Cela garantit qu'un échange est exécuté exactement une fois, et une seule fois. Lorsqu'un de nos valideurs veut signer un vote, il doit d'abord acquérir le mutex, auquel cas il mettra à jour le compteur à augmentation monotone, qui représente la hauteur de bloc à laquelle le vote est signé, et enfin générer la signature cryptographique nécessaire pour voter . Si un validateur tente de signer un vote pour une hauteur de bloc qui a déjà été votée, le compteur à augmentation monotone empêchera cela, et si un validateur tente de mettre à jour le compteur, mais qu'un autre validateur a déjà acquis le mutex, cette mise à jour échouera et la génération de signature sera empêchée.

Test et sécurité

Lors de la conception et de la mise en œuvre de systèmes distribués hautement sécurisés tels que la solution de signature à distance, les tests et la sécurité sont d'une importance capitale. Par exemple, au début de notre processus de développement, nous avons découvert un cas de bord qui aurait pu conduire à une double signature dans des circonstances particulières. Afin de minimiser ces risques, nous écrivons non seulement des tests unitaires complets pour chaque partie du signataire distant, nous exécutons en continu plus d'un validateur sur les réseaux de test Tezos, et tous tentent de signer des messages à tout moment. Cela nous donne une assurance continue que notre protection de double signature fonctionne à tout moment. Nous publions d'abord les nouvelles mises à jour logicielles des validateurs testnet, et les laissons fonctionner pendant un certain temps, avant de publier les mises à jour sur mainnet. En testant cette fonctionnalité de sécurité critique en continu, nous pouvons minimiser le risque d'un défaut logiciel entraînant une coupure.

Le défi: migrer en Irlande

Maintenant que vous avez une idée de la façon dont notre solution de signature à distance protège contre la double signature et la barre oblique, la migration de notre validateur des États-Unis vers l'Irlande a présenté un défi unique pour nous: le verrou mutex que nous utilisons nécessite une forte cohérence et offre une haute disponibilité en opérant dans plusieurs centres de données géo-proches les uns des autres (moins de 100 miles). Nous aurions besoin d'un verrou mutex séparé en Irlande, car la lumière ne peut pas voyager assez rapidement à travers l'océan Atlantique pour fournir la même cohérence forte sur une si longue distance. Le fait d'avoir un verrou mutex séparé signifie que les deux ne s'excluent plus mutuellement et que le risque de double signature lors d'une migration est considérablement accru.

Un autre défi auquel nous avons été confrontés est que les validateurs Tezos nécessitent un accès local au stockage blockchain d'un nœud Tezos complet pour créer des blocs. Au moment de la rédaction, cela nécessitait plus de 300 Go de stockage étroitement couplé au validateur. Chez Coinbase Custody, nous exploitons un outil de déploiement automatisé appelé Codeflow qui réhydrate ces données du stockage secondaire et démarre le nœud et le validateur. Ce processus est entièrement automatisé pour augmenter la sécurité et réduire le risque d'erreur humaine, mais en raison de la grande quantité de données, il peut prendre environ une heure.

Options de migration

Compte tenu de nos contraintes, nous avons envisagé quelques options de migration:

  1. Arrêtez complètement le validateur aux États-Unis, puis lancez un déploiement du validateur Irlande. Cela entraînerait environ une heure d'indisponibilité pendant que le validateur Irlande réhydraterait les données du stockage secondaire, avant le démarrage du processus de validation, mais cela garantirait que nous ne risquions pas de double signature.
  2. Démarrez le validateur en Irlande et essayez d'arrêter le validateur américain au moment où le validateur irlandais a terminé la réhydratation des données. Cela a été jugé trop risqué car s'il y avait un chevauchement de temps où les deux validateurs fonctionnaient, nous pourrions potentiellement doubler la signature et nous exposer à un risque de réduction.

Ces deux options nous ont semblé sous-optimales. De plus, notre infrastructure en Irlande était toute neuve et n'avait pas été complètement testée en production de bout en bout, donc le risque d'une migration échouée était grand. Nous devrons peut-être revenir à l'infrastructure américaine, ce qui nécessiterait une heure supplémentaire d'indisponibilité. Nous avons commencé à envisager une troisième option, plus créative: le découplage de l'endosseur.

Découplage de l'endosseur

Un validateur Tezos a deux composantes principales: le boulanger, qui produit de nouveaux blocs qui incluent des transactions dans le grand livre numérique, et l'endosseur, qui vote sur les blocs que d'autres validateurs produisent. Le boulanger, contrairement à l'endosseur, est étroitement couplé à un nœud local Tezos et nécessite un accès au stockage local pour créer de nouveaux blocs. Il s'agit d'un client léger et sans état qui doit uniquement communiquer avec un nœud Tezos via RPC et le signataire distant pour générer des signatures. La compréhension fondamentale que nous avons acquise était qu'en découplant l'endosseur du nœud Tezos complet requis pour exécuter un validateur, nous pouvions effectuer une migration presque sans temps d'arrêt. Les grands validateurs Tezos ne produisent ou ne préparent de nouveaux blocs que toutes les quelques minutes ou heures, mais ils doivent voter ou approuver presque toutes les minutes. Nous pourrions trouver une fenêtre où nous n’avions pas à produire de blocs pendant quelques heures, et migrer le boulanger pendant cette période, et nous pourrions migrer l’endosseur séparément.

Fin de la migration

Premièrement, nous avons découplé l'endosseur. Nous avons créé un nouveau microservice qui ne contenait que le client endosseur Tezos et l'avons configuré pour communiquer avec les mêmes nœuds périphériques Tezos que nous utilisons pour diffuser les transactions vers le reste du réseau Tezos. Ces nœuds n'exécutent aucun processus de validation, et il y en a 5 aux États-Unis et en Irlande pour améliorer la connectivité et la disponibilité. L'endosseur devait également obtenir les signatures du signataire distant, tout comme le boulanger. Si vous vous souvenez des limites de notre verrou mutex plus tôt, nous ne pouvions pas avoir une forte cohérence à travers l'océan Atlantique, car la distance était trop grande, nous savions donc que nous devions complètement fermer l'endosseur aux États-Unis avant de le commencer en Irlande. Pour être totalement sûrs que nous ne signerions pas ou voterions, nous avons décidé d'arrêter l'endosseur aux États-Unis, d'attendre qu'un seul vote soit manqué, et seulement ensuite, de commencer l'endosseur en Irlande. Vous pouvez voir ce temps d'arrêt de 1 minute / bloc ici:

La source: TzStats.com

Une fois que nous avons migré avec succès l'endosseur, nous produisions toujours de nouveaux blocs aux États-Unis, tout en votant ou en approuvant l'Irlande. Nous avons ensuite pu trouver une fenêtre de temps de 2 heures où aucun bloc n'avait besoin d'être produit pour migrer le processus de boulanger et terminer la migration vers l'Irlande.

Conclusion

Utiliser le plus grand validateur Tezos avec une quantité importante de dépôts ou d'obligations en jeu n'est pas quelque chose que Coinbase Custody prend à la légère. Nous avons investi massivement dans la meilleure sécurité possible pour minimiser le risque de perte. J'espère que ce message a été informatif et a aidé à vous renseigner sur les défis de l'exploitation d'un grand validateur. Chez Coinbase Custody, nous priorisons non seulement la sécurité et la protection des fonds des clients, mais nous nous efforçons également de sécuriser et de protéger les réseaux auxquels nous participons au nom de nos clients. Investir dans la meilleure sécurité de sa catégorie autour de nos validateurs de preuve de participation fait partie de ce qui fait de nous le dépositaire des actifs numériques le plus fiable.



Traduction de l’article de Coinbase : Article Original

BlockBlog

Le Meilleur de l'Actualité Blockchain Francophone & Internationale | News, Guides, Avis & Tutoriels pour s'informer et démarrer facilement avec Bitcoin, les Crypto-Monnaies et le Blockchain. En Savoir Plus sur L'Équipe BlockBlog

Commenter cet Article

Commenter cet Article

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Plus dans News

Les Plus Populaires

Acheter des Bitcoin

Acheter des Alt-Coins

Sécuriser vos Cryptos

Vêtements et Produits Dérivés

Top