Récupération d'actions
Motivation
Section intitulée « Motivation »Il est souhaitable que les jetons d’actions (qui représentent légalement les capitaux propres d’une entreprise) ne soient pas « perdus » si un actionnaire perd la clé privée de son compte ou les envoie accidentellement à une adresse invalide. Bien que certains émetteurs résolvent ce problème en ajoutant une porte dérobée à leur contrat intelligent leur donnant un contrôle total sur tous les jetons, Aktionariat suit une approche décentralisée — comme recommandé par la Fédération blockchain suisse dans leur circulaire sur les jetons de sécurité. Cela permet aux détenteurs de récupérer leurs actions sans dépendre d’une autorité centralisée.
Processus
Section intitulée « Processus »Le processus de récupération fonctionne comme suit. Supposons qu’Alice a perdu la clé de son adresse A. Elle choisit une nouvelle adresse B et effectue tous les appels à partir de la nouvelle adresse.
- Alice s’assure qu’elle dispose d’une garantie suffisante et accorde une allocation au contrat RecoveryHub.
- Alice appelle
declareLost(token, collateralType, lostAddress)pour déclarer que les jetons sur l’adresse spécifiée lui appartiennent et qu’elle souhaite les récupérer via le mécanisme de réclamation. La garantie est transférée au hub de récupération. - Après avoir attendu 6 mois, Alice appelle
recover(en fournissant son adresse perdue en argument) pour récupérer ses actions et la garantie.
Contester une réclamation
Section intitulée « Contester une réclamation »Si la clé est retrouvée ou si la réclamation a été faite de manière malveillante, le véritable propriétaire peut toujours appeler clearClaim depuis l’adresse réclamée pour supprimer la réclamation et saisir la garantie. Cela rend les attaques économiquement impossibles.
Exemple : Lorsqu’un attaquant fait une réclamation pour votre adresse afin d’obtenir les 7 actions que vous possédez dans Example Inc., l’attaquant doit également fournir une garantie d’une valeur de 7 actions. Vous disposez alors de six mois pour appeler clearClaim, ce qui non seulement supprime la fausse réclamation mais vous permet également de saisir la garantie de l’attaquant.
Si votre portefeuille ne supporte pas l’appel de méthodes personnalisées telles que clearClaim, vous pouvez également transférer une action à une nouvelle adresse, ce qui déclenche un appel implicite à clearClaim et a le même effet.
Suppression de réclamation par l’émetteur
Section intitulée « Suppression de réclamation par l’émetteur »Les réclamations peuvent également être supprimées par un rôle spécial (dans ce cas, la garantie est retournée). La fonction getClaimDeleter() définit qui peut le faire — généralement l’émetteur. Cela protège les actionnaires qui ne peuvent pas agir par eux-mêmes pour une raison quelconque, et garde également contre l’usage malveillant du mécanisme de réclamation dans les cas où l’attaquant sait que l’adresse réclamée a été perdue et agit avant le véritable propriétaire.
Garantie
Section intitulée « Garantie »Les jetons d’actions eux-mêmes peuvent être utilisés comme garantie. Par exemple, si vous aviez perdu votre clé, un ami pourrait engager ses actions pour vous.
Une garantie personnalisée (jeton ERC-20) peut être définie par l’émetteur. L’utilisation d’une pièce stable comme XCHF ou ZCHF a l’avantage que le montant engagé n’est pas soumis à la volatilité pendant la période d’attente, contrairement à l’Ether. L’Ether n’est pas directement supporté comme garantie, mais l’émetteur pourrait choisir d’accepter l’Ether enveloppé (WETH).
Exemple du monde réel
Section intitulée « Exemple du monde réel »Dans un cas réel, quelqu’un a accidentellement envoyé 1 145 actions de ServiceHunter AG (SHS) à l’adresse 0x0479 — la représentation hexadécimale du nombre 1145, une adresse que personne ne contrôle.
Pour récupérer les actions, le propriétaire a :
- Invoqué
declareLostavec 1 145 actions supplémentaires comme garantie. - Attendu six mois.
- Appelé
recoverpour résoudre la réclamation, retournant à la fois les actions perdues et la garantie au propriétaire.