Zum Hauptinhalt springen

Was ist Software Wallet?

U
Verfasst von UKey Wallet

Eine Software-Wallet verwendet eine Zufallszahl, um einen privaten Hauptschlüssel zu generieren.

Dann kann es durch einen deterministischen und irreversiblen Algorithmus eine unbegrenzte Anzahl von untergeordneten privaten Schlüsseln aus diesem privaten Hauptschlüssel ableiten.

Warum brauchen wir einen deterministischen und irreversiblen Algorithmus?
Denn deterministisch bedeutet, dass alle untergeordneten privaten Schlüssel immer aus demselben privaten Hauptschlüssel generiert werden können, während irreversibel bedeutet, dass der private Hauptschlüssel nicht aus irgendeinem untergeordneten privaten Schlüssel rekonstruiert werden kann.

Aus diesem Grund wird es als Hierarchical Deterministic (HD) Wallet bezeichnet. Die Ableitungsstruktur privater Schlüssel ähnelt einem Baum: Ein übergeordneter Schlüssel kann mehrere untergeordnete Schlüssel ableiten, jeder untergeordnete Schlüssel kann mehrere untergeordnete Schlüssel ableiten, und dieser Prozess kann unbegrenzt fortgesetzt werden.

Wenn ein HD-Wallet zum ersten Mal erstellt oder ein Backup eines Wallets erstellt wird, wird eine mnemonische Phrase generiert. Eine mnemonische Phrase ist eine Folge englischer Wörter. Diese Sequenz wird verwendet, um den Seed zu generieren, und der Seed wird dann verwendet, um alle privaten Schlüssel im Wallet zu generieren. Mit anderen Worten: Die mnemonische Phrase dient als Backup des Wallets, da sie zur Wiederherstellung des Wallets verwendet werden kann. Der Seed wiederum entspricht der ursprünglichen Zufallszahl hinter der deterministischen Wallet.

Ein großer Vorteil eines HD-Wallets besteht darin, dass nur der öffentliche Master-Schlüssel erforderlich ist, um eine beliebige Anzahl von öffentlichen Unterschlüsseln zu generieren. Mit anderen Worten: Neue öffentliche Adressen können aus dem öffentlichen Hauptschlüssel erstellt werden, ohne dass Zugriff auf die privaten Schlüssel erforderlich ist, unabhängig davon, ob es sich um den privaten Hauptschlüssel oder die privaten Unterschlüssel handelt. Alle diese generierten Adressen können jedoch letztlich immer noch durch den privaten Hauptschlüssel kontrolliert werden.

Natürlich birgt diese Gestaltung auch Risiken. Wenn die mnemonische Phrase offengelegt wird, ist dies im Wesentlichen gleichbedeutend mit der Offenlegung aller privaten Schlüssel. Sobald dies geschieht, geht die Sicherheit der digitalen Vermögenswerte im Wallet praktisch verloren.

Warum werden so viele private Schlüssel benötigt?

Der Grund, warum Benutzer so viele private Schlüssel benötigen, lässt sich anhand des Änderungsmechanismus bei Bitcoin-Transaktionen verstehen.

Eine Bitcoin-Transaktion ist eine Datenstruktur, die Eingaben und Ausgaben enthält. Es enthält auch die notwendigen Skriptinformationen, die den Wert von seiner Quelle (der Eingabe) an sein Ziel (die Ausgabe) übertragen.

Um die Ein- und Ausgaben von Bitcoin zu verstehen, ist es wichtig, das Konzept von UTXO (Unspent Transaction Output) zu kennen. Ein UTXO ist die Grundeinheit einer Bitcoin-Transaktion und stellt eine nicht ausgegebene Transaktionsausgabe dar. Tatsächlich wird ein einzelner Bitcoin in Form von UTXOs auf viele Transaktionen und viele Blöcke verteilt. In Wirklichkeit gibt es keine zentralisierte Aufzeichnung, in der ein einfacher Kontostand gespeichert wird. Stattdessen gibt es nur dezentrale UTXOs, die an ihre jeweiligen Eigentümer gebunden sind.

Ein UTXO kann einen beliebigen Wert darstellen, aber sobald er erstellt wurde, ist er unteilbar, genauso wie eine physische Münze nicht in zwei Hälften geteilt werden kann. Wenn der Wert eines UTXO größer ist als der für eine Transaktion benötigte Betrag, muss trotzdem der gesamte UTXO ausgegeben werden und der Überschuss wird als Wechselgeld zurückgegeben.

Stellen Sie sich zum Beispiel vor, Sie haben ein UTXO im Wert von 20 Einheiten und möchten 1 Einheit bezahlen. Die Transaktion muss die gesamten 20 UTXO-Einheiten verbrauchen und zwei Ausgänge erzeugen: Ein Ausgang sendet 1 Einheit an den Empfänger, während der andere 19 Einheiten als Wechselgeld an Ihr Wallet zurücksendet. In diesem Sinne generieren die meisten Bitcoin-Transaktionen Veränderungen.

Dies führt zu einer weiteren Frage: Soll die Änderung an die ursprüngliche Adresse oder an eine neu generierte Adresse zurückgesendet werden?

Als Satoshi Nakamoto Bitcoin entwarf, wurde ein Adressänderungsmechanismus verwendet, was bedeutet, dass häufig eine neue Adresse erstellt wird, um die Änderung aus jeder Transaktion zu erhalten. Der Vorteil dieses Designs besteht darin, dass es zum Schutz der Privatsphäre der Benutzer beiträgt und bestimmte Sicherheitsrisiken verringert.

Im wirklichen Leben ist dies vergleichbar mit der Eröffnung mehrerer Bankkonten unter verschiedenen Namen und Identitäten bei verschiedenen Banken. Selbst wenn jemand den Geldfluss auf jedem Konto beobachten kann, wird es für ihn viel schwieriger, alles auf den wahren Eigentümer der digitalen Vermögenswerte zurückzuführen. Dies ist Teil dessen, was Bitcoin seine relative Anonymität verleiht.

Aus diesem Grund benötigen Wallet-Benutzer so viele private Schlüssel. Da öffentliche Schlüssel und private Schlüssel immer paarweise existieren und jede Transaktion möglicherweise eine neue Änderungsadresse generiert, würde die Speicherung und Sicherung der privaten Schlüssel, die all diesen Adressen entsprechen, ansonsten zu einer großen technischen Herausforderung werden. Das HD-Wallet löst dieses Problem, indem es einem einzelnen Root ermöglicht, eine beliebige Anzahl untergeordneter öffentlicher Schlüssel und untergeordneter privater Schlüssel zu generieren, was die Benutzerfreundlichkeit digitaler Geldbörsen erheblich verbessert.

Hat dies deine Frage beantwortet?