Zum Inhalt springen

Change adresses


Gast

Empfohlene Beiträge

Ich bin beim Thema change adresses auf den folgenden Artikel auf der Ledger-Seite gestoßen:

https://support.ledger.com/hc/en-us/articles/360033801034

Soweit alles schön und gut. Die change adress kann man in der blockchain ja gut nachvollziehen, und der Differenzbetrag ist dort als unspent ersichtlich.

Aber wie genau wird diese change-adress generiert, bzw. woher stammt der key hierfür?

Oder ist die Adresse/Key Teil vom eigentlichen seed abgeleitet?

Ich habe das testweise versucht nachzuvollziehen, allerdings war die change-adress beim seed nicht zuzuordnen. Außerdem stand im ledger-Artikel auch "Ledger Live automatically generates a fresh change address". Heißt das, dass die auf die Change-adress NUR mit dem ledger zugegriffen werden kann?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Minuten schrieb cryptonix:

Aber wie genau wird diese change-adress generiert, bzw. woher stammt der key hierfür?

Aus deinem Seed über den "Derivation Path".

Lass dir den Master-Publickey anzeigen und gib den bei blockchair.com ein. Dann siehst du das.

Probiere auch hier rum: https://iancoleman.io/bip39/

"External/Internal" ist der Teil im Derivation Path welcher für Change-Adressen gesetzt wird.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb Anevay:

Master-Publickey

Entspricht der Master-Publickey dem "Account Extended Public Key" auf iancoleman?

vor 2 Stunden schrieb Anevay:

"External/Internal" ist der Teil im Derivation Path welcher für Change-Adressen gesetzt wird.

Der wird dann nur hochgezählt, und das wars? Es wird dann ein zusätzlicher Extended-Private-Key generiert, und aus dem dann wiederum ganz gewöhnliche Adress/Privat-Key-Kombinationen abgeleitet werden können. Die "gefüllte" Change-Adresse wäre vom prinzip her wie eine ganz normale Adresse zu behandeln, d.h. ich könnte BTC nur mit deren public/secretkey-Kombination transferieren - ohne den anfänglichen Seed zu kennen?

Wallets, z.B. ledger-live scannen dann automatisch mögliche Changeadressen, um den korrekten Stand zu ermitteln?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Stunde schrieb cryptonix:

Entspricht der Master-Publickey dem "Account Extended Public Key" auf iancoleman?

Ja, ich hatte die falsche Bezeichnung benutzt.

vor 1 Stunde schrieb cryptonix:

Der wird dann nur hochgezählt, und das wars?

Der DerivationPath wird nur hochgezählt. External/Internal ist eine Art "Verzweigung".

vor 1 Stunde schrieb cryptonix:

Die "gefüllte" Change-Adresse wäre vom prinzip her wie eine ganz normale Adresse zu behandeln, d.h. ich könnte BTC nur mit deren public/secretkey-Kombination transferieren - ohne den anfänglichen Seed zu kennen?

Ja!

vor 1 Stunde schrieb cryptonix:

Wallets, z.B. ledger-live scannen dann automatisch mögliche Changeadressen, um den korrekten Stand zu ermitteln?

Ja, dieser "Scan" läuft über den Extended Public Key, der immer mit "xpub" beginnt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 17 Stunden schrieb Anevay:

Der DerivationPath wird nur hochgezählt. External/Internal ist eine Art "Verzweigung".

Konnte ich nun auch im manual finden (wollte es auch noch anderweitig verifizieren):

"Set the field Internal/External to 1 to generate the private keys of your change
addresses."

Zum Verständnis:

Auf einer Adresse liegt z.B. 1 BTC. Ich transferiere davon z.B. 0.1 BTC "weg". Die 0.9-Change-BTC wandern dann auf die Change-Adresse, die sich aus dem "Hochzählen" bei Change von 0 auf 1 ergibt. Die ursprüngliche Adresse ist "leer".

Transferiere ich nun wiederum 0.5 BTC weg, landen die "restlichen" 0.4 BTC dann auf der wiederum abgeleiteten Adresse mit Change 2. Das ganze läuft dann so lange, bis das ursprüngliche Guthaben, in dem Falle der eine BTC, komplett ausgegeben ist.

Sollte ja soweit korrekt sein!?!

Was würde nun passieren, wenn man später einmal auf so eine bestehende BTC-Adresse, meinetwegen mit Change 1, wieder BTC schickt?

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Stunde schrieb cryptonix:

Was würde nun passieren, wenn man später einmal auf so eine bestehende BTC-Adresse, meinetwegen mit Change 1, wieder BTC schickt?

Dann liegen auf dieser Adresse diese hingeschickten Bitcoin.

Bearbeitet von Anevay
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Minuten schrieb Crusader:

Macht das die hier immer so gelobte Software nicht automatisch?

Was hat das mit der Fragestellung zu tun? Mir geht es um den technischen Hintergrund, ich will die generelle Funktionsweise dahinter verstehen. Ob das die "immer so gelobte Software" - was auch immer das genau sein soll - macht ist mir nicht wichtig. Ich will schlichtweg den technischen Hintergrund verstehen und auch selber nachvollziehen können.

Link zu diesem Kommentar
Auf anderen Seiten teilen

 

vor 24 Minuten schrieb bjew:

Diese Change-BTC bekommen jetzt ein neues Datum, eigentlich sind sie doch aber nicht neu, sondern sind der Restbestand und müssten Das ursprüngliche Anschaffungsdatum erhalten (Frage bezieht sich auf die steuerliche Behandlung). Dass sie (mit) versandt werden und wieder zurück kommen, ist doch lediglich eine technische Frage

Du vermischst da etwas.

Du hast 0,5 BTC auf deine "BTC-Adresse 1" gesendet. Nun liegt dort ein "unspent transaction output" (UTXO).

Wenn du von dieser Adresse 0,1 BTC versenden willst, dann geht das nur indem dieser komplette UTXO als "Input" einer neuen Transaktion benutzt wird. Also Output kommt deine "BTC-Adresse 2" rein, die 0,1 BTC erhalten soll.

Wenn du diese Transaktion absenden würdest, dann erhält der Miner 0,4 BTC als Fee.

Das willst du nicht, also kommt eine weitere Adresse in diese Transaktion. Das ist nun die Change-Adresse, die deine Wallet ganz automatisch benutz. Das ist einfach die nächst beste unbenutzte Adresse im Derivation-Path der Change-Adressen deines Seeds.

Deine Transaktion hat nun

einen INPUT (0,5 BTC)
einen OUTPUT (0,1 BTC)
einen weiteren OUTPUT (0,39999 BTC)
einen sich ergebenden Rest als Fee (0,00001 BTC) 

Vollkommen logisch, dass diese Transaktion das Datum trägt an dem sie abgesendet wurde.

Und die beiden Outputs sind nun zwei neue UTXO, den alten UTXO mit 0,5 BTC gibt es nicht mehr, da er nun "spent" (ausgegeben) ist.

Für die steuerliche Behandlung hat der weitere Output mit den 0,39999 BTC dasselbe Anschaffungsdatum wie der vorherige UTXO mit den 0,5 BTC. Daran ändert sich natürlich nichts.

Für deine steuerliche Dokumentation ist das natürlich ein ziemlicher Aufwand.

 

Daher mein Rat: Wenn man mit Bitcoin irgendwas bezahlt, dann möglichst Bitcoin nutzen, die bereits länger als ein Jahr auf ihrer Adresse rumgelegen haben.

Und damit man sich das sehr einfach macht, lässt man am besten auch die Bitcoin auf den Change-Adressen ein Jahr lang liegen, bzw. nach jeder Transaktion ein Jahr liegen lassen.

Oder einfach direkt von der Exchange aus bezahlen, dann gilt FIFO und es gibt kein Rumgehampel mit den Change-Adressen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.