Warum erstellt Bitcoin mehrere „leere“ Wallet-Adressen?

Ich laufe derzeit bitcoind -testnet. Ich habe bitcoin-cli dumpwallet ~/wallet-outputes nur ausgeführt, um die Ausgabe zu untersuchen, und es sieht so aus, als ob es 102 private/öffentliche Schlüsselpaare erstellt hat, von denen ich annehme, dass sie nur vorgeneriert sind, nur um sie bequem zur Hand zu haben.

Ich bin jedoch überrascht, dass sie alle schon irgendwie als Teil der Testnet-Blockchain „erkannt“ zu sein scheinen, obwohl sie noch nie verwendet wurden. Wenn ich beispielsweise im Block Explorer nach einer dieser Adressen suche, sehe ich eine Adresse mit null Transaktionen und einem BTC-Guthaben von 0: https://testnet.blockexplorer.com/address/mxwDTWg556BDzZhEWvJ1EeYwSYxG42wKZC . Dies unterscheidet sich von Adressen, die ich „außerhalb“ der Bitcoin-Tools erstellt habe (z . B. https://www.bitaddress.org ). Zum Beispiel kann Block Explorer diese Adresse „nicht finden“: 1XitCFAkFhNR6PoJsPcxjsFzkMegx4Ky5. Ich würde erwarten, dass dies mit allen in meiner Brieftasche vorgenerierten Adressen passiert, bis ich sie tatsächlich verwende.

Warum wurden bitcoinddiese Adressen in der Testnet-Blockchain „registriert“? Und wie genau hat es das gemacht? Ist das eine spezielle Transaktionsart?

Könnten Sie bitte den Antwortteil aus Ihrer Frage bearbeiten und stattdessen als Antwort posten? Es sollte nicht in Frage kommen.
Ich habe zur vorherigen Revision zurückgekehrt, Sie finden Ihre Selbstantwort im Bearbeitungsverlauf.

Antworten (2)

Bitcoin „registriert“ keine Adressen in der Blockchain. Der Grund, warum ich Probleme hatte, willkürlich generierte öffentliche Adressen auf der Testnet-Block-Explorer-Website nachzuschlagen, liegt darin, dass ich nach Mainnet- Adressen und nicht nach Testnet - Adressen gesucht habe. Beispielsweise sind Adressen, die mit der oben genannten Website https://bitaddress.org generiert wurden, standardmäßig für das Mainnet bestimmt und in der Testnet-Blockchain ungültig . Wenn Sie ?testnet=truezur URL hinzufügen verwenden, generieren Sie gültige Testnet-Adressen.

Die genauen Unterschiede zwischen Testnet- und Mainnet-Adressen sind an zahlreichen Stellen im Internet dokumentiert. Unter ihnen die Testnet-Seite im Bitcoin-Wiki , auf der es heißt:

Ein anderer Wert des ADDRESSVERSION-Felds stellt sicher, dass keine Testnet-Bitcoin-Adressen im Produktionsnetzwerk funktionieren. (0x6F statt 0x00)

Adressen sind nicht registriert. Sie registrieren keine Adressen in der Blockchain. Adressen funktionieren so, dass sie dem Hash eines öffentlichen Schlüssels entsprechen. Da alle möglichen öffentlichen Schlüssel und alle möglichen Hashes davon bekannt sind, können Sie den "Saldo" jeder beliebigen Adresse nachschlagen. Es ist ganz einfach, da alle Transaktionen bekannt sind, sodass Sie leicht erkennen können, ob eine Adresse verwendet wurde oder nicht, indem Sie sich jede Transaktion in der Blockchain ansehen.

Die überwiegende Mehrheit der Wallets tut dies, da es effizienter ist. Es ermöglicht der Brieftasche, Ihnen einfach eine Adresse zu geben, wenn die Brieftasche gesperrt ist. Es bedeutet auch, dass die Brieftasche nicht jedes Mal einen neuen Schlüssel generieren muss, wenn Sie eine neue Adresse wünschen, da sie mehrere Schlüssel vorab generiert (Bitcoin Core standardmäßig auf 100) und später bei Bedarf weitere stapelweise generieren kann.

Der ursprüngliche Grund für das Vorgenerieren von Schlüsseln waren Sicherungen. Das bedeutete, dass Sie nicht nach jedem neu generierten Schlüssel ein neues Backup erstellen mussten, da sich Ihre zukünftigen 100 Schlüssel bereits in der Wallet-Datei befinden. Dies wird jetzt teilweise gemildert, da wir die HD-Ableitung für Schlüssel in Brieftaschen verwenden.