AccueilTUTOSLe multisig sur Polkadot JS

Le multisig sur Polkadot JS

Dans le cadre de l’élaboration du tutoriel, nous l’avons fait sur le testnet de Soramitsu, mais le tutoriel est valide pour n’importe quel réseau de l’écosystème Polkadot et Kusama.

Le Wallet Multisig

Multisig signifie Multi Signature. Il s’agit d’un portefeuille qui doit être signé par plusieurs personnes en même temps sur la blockchain pour autoriser une transaction. ✅

Un portefeuille multisig est un wallet Polkadot géré par plusieurs individus ou organisations. Ce type de wallet permet d’exécuter des transactions sur le portefeuille multisig une fois que la majorité des individus ont fourni leurs signatures uniques.

Il existe plusieurs cas d’utilisation d’un portefeuille multisig mais la plupart du temps, ce mécanisme est utilisé dans une optique de sécurité.

Cas d’utilisation d’un wallet Multisig Polkadot

Prenons des exemples concrets dans le cadre d’un portefeuille multisig 2/3 entre Nono, Kem et Mihail :

  1. Kem et Mihail font un pari et décident de mettre des fonds en jeux. Ils déposent leurs tokens sur un wallet multisig. Comme c’est un wallet 2/3, cela signifie qu’il faut au minimum 2 personnes sur 3 qui donnent leur consentement afin de permettre au wallet d’exécuter des transactions.

Ici, dans notre cas, si Mihail gagne son pari, il peut transférer les fonds du wallet multisig chez lui en signant une transaction. La transaction ne s’exécute uniquement si Kem la signe en même temps et vice versa

En cas de problème entre Kem et Mihail, Nono peut faire office d’arbitre pour les départager. Ainsi si seulement Kem signe la transaction et Nono. La transaction s’exécute sans l’avis de Mihail.

escrow contrat d'entiercement

Cette façon d’utiliser un wallet multisig avec une tierce personne, que nous venons de décrire se nomme : « contrat d’entiercement » ou « escrow » en anglais.

  1. Un conseil d’entreprise peut utiliser un wallet multisig 4/6 pour prendre des décisions. Si plus de la majorité des membres du conseil fournissent leurs signatures, la décision est adoptée et la transaction est exécutée.

Dans ce cas, nous utilisons le multisig dans le cadre de la prise de décision en groupe.

  1. Vous possédez une somme d’argent importante pour vous et vous décidez d’ajouter une couche de sécurité sur vos fonds avec un multisig Polkadot. Ainsi, vous pouvez piloter votre wallet avec plusieurs ordinateurs qui sont gérés par vous ou bien des personnes de confiance.

    De cette manière, même si un de vos appareils est compromis par un hack ou un logiciel malveillant. Le pirate (hacker) n’aura pas accès à vos fonds avec ce type de méthode.

Gérer le Multisig Polkadot en 5 étapes

Précision : il y a un montant minimum et plus élevé à avoir sur le compte qui effectue la première transaction et ce montant est bloqué tant que la transaction est en cours ou annulée. Sur le réseau DOT c’est 30 DOT.

Cela a été mis en place que les utilisateurs initient des transactions multisig sans les terminer. Ceci est valable pour les parachains, vous pouvez avoir un minimum à mettre.

Pré-requis : un wallet Polkadot sur l’extension de votre navigateur web

Nous allons maintenant montrer l’environnement de développement pour la réalisation d’un multisig 2/3 avec Mihail, Kem et Nono. Les comptes et les montants sont factices. La procédure décrite ici est la même sur tous les réseaux substrat accessibles depuis polkadot.js.org

Etape 1 : Ajouter vos contacts

Assurez-vous d’être en possession des adresses de vos trois personnes avec lesquelles vous créez votre multisig.

La première étape consiste à ajouter les adresses de vos trois partenaires dans votre carnet d’adresses.

carnet adresses polkadot js

wallet polkadot js ajouter un contact

ajouter une adresse polkadot js

enregistrer personnes du multisig polkadot js

Vous venez d’enregistrer avec succès les personnes avec qui vous allez réaliser le multisig Polkadot dans vos contacts.

Etape 2 : créer le portefeuille multisig Polkadot

Appuyez sur Multisig en haut à droite dans vos portefeuilles

wallet multisig polkadot js

  1. Les personnes de vos contacts s’affichent comme « signataires disponibles », sélectionner les pour les faire passer dans la colonne « signataires sélectionnés ».

ajouter un multisig polkadot js

multisig ajout polkadot js

  1. Définissez le seuil, ici dans notre cas nous faisons un multisig 2/3 c’est-à-dire que nous pouvons exécuter des transactions sur ce compte si seulement deux personnes sur les trois sont d’accord.
  2. Définissez le nom du wallet multisig
  3. Appuyez sur « Créer ».

Félicitations ! Le wallet est créé ! 

compte polkadot js

Etape 3 : Activer le wallet

Envoyez un dépôt existentiel sur votre wallet multisig pour l’activer.

activer wallet multisig polkadot

envoyer des fonds multisig polkadot

autoriser transaction multisig polkadot

Félicitations ! Le wallet multisig est désormais actif :

multisig wallet polkadot

Etape 4 : vos partenaires aussi doivent setup le multisig

Ici, nous avons suivi la procédure depuis le PC de Mihail pour ajouter Kem et Nono à ses contacts et setup le multisig.

Kem et Nono doivent aussi faire l’étape 1 et 2.

Ce que Mihail voit sur son PC :

Ce que Nono voit sur son PC :

Ce que Kem voit sur son PC :

kem pc polkadot

Etape 5 : faire des transferts depuis le wallet multisig 

Nono, Mihail et Kem ont désormais tous le wallet multisig dans leurs liste de comptes et peuvent désormais initier une transaction. Cette transaction ne s’exécutera seulement et seulement si un autre wallet donne son consentement.

Mihail initie une transaction :

envoyer fonds multisig

autoriser transaction multisig

Il est très important de noter et conserver l’appel de données multisig car celui-ci est nécessaire pour finaliser la transaction.

Ensuite vous pouvez signer et soumettre.

La transaction passe maintenant en attente d’approbation :

approbation multisig en cours

Mihail, l’initiateur de la transaction vient de signer, il faut encore que Nono ou Kem approuve la transaction pour que celle-ci soit exécutée.

Passons sur le PC de Kem :

wallet polkadot js xor

Celui-ci voit à côté du wallet multisig qu’une transaction est en attente d’approbation. Quand il clique sur « Vue Pending Approval » (en rose à gauche du wallet) cette fenêtre s’ouvre et il peut la consulter :

hachages appel polkadot

Trois choix s’offrent à lui :

  1. Il ignore la transaction (il ne fait rien), donc si Nono ne finalise pas la transaction celle-ci ne va s’exécutera pas et seul Mihail (l’émetteur) peut l’annuler.
  2. Il approuve la transaction mais il ne la finalise pas. Donc Nono devra signer et finaliser la transaction pour qu’elle s’exécute.
  3. Il signe et finalise la transaction. Comme c’est un multisig 2/3, si Mihail et Kem sont d’accord la transaction peut être exécuter sans l’accord de la 3ème personne.

Pour signer et finaliser la transaction, il doit cliquer sur « Message multisig avec appel (pour approbation finale) »

finaliser transaction multisig polkadot js

« Appeler les données pour approbation finale » apparait. Il faut ici coller l’appel de donnée Multisig Polkadot que Mihail a eu lorsqu’il a initié la transaction.

appel de donnee multisig polkadot js

Une fois que vous collez l’appel de donnée multisig, le champ disparait et il est désormais possible d’appuyer sur « Approve » :

approve appel donnee multisig polkadot

Ensuite sur « Signer et soumettre » :

signer soumettre tx dot

Félicitations ! La transaction Multisig sur Polkadot a été exécutée avec succès.

Conclusion du Multisig Polkadot

Nous venons de setup un wallet multisig 2/3 et d’exécuter une transaction en 5 étapes.

Habituellement nous utilisons des adresses « standards » à clé unique, ce qui signifie que quiconque détient la clé privée correspondante peut accéder aux fonds. Cela veut dire qu’une seule clé est nécessaire pour signer les transactions.

La gestion d’une adresse à clé unique est plus rapide et plus simple qu’une adresse multisig mais cela soulève des problèmes et questionnements de sécurité. Si un pirate arrive à mettre la main sur votre clé privée, il aura un accès complet à votre portefeuille.

Vous pouvez utiliser le Ledger Polkadot mais le multisig est une sécurité supérieure car elle nécessite l’accord de plusieurs clés privées.

De plus les adresses à clé unique ne sont pas une bonne solution pour les entreprises voulant gérer des cryptomonnaies. En effet, une seule et même personne mal intentionnée peut dérober les fonds.

Les portefeuilles Multisig Polkadot ou Multisig Kusama offrent une solution potentielle à tous ces problèmes.

Contrairement aux clés uniques, les fonds stockés sur une adresse multisig ne peuvent être déplacés que si plusieurs signatures sont fournies.

Les inconvénients de cette solution sont une limitation en termes de rapidité. Vous devez vous organiser avec vos personnes de confiances pour exécuter vos transactions.

De plus, cela demande des connaissances techniques. Si vous voulez protéger vos fonds avec un multisig : vous devrez former une des personnes de confiance pour qu’elle coopère avec vous.

Vous devez aussi prendre en compte toutes les éventualités comme le décès d’un signataire ou bien la perte d’une clé privée. Si vous faites un multisig 3/3 et qu’une clé privée est perdue, les fonds sont gelés à tout jamais sur la blockchain.

Polka France
Polka Francehttp://polkafrance.fr
Nous suivons les travaux de Gavin Wood qui est le créateur technique Ethereum depuis sa création depuis son départ de la fondation Ethereum en 2015. Nous approuvons actuellement la proposition proposée par Parity Technologies sur Polkadot.

Article assocés

2 Commentaires

  1. Merci à la team, je ne connaissais pas ce système, très intéressant !
    Vous faites bien de mettre en garde sur les cas exceptionnels qui peuvent bloquer indéfiniment un mulitisig N/N, la perte d’une clé ou le décès d’un détenteur ne sont jamais à exclure : bien réfléchir à ce cas de figure.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Les derniers articles