Zum Inhalt springen

Wiederherstellung von Anteilen

Es ist wünschenswert, dass Anteilstokens (die rechtlich das Eigenkapital eines Unternehmens darstellen) nicht “verloren gehen”, wenn ein Anteilseigner den privaten Schlüssel zu seinem Konto verliert oder sie versehentlich an eine ungültige Adresse sendet. Während einige Emittenten dies durch das Hinzufügen einer Hintertür zu ihrem Smart Contract beheben, die ihnen vollständige Kontrolle über alle Token gibt, folgt Aktionariat einem dezentralisierten Ansatz — wie von der Swiss Blockchain Federation in ihrem Security Token Circular empfohlen. Dies ermöglicht es Inhabern, ihre Anteile zurückzufordern, ohne sich auf eine zentralisierte Behörde zu verlassen.

Der Wiederherstellungsprozess funktioniert wie folgt. Angenommen, Alice hat den Schlüssel zu ihrer Adresse A verloren. Sie wählt eine neue Adresse B und führt alle Aufrufe von der neuen Adresse aus.

  1. Alice stellt sicher, dass sie genug Sicherheiten bereit hat, und gewährt dem RecoveryHub-Vertrag eine Genehmigung.
  2. Alice ruft declareLost(token, collateralType, lostAddress) auf, um zu erklären, dass die Token auf der angegebenen Adresse ihr gehören und dass sie diese über den Anspruchsmechanismus zurückfordert. Die Sicherheiten werden an den Recovery Hub übertragen.
  3. Nach einer Wartezeit von 6 Monaten ruft Alice recover auf (und gibt ihre verlorene Adresse als Argument an), um ihre Anteile und die Sicherheiten zurückzubekommen.

Wenn der Schlüssel wiedergefunden wird oder der Anspruch böswillig gestellt wurde, kann der legitime Eigentümer jederzeit clearClaim von der beanspruchten Adresse aufrufen, um den Anspruch zu löschen und die Sicherheiten einzuziehen. Dies macht Angriffe wirtschaftlich unmöglich.

Beispiel: Wenn ein Angreifer einen Anspruch auf Ihre Adresse geltend macht, um alle Ihre 7 Anteile in Example Inc. zu erhalten, muss der Angreifer auch Sicherheiten im Wert von 7 Anteilen bereitstellen. Sie haben dann sechs Monate Zeit, um clearClaim aufzurufen, wodurch Sie nicht nur den betrügerischen Anspruch löschen, sondern auch die Sicherheiten des Angreifers beschlagnahmen.

Wenn Ihr Wallet das Aufrufen von benutzerdefinierten Methoden wie clearClaim nicht unterstützt, können Sie auch einen Anteil auf eine neue Adresse übertragen, was einen impliziten Aufruf von clearClaim auslöst und denselben Effekt hat.

Ansprüche können auch durch eine spezielle Rolle gelöscht werden (in diesem Fall werden die Sicherheiten zurückgegeben). Die Funktion getClaimDeleter() definiert, wer dies tun kann — typischerweise der Emittent. Dies schützt Anteilseigner, die aus irgendeinem Grund nicht selbst handeln können, und schützt auch vor böswilliger Nutzung des Anspruchsmechanismus in Fällen, in denen der Angreifer weiß, dass die beanspruchte Adresse verloren ging, und vor dem rechtmäßigen Eigentümer handelt.

Die Anteilstokens selbst können als Sicherheiten verwendet werden. Zum Beispiel könnte ein Freund seine Anteile für Sie hinterlegen, wenn Sie Ihren Schlüssel verloren haben.

Ein benutzerdefiniertes Sicherheitenmittel (ERC-20-Token) kann vom Emittenten festgelegt werden. Die Verwendung eines Stablecoins wie XCHF oder ZCHF hat den Vorteil, dass der hinterlegte Betrag während der Wartezeit nicht der Volatilität unterliegt, im Gegensatz zu Ether. Ether wird nicht direkt als Sicherheit unterstützt, aber der Emittent könnte sich für die Annahme von Wrapped Ether (WETH) entscheiden.

In einem echten Fall hat jemand versehentlich 1.145 Anteile der ServiceHunter AG (SHS) an die Adresse 0x0479 gesendet — die hexadezimale Darstellung der Zahl 1145, eine Adresse, die niemand kontrolliert.

Um die Anteile wiederherzustellen, führte der Eigentümer folgende Schritte durch:

  1. Rief declareLost mit zusätzlich 1.145 Anteilen als Sicherheiten auf.
  2. Wartete sechs Monate.
  3. Rief recover auf, um den Anspruch zu lösen, wodurch sowohl die verlorenen Anteile als auch die Sicherheiten an den Eigentümer zurückgegeben wurden.