Wiederherstellung im neuen Ledger Nano s

Nehmen wir an, wir erstellen 3 Bitcoin-Adressen und 4 Ethereum-Adressen. Das bedeutet, dass wir 3 öffentliche private Schlüssel für Bitcoin und 4 öffentliche private Schlüssel für Ether haben.

Nach der Wiederherstellung mit dem 24-Wörter-Seed weiß der neue Ledger Nano, dass ich 3 Adressen in Bitcoin und 4 Adressen in Ethereum verwendet habe.

Ich frage mich, wie das passiert. Könnt ihr mir bitte helfen zu verstehen?

Meine Vermutung wäre, dass es die Blockchain scannt und nachsieht, wie viele Adressen aus den Adressfolgen verwendet wurden. Soweit ich das beurteilen kann, funktioniert JAXX so.
@lungj aber die Anzahl der Adressen ist unendlich, oder?
Es ist durch die Anzahl der eindeutigen Ethereum-Adressen begrenzt. Aber selbst wenn dies nicht der Fall wäre, ist es auch durch die Anzahl der Transaktionen begrenzt, die Sie durchführen können.
Selbst wenn das System davon ausgeht, dass Sie nie mehr als eine Billion Adressen benötigen (ausreichend für etwa 50 Transaktionen pro Sekunde für das Leben einer durchschnittlichen Person), müsste es nicht mehr als 40 Adressen überprüfen, um herauszufinden, wo es aufgehört hat (pro Kette). .
Ihren letzten Kommentar kann ich nicht nachvollziehen
Mit der binären Suche können Sie einen (sortierten) Raum in der Protokollzeit durchsuchen. Um die zuletzt verwendete Adresse in einem 2^256-Bit-linearen Suchraum zu finden (was wir annehmen können, da wir die n-te Adresse generieren können, die das Wallet direkt generiert), führen Sie höchstens 256 Suchen durch. Teilen Sie den Raum in zwei Teile. Adresse schon verwendet? NEIN? Teilen Sie die erste Hälfte des Raums in zwei Teile und suchen Sie erneut. Es ist so, als ob Sie ein Wort in einem Wörterbuch nachschlagen können, indem Sie es vor und zurück blättern, bis Sie das richtige Wort gefunden haben. In einem Wörterbuch mit 512 (2^9) Seiten bedeutet die binäre Suche, dass Sie höchstens 9 Seiten durchsuchen müssen, um Ihr Wort zu finden.
Wiederholen Sie diesen Vorgang einmal für jede Kette, die Sie verwenden (Bitcoin, Ethereum usw.).
Wird dies funktionieren, wenn wir einige n unbenutzte Adressen erstellen und beginnen, n + 1. Adresse zu verwenden.
Nicht mit dem Schema, das ich beschrieben habe. Außerdem können Sie keine ungenutzte Adresse „erstellen“. Adressen werden nicht auf der Blockchain erstellt. Jede Adresse existiert bereits. Sie meinen, einige Elemente in der Sequenz der generierten Schlüssel/Adressen zu überspringen.
Wie der Ledger Nano s dann perfekt funktioniert, bleibt dann noch eine Frage...
Wenn ich zuvor ein Konto mit dem Namen „Rocket Funds“ hatte, wie würde dieses in einem neu wiederhergestellten Hauptbuch erscheinen oder kann ich nur auf die Gelder zugreifen, indem ich die benutzerdefinierten Konten erneut manuell erstelle?

Antworten (1)

BIP44 definiert die Adresslückengrenze auf 20. Das bedeutet, dass die Software während der Wiederherstellung, z. B. beim Importieren Ihres öffentlichen Hauptschlüssels in eine Brieftasche zur Überwachung, 20 Adressen vor der zuletzt verwendeten Adresse sucht.

Wenn sie normal funktioniert, sollte die Software nur dann eine neue öffentliche Adresse ableiten, wenn die letzte keine Transaktion gesehen hat. Sie können die Ledger Nano App nicht zwingen, eine neue Adresse zu erstellen. Nochmal von BIP44:

Wallet-Software sollte warnen, wenn der Benutzer versucht, das Lückenlimit auf einer externen Kette zu überschreiten, indem er eine neue Adresse generiert.

Dies dient dazu, das Problem zu vermeiden, möglicherweise eine willkürliche Nummer oder öffentliche Adressen neu generieren und scannen zu müssen.

Im Grunde ist das Wiederherstellungsverfahren also:

  • 20 Schlüssel vom öffentlichen Masterschlüssel ableiten
  • Scannen Sie alle Adressen
  • Nehmen Sie den zuletzt verwendeten (Kind X) und generieren Sie Schlüssel bis zu X+20
  • Scannen Sie die neuen Adressen
  • Spülen und wiederholen Sie die letzten 2 Schritte, bis nichts Neues mehr auftaucht

Hier gibt es eine etwas längere und allgemeine Erklärung des Systems .