Damit ist mir klar, was hash160 ist, nur die Zusätze wie "(M/0H/0/0), (M/0H/0/1), (M/0H/0/2), .." sind mir noch ein Rätsel. Noch eine triviale Frage: Das bedeutet das ein Private Key auch nur genau eine einzige Bitcoin-Adresse haben kann? Oder ist da noch irgendeine Variable drin, um verschiedene zum gleichen Private Key erzeugen zu können?
Eine klassische Wallet erzeugt zufällige Adressen und verwaltet jeweils einen privaten Key zu jeder verwendeten Adresse. Eine moderne HD Wallet leitet aus einem Anfangstext (oder auch Seed, in der Regel die 24 mnemonic words) immer die selben Adressen+PrivateKeys ab. Die Zusätze beziehen sich darauf wie, für welchen Coin, für welchen Zweck... diese HD Adressen generiert werden =>
https://github.com/bitcoin/bips/blob/master/bip-0044.mediawikiEine Wallet verwaltet mehrere Private Keys => Ein Private Key kann genau eine einzige Adresse haben.
Das Bitcoin Wallet erzeugt nach jeder (ausgehenden) Zahlung einen neuen Private Key mit zugehöriger neuer Bitcoin-Adresse, auf den das "Wechselgeld" landet. Der neue Private Key wird dabei je nach Wallet entweder zufällig oder nach einem bestimmten Algorithmus aus einem Master-Key ("Seed" genannt) erzeugt. Als Begründung lese ich immer, um die Privatsphäre zu schützen. Spräche aber denn etwas dagegen, wenn man als Ziel für das Restguthaben wieder die gleiche Bitcoin-Adresse und somit den gleichen Private Key weiternutzt, außer das jemand mit meiner Bitcoin-Adresse dann halt alle meine Transaktionen "sehen" kann?
Spricht nichts gegen, kannst du so machen.
Oder analoge Frage: Bei einem Paperwallet wird immer gesagt, dass man auf die Bitcoin-Adresse solange man möchte drauf einzahlen soll. Möchte man das Geld aber runterholen, so sollte man es immer KOMPLETT auflösen und danach nichts mehr drauf einzahlen, sondern ein neues Paper Wallet erstellen.
Sagt wer? Nee, musst du nicht. Wenn ich mich nicht irre kannst du sogar das Wechselgeld wieder direkt an die Sende-Adresse schicken.
Das gilt vielleicht für irgendwelche Altcoins oder es gibt da vielleicht theoretische Angriffsvektoren die in der Praxis aber irrelevant sind. Hier ein Beispiel für 'ne Adresse wo ständig was rein und rausgeht:
https://blockchain.info/address/3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9rDas alles möchte ich eigentlich nicht, weil es zu viel zu viel Datenmüll und Unübersichlichkeit führt: Ich möchte vielmehr selbst bestimmen, ob ich meine aktuelle Bitcoin-Adresse nach eine Zahlung weiternutzen oder eine neue haben möchte. Gibt es ein Wallet, dass das kann?
Das mit der Unübersichtlichkeit übernimmt ja gerade die Wallet für dich, und mit den HD-Wallets reduziert sich der "Datenmüll" ja nur noch auf deinen Anfangsseed aus dem sich alle Adressen die du jemals genutzt haben wirst einfach wieder rekonstruieren lassen.
Ich kenne zwar keine Wallet bei der man das Verhalten einstellen kann, aber du kannst Transaktionen auch "zu Fuß" generieren und signieren. Entweder mit Bitcoin Core + Kommandozeilenbefehlen oder meine alten Paperwallets mach' ich z.B. immer mit
-
https://coinb.in/ - New => Transaction
- Öffentliche Adresse eingeben, dann siehst du welche unspent Inputs da noch drauf sind.
- Empfängeradressen bei Outputs eingeben
- Submit und du bekommst eine ellenlange, noch unsignierte Raw Transaction
(Die nächsten Schritte kann man bei Bedarf dann sicher auf einem Offline Rechner machen)
- (Offline Kopie von) coinb.in
- Sign
- Raw Transaction + Private Key eingeben
- Submit und du bekommst eine noch längere, signierte Transaktion
(Wieder online)
- coinb.in
- Broadcast
- Signed Transaction eingeben
- Submit und deine Transaktion landet im Netzwerk