Brevet FR3100350A1 — publié le 20210305

Description Titre de l'invention : migration d'une chaîne de blocs de données DOMAINE DE L'INVENTION [0001] L'invention concerne le domaine des chaînes de blocs et plus particulièrement une technique de migration de chaîne(s) de blocs. ETAT DE LA TECHNIQUE [0002] La technologie d'enregistrement de données au moyen de chaînes de blocs (technique plus connue sous l'appellation anglo-saxonne « blockchain ») est une technologie qui appuie la confiance que l'on peut avoir sur les données enregistrées sur l'historique des données. A priori, on ne peut supprimer aucune donnée stockée dans une chaîne de blocs. Par conséquence, une chaîne de blocs ne fait qu'augmenter en taille de stockage. Or les systèmes ont, généralement, une capacité limitée de stockage qui ne peut donc pas faire face à la croissance potentiellement infinie d'une chaîne de blocs. [0003] Une chaîne de blocs indexe les données jugées importantes. Chaque bloc, chaque transaction, chaque adresse, par exemple, est une dé indexée pour un accès rapide aux données. Par contre, plus un index contient de clés plus ses performances sont réduites. Comme une chaîne de blocs ne fait qu'augmenter en taille de stockage, plus elle est utilisée, plus cette chaîne de blocs stocke des données obsolètes, plus ses performances se réduisent. [0004] 11 apparaît ainsi un besoin de remédier à tout ou partie des problèmes, inconvénients ou insuffisances de l'état de la technique et/ou d'y apporter des améliorations. [0005] RESUME [0006] Selon un premier aspect, la présente description concerne un procédé de migration d'une chaîne de blocs à remplacer, dite première chaîne de blocs, vers une chaîne de blocs de remplacement, dite deuxième chaîne de blocs, le procédé étant mis en oeuvre par un ou plusieurs ordinateurs. Le procédé de migration comprend : une initialisation de la deuxième chaîne de blocs, l' initial isation comprenant une génération, dans une chaîne de blocs principale configurée pour superviser l'accès aux première et deuxième chaînes de blocs, d'une zone de supervision de la deuxième chaîne de blocs configurée pour stocker des droits utilisateurs sur la deuxième chaîne de blocs; une inscription d'un ou plusieurs utilisateurs auprès de la deuxième chaîne de blocs, l'inscription d'un utilisateur comprenant un enregistrement dans un annuaire d'utilisateurs dans la chaîne de blocs principale d'une adresse secondaire allouée à cet utilisateur pour la connexion à la deuxième chaîne de blocs; une génération dans la deuxième chaîne de blocs d'un ensemble de blocs de données correspondant à une 2 image de la première chaîne de blocs, l'image correspondant à un instant déterminé dans l'historique de la première chaîne de blocs ; un enregistrement de nouvelles transactions pour lesquelles une requête d'enregistrement est parvenue auprès de la première chaîne de blocs à la fois dans la première chaîne de blocs et dans la deuxième chaîne de blocs pendant une période dite période miroir ; un basculement de tout ou partie des utilisateurs de la première chaîne de blocs vers la deuxième chaîne de blocs de sorte à interdire l'enregistrement de transactions au nom de ces utilisateurs dans la première chaîne de blocs et autoriser l'enregistrement de transactions au nom de ces utilisateurs dans la deuxième chaîne de blocs. [0007] Dans un ou plusieurs modes de réalisation, le procédé selon le premier aspect comprend un basculement définitif vers la deuxième chaîne de blocs par modification des droits des utilisateurs sur la première chaîne de blocs, de sorte que plus aucune transaction ne peut être enregistrée dans la première chaîne de blocs et toute nouvelle transaction est enregistrée uniquement dans la deuxième chaîne de blocs. [0008] Dans un ou plusieurs modes de réalisation du procédé selon le premier aspect, la première chaîne de blocs est mise en oeuvre dans un système de communication comprenant une pluralité de noeuds et une instance de la première chaîne au niveau de chaque noeud, le procédé comprenant, pour au moins un noeud du système de communication, suite au basculement définitif, une suppression de l'instance de la première chaîne de blocs localisée au niveau du noeud considéré. [0009] Dans un ou plusieurs modes de réalisation, le procédé selon le premier aspect comprend une allocation à chaque utilisateur de la deuxième chaîne de blocs d'une adresse multisignée pour la signature de transactions à enregistrer dans la deuxième chaîne de blocs au nom de cet utilisateur, l'adresse multisignée étant générée à partir de l'adresse secondaire allouée à cet utilisateur pour la connexion à la deuxième chaîne de blocs et d'une adresse administrateur de la deuxième chaîne de blocs. [0010] Dans un ou plusieurs modes de réalisation du procédé selon le premier aspect, l'adresse secondaire allouée à un utilisateur pour la connexion à la deuxième chaîne de blocs est stockée dans l'annuaire d'utilisateurs en association avec l'adresse multisignée. [0011] Dans un ou plusieurs modes de réalisation du procédé selon le premier aspect, l'adresse multisignée est utilisée pour enregistrer les nouvelles transactions dans la deuxième chaîne de blocs pendant la période miroir. [0012] Dans un ou plusieurs modes de réalisation du procédé selon le premier aspect, les droits d'un utilisateur sur la deuxième chaîne de blocs sont enregistrés dans la zone de supervision en association avec l'adresse multisignée allouée à cet utilisateur. [0013] Dans un ou plusieurs modes de réalisation du procédé selon le premier aspect, la gé- nération de l'image de la première chaîne de blocs comprend un enregistrement dans la 3 deuxième chaîne de blocs d'un ensemble de blocs de données représentatifs d'unités d'actifs détenus par un ou plusieurs utilisateurs de la première chaîne de blocs à l'instant déterminé. [0014] Dans un ou plusieurs modes de réalisation, le procédé selon le premier aspect comprend un enregistrement dans la chaîne de blocs principale d'un marqueur pour chaque utilisateur indiquant si cet utilisateur a basculé ou non vers la deuxième chaîne de blocs. [0015] Les différents modes de réalisation mentionnés ci-dessus sont combinables entre eux pour la mise en oeuvre du procédé selon le premier aspect. [0016] Selon un deuxième aspect, la présente description concerne un dispositif in- formatique ou système informatique comprenant des moyens de mise en oeuvre du procédé selon le premier aspect. Ces moyens peuvent comprendre un ou plusieurs processeurs et une ou plusieurs mémoires comprenant un code de programme d'ordinateur, la ou les mémoires et le code de programme d'ordinateur étant configurés pour, avec le ou les processeurs, causer l'exécution par le dispositif des étapes du procédé selon le premier aspect. Par exemple, la ou les mémoires comprennent un programme d'ordinateur comprenant des instructions configurées pour causer l'exécution par le dispositif des étapes du procédé selon le premier aspect. [0017] Dans un ou plusieurs modes de réalisation, les différentes étapes du procédé selon le premier aspect sont mises en oeuvre par un ou plusieurs programmes d'ordinateur. [0018] Selon un troisième aspect, la présente description concerne ainsi un support de stockage de données lisible par un processeur sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes d'un procédé selon le premier aspect sont mises en oeuvre par un ou plusieurs programmes d'ordinateur. [0019] Selon un quatrième aspect, la présente description concerne ainsi un produit programme d'ordinateur comprenant des instructions pour l'exécution des étapes d'un procédé selon le premier aspect lorsque le programme d'ordinateur est exécuté par un processeur de données. BREVE DESCRIPTION DES FIGURES [0020] D'autres buts, caractéristiques et avantages de l'invention apparaîtront à travers la description qui va suivre, donnée uniquement à titre d'exemple non limitatif, et faite par référence aux dessins annexés dans lesquels: [fig.1A] représente de manière schématique un système de communication comprenant des chaînes de blocs; [fig.1B] illustre de manière schématique des aspects d'un noeud d'un système de communication selon la Fig. lA ; Ifig.1CI illustre des aspects de la génération d'une adresse utilisateur ; Ifig.1D1 illustre des aspects de la génération d'une adresse multisignée ; Ifig.2A1 représente de manière schématique les relations entre une chaîne de blocs principale et des chaînes de bloc secondaires Ifig.2B I représente de manière schématique les relations entre une chaîne de blocs principale et des chaînes de bloc secondaires pour la gestion des droits et adresses d'un utilisateur ; Ifig.3AI illustre de manière schématique des aspects d'un procédé de connexion d'un utilisateur à une chaîne de blocs secondaire ; Ifig.3B I représente un organigramme d'un procédé de connexion d'un utilisateur à une chaîne de blocs secondaire selon un ou plusieurs modes de réalisation selon un ou plusieurs modes de réalisation ; Ifig.4A1 illustre de manière schématique des aspects d'un procédé de migration d'une chaîne de blocs secondaire à remplacer vers une chaîne de blocs secondaire de remplacement ; [fig.4B] représente un organigramme d'un procédé de migration d'une chaîne de blocs secondaire à remplacer vers une chaîne de blocs secondaire de remplacement selon un ou plusieurs modes de réalisation. DESCRIPTION DETAILLEE [0021] De manière connue, les chaînes de blocs peuvent être utilisées pour enregistrer n'importe quel type de transactions. En arrière-plan, une chaîne de blocs est généralement définie comme étant un registre informatisé de transactions. La chaîne de blocs (cc registre informatisé) "s'agrandit" au fur et à mesure que des blocs de données y sont enregistrés, ces blocs de données correspondant à de nouvelles transactions ou à des ensembles de nouvelles transactions qui sont ajoutés à la chaîne de blocs. Les nouveaux blocs de données correspondant aux nouvelles transactions sont enregistrés dans la chaîne de blocs après un processus de validation qui est propre à chaque chaîne de bloc. [0022] Lc terme "transaction" peut couvrir tout type d'opération entre un ou plusieurs acteurs. Elle peut être relative à tout type de produit ou matériel, composant de dispositif, emballage et/ou document ou fichier physique ou électronique, y compris des actifs virtuels tels que des données, des fichiers électroniques, des actifs incorporels ou même de la crypto-monnaie. La technologie dite de "chaîne de blocs" permet la création d'un registre informatisé d'opérations, non répudiable, résistant à la falsification. [0023] La Fig. lA représente de manière schématique un système de communication 1000 pour la mise en oeuvre de chaînes de blocs, dans le cas d'une architecture décentralisée. Ce système de communication 1000 comprend plusieurs noeuds 100, 101, 102 communiquant entre eux au travers d'un réseau de communication 110. Ces noeuds sont généralement organisés en réseau de pairs. [0024] Chaque noeud 100, 101, 102 du système de communication 1000 peut correspondre à un ou plusieurs dispositifs informatiques physiquement distincts, mettant en oeuvre un logiciel correspondant à une ou plusieurs applications logicielles. Ce logiciel met en oeuvre, au niveau du noeud considéré, les fonctionnalités d'une chaîne de blocs et accède à un ou plusieurs jeux de données pour le stockage des blocs de données de la chaîne de bloc considérée. [0025] Pour chaque noeud 100, 101, 102 du système de communication 1000, les blocs de données peuvent être stockés de manière répartie (dans ce cas, on parle de registre distribué, ou « distributcd ledger » selon la terminologie anglo-saxonnc), par exemple sur un ou plusieurs sous-noeuds d'un réseau local au niveau du noeud considéré. [0026] De manière simplifiée et à titre d'exemple, dans le cas de la Fig. 1, le noeud 100 comprend un dispositif informatique 150, mettant en oeuvre les fonctionnalités de deux chaînes de blocs 130, 140 et accédant à deux jeux de données 130, 140, qui correspondent respectivement à ces deux chaînes de blocs 130, 140. De même, le noeud 101 comprend un dispositif informatique 151, mettant en oeuvre les fonctionnalités de deux chaînes de blocs 131, 141 et accédant à deux jeux de données 131, 141, qui correspondent respectivement à ces deux chaînes de blocs 131, 141. De même, le noeud 102 comprend un dispositif informatique 152, mettant en oeuvre les fonctionnalités de deux chaînes de blocs 132, 142 et accédant à deux jeux de données 132, 142, qui correspondent respectivement à ces deux chaînes de blocs 132, 142. [0027] Chaque dispositif informatique 150, 151, 152 peut être mis en oeuvre par une ou plusieurs machines physiquement distinctes. Le dispositif informatique 150 peut présenter globalement l'architecture d'un ordinateur, incluant des composants d'une telle architecture: mémoire(s) de données, processeur(s), bus de communication, interface(s) matérielle(s) pour la connexion de ce dispositif à un réseau ou un autre équipement, interface(s) utilisateur, etc. [0028] Chaque dispositif informatique 150, 151, 152 est configuré pour communiquer via le réseau de communication 110 avec les autres noeuds 100, 101, 102 du système de communication et met en oeuvre tout ou partie des fonctions d'une ou de plusieurs chaînes de blocs associées 130, 131, 132 et/ou 140, 141, 142. [0029] Dans le cas d'une chaîne de blocs permissionnée (avec gestion de droits), chaque dispositif informatique 150, 151, 152 met en oeuvre des fonctions d'inscription d'utilisateurs, d'allocation de droits sur la chaîne de blocs, d'allocation d'adresses utilisateurs, de contrôle d'accès à la chaîne de blocs, de signature et d'enregistrement de transactions, de lecture et écriture de jeux de données ou blocs de données, etc, selon 6 ce qui est décrit dans ce document pour la chaîne de blocs concernée. [0030] Un noeud 100, 101, 102 peut être un noeud complet ou un noeud léger pour une chaîne de blocs donnée. Si le noeud 100, 101, 102 est un noeud complet, le noeud stocke localement (dans un des jeux de données locales) tous les blocs de données de la chaîne de blocs: les blocs de données sont dans ce cas dupliqués autant de fois qu'il y a de noeuds. [0031] Dans l'exemple de la Fig. 1, si on suppose que la chaîne de bloc 130 (respectivement 140) est initialement crée par un administrateur ZO au moyen du dispositif informatique 150, alors chacune des chaînes de blocs 131 et 132 (respectivement 141 et 142) sont une instance de cette même chaîne de blocs 130 (respectivement 140). Si le noeud 100, 101, 102 est un noeud léger, le noeud stocke localement uniquement les blocs de données de l'utilisateur ZO, Z1, ou Z2 de cc noeud. L'invention décrite dans ce document est applicable quel que soit le type de noeud. [0032] Si par exemple un utilisateur Z1 du noeud 101 souhaite se connecter à une chaîne de blocs 130, il va établir, au moyen d'un dispositif informatique 151, une connexion via un réseau de télécommunication au dispositif informatique 150 correspondant à un administrateur ZO de la chaîne de blocs visée. Si le noeud 101 est un noeud complet, une copie intégrale de la chaîne de blocs 130 sera créée au niveau du noeud 101 après la première connexion et après que les droits aient été donnés à cet utilisateur Z1 sur la chaîne de blocs 130. Chaque nouvel utilisateur suivant Z2, Z3 etc pourra se connecter à l'un quelconque des noeuds 100 ou 101 déjà créés. [0033] La Fig. 1B illustre de manière schématique le principe de mise à jour des chaînes de blocs dans le cas d'exemple d'une chaîne de blocs 141 et d'un noeud 101. On suppose ici que les chaînes de blocs 140, 141, et 142 sont des instances d'une même la chaîne de blocs 141. Pour une chaîne de blocs donnée, chaque noeud 101 (respectivement 100, 102) comprend un logiciel 161 (respectivement 160, 162) mettant en oeuvre toutes les fonctions associées à la chaîne de blocs considérée. Ce logiciel 161 (respectivement 160, 162) peut comprendre au moins un premier sous-ensemble logiciel 161A (respectivement 160A, 162A) configuré pour effectuer les opérations d'écriture et de lecture de blocs de données ainsi que les opérations de synchronisation avec les autres instances de la chaîne de blocs sur les autres noeuds. Selon ce qui est demandé par l'utilisateur du noeud 101, le sous-ensemble logiciel 161A met à jour localement l'instance 141 de la chaîne de blocs considérée par enregistrement d'un ou plusieurs nouveaux blocs de données. De manière connue, par un mécanisme de synchronisation mis en oeuvre au travers du réseau de communication 110 reliant les différents noeuds 100, 101, 102, les autres instances 140 et 142 de cette chaîne de blocs sont mises à jour par enregistrement de ces nouveaux blocs de données au niveau des autres noeuds 100 et 102 gérant respectivement ces autres instances 140 et 142 de la chaîne de blocs. 7 Dans le cas de noeuds légers, cette mise à jour peut se limiter aux seuls blocs de données concernés. Le logiciel 161 peut en outre comprendre au moins un deuxième sous-ensemble logiciel 161B (respectivement 160B, 162B), s'appuyant sur le premier sous-ensemble logiciel 161 A et configure pour mettre en oeuvre les différentes fonctionnalités décrites dans ce document. Le logiciel 161 (respectivement 160, 162) peut en outre comprendre au moins un troisième sous-ensemble logiciel 161C (non représenté) s'appuyant sur les premier et deuxième sous-ensembles logiciels 161 A et 161B et configure pour mettre en oeuvre les fonctionnalités d'interface utilisateur. [0034] Le logiciel d'une chaîne de blocs peut correspondre à une ou plusieurs applications logicielles. Chaque sous-ensemble logiciel du logiciel d'une chaîne de blocs peut correspondre par exemple, selon l'architecture logicielle choisie, à une application logicielle autonome au sein du logiciel, ou bien une couche applicative au sein du logiciel ou bien encore à un ou plusieurs composants logiciels au sein du logiciel. Toute autre architecture est envisageable. Chaque opération effectuée sur une chaîne de blocs donnée est effectuée au moyen du logiciel associée à cette chaîne de blocs, exécuté par le dispositif informatique d'un des noeuds. Par exemple, les opérations effectuées par un utilisateur Z1 sur une chaîne de bloc donnée seront effectuées au moyen du logiciel 161 associé à la chaîne de bloc considérée, exécutée par le dispositif informatique 151 du noeud 101 associé à l'utilisateur Zl. [0035] De la même façon, les chaînes de blocs 130, 131, et 132 peuvent être des instances d'une même chaîne de blocs et un mécanisme de synchronisation est alors mis en oeuvre pour ces instances 130, 131, 132 au travers du réseau de communication 110 reliant les différents noeuds 100, 101, 102. [0036] . Chaque bloc de données stocké dans une chaîne de blocs 130, 131, 132 ou 140, 141, 142 peut être accédé par un ou plusieurs utilisateurs selon les droits de ces utilisateurs ZO, Z1, Z2 sur ce bloc de données. [0037] La confiance des chaînes de blocs est, notamment, basée sur la responsabilisation de chaque utilisateur qui devient complètement acteur dans sa propre gestion de données. Un utilisateur peut donc avoir la possibilité de créer des jeux de données, si c'est le cas alors il est le propriétaire légitime du jeu de données, personne d'autre que lui ne peut créer de nouvelles données au sein de ce jeu de données. De plus chacun possède sur sa propre adresse, qui n'est accessible par aucun autre acteur, les données qu'il a pu recevoir. Il est donc, a priori, impossible de réaliser une action à la place de quelqu'un d'autre tout en le laissant autonome sur les actions similaires quel que soit le niveau de droit de celui qui réalise l'action. [0038] Les droits des utilisateurs sur une chaîne de blocs sont définis pour les différentes adresses utilisateurs de la chaîne de blocs permissionnée. Une adresse utilisateur (173) correspond à un identifiant personnel sur la chaîne de blocs (comme pourrait l'être une 8 adresse mail sur serveur de mail). [0039] La Fig. 1C illustre le principe de génération d'une adresse utilisateur (173) pour une chaîne de blocs. L'adresse utilisateur (173) d'une entité utilisatrice (ou utilisateur) de la chaîne de blocs peut être vue comme l'identifiant (unique) de cette entité. Cette adresse utilisateur (173) est généralement, dans le cas d'un chiffrement asymétrique, générée à partir d'une clé publique (172) de signature (et donc de la clé privée (171) puisque la clé publique (172) est en général calculée à partir de la clé privée (171)). Une adresse utilisateur (173) peut être utilisée par une entité utilisatrice telle que : une personne physique, un script ou tout système, autonome ou non, pouvant se connecter à une chaîne de blocs. [0040] La Fig. 1C illustre notamment la dépendance entre la clé privée (171), la clé publique (172) et la signature associée. La clé privée (171) est par exemple générée aléatoirement, puis par un premier algorithme (par exemple ECDSA, Elliptic Curve Digital Signature Algorithm) la clé publique (172) est générée à partir de la clé privée (171), puis par un deuxième algorithme (par exemple une fonction de hachage ou « hash selon la terminologie anglo-saxonne) l'adresse utilisateur est générée à partir de la clé publique (172). [0041] D'une manière générale, un utilisateur de chaîne de blocs peut gérer plusieurs adresses utilisateurs, ces adresses utilisateurs sont conservées dans un portefeuille ou "wallet". [0042] Pour une chaîne de blocs, il est possible de distinguer différentes catégories d'actifs (ou classes d'objet). Dans la terminologie anglo-saxonne, on parle d' « assets », que l'on traduit ici par « actifs ». Par exemple, le terme « Bitcoin » désigne usuellement une chaîne de blocs qui ne contient qu'une seule catégorie d'actifs du même nom: le Bitcoin. Les systèmes de chaînes de blocs plus récents permettent de créer différentes catégories d'actifs selon les besoins des utilisateurs. La classe d'objet est généralement la propriété d'une seule adresse utilisateur appartenant à l'utilisateur créateur de cette classe d'objet et dans ce cas seul cet utilisateur est en mesure de générer de nouvelles unités d'actif pour cet actif. Dans le cas de la chaîne de blocs Bitcoin, chaque utilisateur est propriétaire de l'actif Bitcoin. [0043] Les unités d'actif sont les unités utilisées pour quantifier chaque actif d'une catégorie d'actifs. Par exemple si un actif correspond à une catégorie « Pomme », l'unité d'actif correspond à une «pomme ». Les unités d'actif sont détenues par des adresses qui ont reçues ces unités d'actifs, par exemple suite à des transactions réalisées par la chaîne de blocs. Une instance d'une classe d'objet, indiquant un nombre d'unités d'un actif d'une catégorie donnée, est la propriété d'une seule et même adresse utilisateur (173), c'est-à-dire est la propriété d'un seul utilisateur auquel est affectée cette adresse utilisateur (173). Seul un utilisateur propriétaire d'unités d'actifs est en mesure de 9 transmettre ou de faire des opérations sur des unités d'actifs dont il est propriétaire.. [0044] Les processeurs de chaîne de blocs sont les processus qui passent les transactions du statut « non confirmé » au statut « confirmé », les mineurs par exemple dans le cas d'une chaîne de blocs avec preuve de travail. Par définition, les processeurs ne peuvent accepter, à confirmation, que les transactions techniquement complètes et valides. Une transaction partielle ne peut pas être acceptée par les processeurs et ne peut donc pas être stockée, en tant que transaction, dans une chaîne de blocs. [0045] Les permissions (ou droits utilisateurs) définissent les droits d'une adresse utilisateur (173) sur une chaîne de blocs permissionée. Ce sont les permissions qui indiquent si l'adresse est en mesure de se connecter à la chaîne de blocs, si elle peut envoyer et/ou recevoir des transactions, si elle a la possibilité de créer des actifs. La présente description vise aussi bien des systèmes permissionés, que des systèmes dit nonpermissionés, c'est-à-dire sans la moindre restriction de droits pour tout utilisateur présent ou à venir. [0046] Des exemples de droits pouvant être accordés à une ou des adresses utilisateurs de la chaîne de blocs sont illustrés schématiquement par la Fig. 1D et peuvent comprendre: Des droits de connexion pour une adresse utilisateur (173) ayant le droit de se connecter à la chaîne de blocs (cet ensemble de droits est nommé « Connect » sur la Fig. ID) ; cet ensemble de droits inclut des droits de lecture, un utilisateur peut donc lire les blocs de données ; Des droits d'envoi pour une adresse utilisateur (173) ayant la possibilité d'envoyer de nouvelles transactions dans la chaîne de blocs (possède implicitement le droit de se connecter) (cet ensemble de droits est nommé « Send » sur la Fig. ID) ; Des droits de réception pour une adresse utilisateur (173) ayant la possibilité de recevoir des transactions dans la chaîne de blocs (possède implicitement le droit de se connecter) (cet ensemble de droits est nommé « Receive » sur la Fig. ID) ; Des droits de création d'actif pour une adresse utilisateur (173) ayant le ch-oit de créer de nouveaux actifs dans la chaîne de blocs (possède implicitement le droit d'envoi et de réception) (cet ensemble de droits est nommé «Issue» sur la Fig. ID) ; Des droits de création de blocs pour une adresse utilisateur (173) qui gère la création de nouveaux blocs dans la chaîne de blocs (cet ensemble de droits est nommé « Miner » sur la Fig. 1D) Des droits d'administrateur grâce auxquels il est possible de donner et retirer différents droits à n'importe quelle adresse (cet ensemble de droits est nommé Admin » sur la Fig. ID); Des droits du créateur de la chaîne de blocs qui incluent au moins les droits d'administrateur (cet ensemble de droits est nommé « Origin Node» sur la Fig. 1D). [0047] La Fig. 1D illustre en outre le principe de génération d'une adresse multisignée (180, 190) pour une pluralité d'utilisateurs d'une chaîne de blocs. Une adresse multisignée (180, 190) peut être utilisée pour signer des transactions dans une chaîne de blocs. Une adresse multisignée (180, 190) peut prendre différentes formes selon la chaîne de blocs concernée. Une adresse multisignée (180, 190) est une adresse dont l'utilisation est réservée à un nombre prédéfini de signataires (ou utilisateurs) autorisés. Une adresse multisignée (180, 190) est générée à partir des signatures des signataires autorisés. Une adresse multisignée (180, 190) est définie par le nombre de signatures requises pour confirmer une transaction au moyen de cette adresse multisignée (180, 190) et la liste des utilisateurs associés autorisés (ou signataires) associés à ces signatures. Une adresse multisignée (180, 190) est une adresse utilisée pour une transaction qui peut être signée par P clé(s) publique(s) de signature différentes associées aux signataires autorisés et qui doit être signée par au moins S clé(s) publique(s) de signature associées aux signataires autorisés, avec S REVENDICATIONSProcédé de migration d'une chaîne de blocs à remplacer, dite première chaîne de blocs, vers une chaîne de blocs de remplacement, dite deuxième chaîne de blocs, le procédé étant mis en oeuvre par un ou plusieurs ordinateurs et comprenant : - une initialisation (410) de la deuxième chaîne de blocs, l'initialisation comprenant une génération, dans une chaîne de blocs principale configurée pour superviser l'accès aux première et deuxième chaînes de blocs, d'une zone de supervision (250) de la deuxième chaîne de blocs configurée pour stocker des droits utilisateurs sur la deuxième chaîne de blocs; - une inscription (420) d'un ou plusieurs utilisateurs auprès de la deuxième chaîne de blocs, l'inscription d'un utilisateur comprenant un enregistrement dans un annuaire (230) d'utilisateurs dans la chaîne de blocs principale d'une adresse secondaire allouée à cet utilisateur pour la connexion à la deuxième chaîne de blocs; - une génération (430) dans la deuxième chaîne de blocs d'un ensemble de blocs de données correspondant à une image de la première chaîne de blocs, l'image correspondant à un instant déterminé dans l'historique de la première chaîne de blocs ; - un enregistrement (440) de nouvelles transactions pour lesquelles une requête d'enregistrement est parvenue auprès de la première chaîne de blocs à la fois dans la première chaîne de blocs et dans la deuxième chaîne de blocs pendant une période dite période miroir ; - un basculement (450) de tout ou partie des utilisateurs de la première chaîne de blocs vers la deuxième chaîne de blocs de sorte à interdire l'enregistrement de transactions au nom de ces utilisateurs dans la première chaîne de blocs et autoriser l'enregistrement de transactions au nom de ces utilisateurs dans la deuxième chaîne de blocs. Procédé selon la revendication 1, comprenant un basculement définitif vers la deuxième chaîne de blocs par modification des droits des utilisateurs sur la première chaîne de blocs, de sorte que plus aucune transaction ne peut être enregistrée dans la première chaîne de blocs et. toute nouvelle transaction est enregistrée uniquement dans la deuxième chaîne de blocs. Procédé selon la revendication 1 ou 2, dans lequel la première chaîne de blocs est mise en oeuvre dans un système de communication comprenant 32 [Revendication 4] [Revendication 5] [Revendication 6] [Revendication 7] [Revendication 8] [Revendication 9] [Revendication 10] [Revendication 11] une pluralité de noeuds (100, 101, 102) et une instance de la première chaîne au niveau de chaque noeud, le procédé comprenant, pour au moins un noeud du système de communication, suite au basculement définitif, une suppression de l'instance de la première chaîne de blocs localisée au niveau du noeud considéré. Procédé selon la revendication 1 ou 2, comprenant une allocation à chaque utilisateur de la deuxième chaîne de blocs d'une adresse multisignée (180) pour la signature de transactions à enregistrer dans la deuxième chaîne de blocs au nom de cet utilisateur, l'adresse multisignée (180) étant générée à partir de l'adresse secondaire allouée à cet utilisateur pour la connexion à la deuxième chaîne de blocs et d'une adresse administrateur de la deuxième chaîne de blocs. Procédé selon la revendication 4, dans lequel l'adresse secondaire allouée à un utilisateur pour la connexion à la deuxième chaîne de blocs est stockée dans l'annuaire (230) d'utilisateurs en association avec l'adresse rnultisignée (180). Procédé selon l'une quelconque des revendications 4 à 5, dans lequel l'adresse rnultisignée (180) est utilisée pour enregistrer les nouvelles transactions dans la deuxième chaîne de blocs pendant la période miroir. Procédé selon l'une quelconque des revendications 4 à 6, dans lequel les droits d'un utilisateur sur la deuxième chaîne de blocs sont enregistrés dans la zone de supervision (250) en association avec l'adresse multisignée (180) allouée à cet utilisateur. Procédé selon l'une quelconque des revendications précédentes, dans lequel la génération de l'image de la première chaîne de blocs comprend un enregistrement dans la deuxième chaîne de blocs d'un ensemble de blocs de données représentatifs d'unités d'actifs détenus par un ou plusieurs utilisateurs de la première chaîne de blocs à l'instant déterminé. Procédé selon l'une quelconque des revendications précédentes, comprenant un enregistrement dans la chaîne de blocs principale d'un marqueur pour chaque utilisateur indiquant si cet utilisateur a basculé ou non vers la deuxième chaîne de blocs. Dispositif comprenant des moyens de mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 9. Support de stockage de données lisible par un processeur de données sur lequel est enregistré un programme comprenant des instructions pour l'exécution des étapes d'un procédé selon l'une quelconque des reven- 33 [Revendication 12] dications 1 à 9. Produit programme d'ordinateur comprenant des instructions pour l'exécution des étapes d'un procédé selon l'une quelconque des revendications 1 à 9 lorsque ledit programme est exécuté par un processeur de données.