Hallo Leute,
ich habe mir eine BitBox gekauft und bereits ein paar Sats darauf geschickt.
Ich musste einen Satoshi-Test auf der Börse durchführen und habe dafür eine vorhandene Adresse (Adresse1) verwendet.
Als der Satoshi-Test bestätigt wurde, habe ich Bitcoins von der Börse auf diese Adresse (Adresse1) übertragen.
Nun scheint die BitBox das alte Guthaben von Adresse1 auf eine andere Adresse (Adresse2) übertragen zu haben und erst danach das neue Guthaben von der Börse auf Adresse1 gutgeschrieben zu haben.
Schon etwas merkwürdig, aber okay – hat vermutlich etwas mit Privacy zu tun.
Die BitBox zeigt mir zwar das richtige Guthaben an, aber Adresse2 ist nirgends zu finden.
In der Ansicht „Empfangen und Senden“ der Bitbox sehe ich nur die alte Adresse.
Mein Problem:
Ich möchte ein Programm schreiben, das mir mein Guthaben anzeigt.
Es soll über die API von https://blockstream.info/api/address/ mein Guthaben abfragen.
Dafür brauche ich jedoch alle Adressen, die in meiner BitBox verwendet wurden.
Ich könnte das zwar über die Transaktionen in einem Blockchain-Explorer herausfinden, indem ich jede einzelne durchschaue.
Aber ein Kopieren oder Exportieren der Adressen aus der BitBox wäre mir lieber – das wäre einfacher und schneller.
Frage 1: Ist dieses Verhalten normal, oder habe ich beim Satoshi-Test etwas falsch gemacht? Frage 2: Wo finde ich in der BitBox alle Adressen, die Bitcoins empfangen haben?
Guthaben prüfen geht ohne Bitbox und mit BlueWallet. Einfach den xpup der Wallet in BlueWallet auf dem Handy importieren und schon hat man eine watch only Wallet die den bestand der Bitbox zeigt.
Man kann von dort auch neue Adressen der Bitbox anzeigen lassen, das klappt hervorragend. Vielleicht ist das ja das was du suchst.
Nicht ganz aber gut zu wissen. Vielleicht kann ich mir da was abschauen.
Also ehrlich gesagt ich versuche selbst so eine APP zu schreiben. Das hilft mir Bitbox und Bitcoin besser zu verstehen.
Für den Fall das ich es nicht hinbekomme, würde ich auf BlueWallet zurück greifen.
Danke
Das ist aber kein xpub. So wie das aussieht ist das eine zpub, zumindest deuten die ersten 4 Zeichen der Adresse darauf hin. Mal sehen was die Bitbox erzeugt (xpub oder zpub).
Gibt da warscheinlich unterschiede die man berücksichtigen muss.
Werde mich noch etwas tiefer einarbeiten müssen.
Der Limit Gap scheint auch eine Rolle zu Spielen da man unendlich viele Adressen erstellen kann aber nicht unendlich suchen will.
Müsste man mit einem Idexer lösen oder nur die ersten 10000 suchen oder so
Das ist das gleiche. Einzig die Ableitungspfade sind anders. Zpup ist für die aktuellen native SegWit Adressen.
Die Bitbox erzeugt daher auch einen zpup
Du findest in der „Coin Control“ Übersicht immer alle deine UTXO aufgelistet, d.h. auch alle Adressen, auf denen du aktuell Bitcoin hältst. Dafür einfach Coin Control in den erweiterten Einstellungen aktiveren und unter „Senden“ auf Coin Control klicken. Hier werden dann auch „Wechseladressen“ angezeigt.
Hier zur Info: Es handelt sich hier um verschieden Codierungen, die der Wallet-Software implizit mitteilen sollen, welcher Wallet-Standard verwendet wird. Das Grundkonzept bleibt aber das gleiche: ein erweiterter öffentlicher Schlüssel, mit dem alle öffentlichen Schlüssel bzw. Adressen eines Accounts abgeleitet werden können.
Die meisten Wallets, darunter auch die BitBoxApp, suchen jeweils die nächsten 20 unbenutzten Adressen ab. Das ist ein recht verbreiteter Standardwert. Wenn du also an Index i einen Bestand findest, aber auf i + 1 bis i + 20 nichts mehr, kannst du dir relativ sicher sein, dass es nichts mehr zu finden gibt.
Das habe ich noch nicht ganz verstanden.
Muss man die Indizes und die Adressen zwischenspeichern? Ich denke schon, sonst weiß man ja später nicht mehr, welche die letzten Adressen waren.
Der xpub allein reicht ja nicht, um die Blockchain komplett zu durchsuchen oder Abfragen zu erstellen. Wie ich verstanden hab muss man aus der xpub Adressen ableiten und dann überprüfen ob sie existieren.
Es sei denn man hat eine API, die das übernimmt ,und da muss man natürlich Vertrauen haben und Hoffen das hier mehr wie die letzten 20 Adressen abgefragt werden.
Das Ganze erscheint mir etwas wackelig.
Ein Softwarefehler könnte dazu führen, dass eine Adresse nie wieder gefunden wird, zum Beispiel wenn der Index falsch gesetzt wird.
Wenn ich die Wallet wechsle und diese die Indizes anders handhabt, kann das ebenfalls problematisch werden. Ich denke eine APP die Tatsächlich die einzelnen Adressen speichert ist sicherer als der xpub. Warscheinlich werde ich über die Adressen gehen und diese manuell aus ‚Coin Control‘ der Bitbox kopieren. Schadet auch nix diese Adressen nochmal Seperat zu speichern. Oder Beides
Ich hab noch eine Frage zum Satoshi-Test. Soll ich die bestätigte Adresse auf der Börse, beim nächsten Übertragen auf die Bitbox wieder verwenden. Oder ein neue Adresse und somit ein zweiten Satoshi-Test machen.
Ich würde ja wieder eine Wechselgeld-Adresse bekommen, oder?
Was hat es mit diesen Wechselgeld-Adressen auf sich.
Sind das normale Bitcoin-Adressen? Sind diese Adressen sicher?
Hab noch nie ein satoshi Test gemacht, kann dir dazu nichts sagen. Denke einfacher und günstiger ist es mit der selben Adresse. Du musst soweit ich weiß jedesmal eine Transaktion machen. Es gibt auch Börsen da reicht es eine Nachricht zu signieren. Ist einfach einfacher.
Wechselgeldadressen sind normal und natürlich sicher. Um das zu verstehen lese dir mal das hier durch✌️
Ich würde sagen ja. Jedes Mal einen neuen Satoschi Test zu machen ist viel zu aufwändig. Ich würde erstmal auf der Börse sammeln und dann übertragen.
Alternativ kann man Anbieter wie Pocket Bitcoin nutzen. Da kann man den Zpup teilen und Pocket sendet jeden Kauf auf eine neue Adresse. Nachteil: 1,5 Prozent Gebühren. Da sind Börsen wie Bsdex z.B. günstiger.
Irgendwann muss man sich dann auch mal Gedanken machen wieviel auf einer Adresse liegen sollte, aber da braucht man erst nach einer gewissen Zeit drüber nachdenken wenn man fleißig Sats gesammelt hat.
Die letzte Adresse ist immer der höchste Index, auf dem ein Guthaben liegt. Sie werden einfach chronologisch gefüllt. Gleiches gilt für die separate Liste der Wechselgeldadressen. Bei Index 0 geht es los und bei „unendlich“ hört es auf.
Eine Wallet fängt meistens bei 0 an, schaut, ob diese Adresse genutzt wurde und falls ja, dann sucht es die nächste genutzte, bis zum Gap Limit. So werden zum Beispiel die nächsten 20 Adressen geprüft. Ist keine davon genutzt, stoppt die Suche, selbst wenn auf der 21. Coins lägen. So kann es zu Anzeigeproblemen der Bestände kommen. Also Limit erhöhen oder leere Adressen „nachnutzen“.
Ja, aber existieren tun alle gültigen Adressen. Und eine Wallet generiert nur gültige Adressen.
Warum? Einfach keine Lücken lassen oder höheres Gap Limit.
Solider geht es nicht.
Klar, es kann durch einen Sonnensturm ein Bit geflipped werden… Sonst ist es ein ganz einfacher Standard, an den sich die meisten Hersteller halten.
Ja gut. Wenn ein PC Hersteller statt USB eben MSB benutzt, dann kauft den eben keiner. Netzwerkeffekt und so.
Speichert dein Taschenrechner auch alle Zahlen von minus unendlich bis plus unendlich? Total unnötig, wenn alles nach einem Standard abgeleitet werden kann. Kannst es sogar manuell per Hand ausrechnen.
Du argumentierst gerade, dass ein Taschenrechner ja auch 2+2=5 rechnen könnte und daher besser alle Ergebnisse in deiner App gespeichert sein sollten, um abgleichen zu können
Wie gesagt die Bitbox verschiebt das alte Guthaben auf eine neuen Adresse (Adresse-Neu), wenn man Bitcoins auf eine benutzen Adresse(Adresse-Alt) sendet.
Die benutzte Adresse(Adresse-Alt) zeigt dann nur das neue Guthaben an.
Die neue Adresse(Adresse-Neu) auf der das alte Guthaben verschoben wurde, ist dann eine Wechselgeld-Adresse.
Und hier hab ich auch ein Problem.
Wenn ich versuche mit einer eignen App alle Adressen über den Zpub zu ermittlen bekomme ich diese WechselgeldAdressen(Adresse-Neu) nicht angezeigt.
Mal sehen woran das liegt.
Wenn sich jemand mit C# auskennt, könnte ich den Code auch hier Posten so das man das auch testen kann.
Ist erstmal nur eine kleine Console-App mit wenigen Zeilen(ca. 100).
Nachtrag: Change-Adressen wird auch gefunden. Lag an HD Wallet Pfadstruktur.
Normale-Adresse = m/84'/0'/0'/0/i Change-Adresse = m/84'/0'/0'/1/i .
Das stimmt so nicht.
Sendet man Guthaben von der Börse wird das auf der jeweiligen Adresse addiert.
Erst wenn man einen Teilbetrag von einer Adresse der Bitbox versendet wird der Gesamtbetrag ausgegeben und der überzählige Rest landet auf einer Wechsel Adresse.
Sendet man das gesamte Guthaben einer Adresse wird keine Wechseladresse benötigt oder verwendet.
Ließ dich noch nochmal in das UTXO Management ein.
Ahhh ok, du hast recht.
Das muss dann beim Satoshi-Test passiert sein.
Musste ja vorher von der Adresse ein kleinen Betrag an die Börse schicken, um diese zu Bestätigen. Da muss es passiert sein, mit der Change-Adresse.
Danach hab ich erst den Betrag von der Börse an die Bitbox geschickt.
Zu dem Zeitpunkt war die Adresse natürlich schon leer und
die Change-Adresse existierte schon bereits.