Frage zu Ableitungspfaden und xpub

Nachdem ich eine längere Diskussion mit der KI geführt habe und mir nicht sicher bin, ob mir das Ding Mist erzählt hat, frage ich lieber die Profis hier :slight_smile:

Wenn zB der xpub eines meiner Konten/ Ableitungspfade auf der Bitbox bekannt würde (zb zur Erstellung einer watch-only hot wallet, oder durch Eingabe in einem Steuertool) und zus. von diesem Konto bereits Transaktionen abgegangen sind, lässt das Rückschlüsse auf weitere Unterkonten/Pfade zu?

Kann aus diesen Informationen unter Umständen auch der gesamte Seed kompromittiert werden?

Wenn ich deinen Xpub kenne, kenne ich alle dazugehörigen Unterkonten (NACHTRAG: Ich meinte Adressen).

Nein, das ist wiederum nicht möglich.

1 „Gefällt mir“

Nein, auf keinen Fall. Insbesondere seit es gehärtete Ableitungen gibt, sollte man selbst mit einem “Child-Private-Key” und dem xpub nicht auf die anderen Private Keys oder gar den Seed rechnen können.

Sicher?

Ich weiß nicht wie die Bitbox Unterkonten technisch erstellt. Aber so wie ich das verstanden hatte hat jede Ableitung einen eigenen xpub.

Wenn ich das richtig im Kopf habe, könnte man mit dem xpub der Ableitung auch nur die PubK und Adressen dieses Unterkontos sehen.

Ich würde auch sagen, dass jedes Unterkonto einer Bitbox einen eigenen XPub hat.

Ja, jedes Unterkonto hat einen eigenen zpub/xpub/ypub!

Ableitung zu anderen Konten ist nicht möglich!

Na dann sind es ja verschiedene x/y/zpubs. Ganz andere Fragestellung.

Aber ich sehe gerade, dass ich mich falsch ausgedrückt hatte. „Wenn ich den xpub kenne, kenne ich alle DAZUGEHÖRIGEN ADRESSEN“.

Hab die Frage früh direkt nach dem Aufstehen im Halbschlaf gelesen und falsch verstanden :D.

Nein, eine Verknüpfung der jeweiligen Unterkonten ist nicht möglich, nur der zugehörigen Adressen pro xpub.

1 „Gefällt mir“

ok, danke für Eure Antworten…

Die Bitbox legt die Pade so an

m/84’/0’/0’

m/84’/0’/1’

m/84’/0’/2’

usw…

und jeder hat seinen eigenen xpub

Also angenommen ich hatte den xpub des ersten Pafdes auf meiner bitbox, m/84’/0’/0’ in einem Steuer Tool importiert. Damit sind dann natürlich alle Adressen und Transaktionen dieses einen Pfades bekannt, das ist klar. Von diesem Pfad sind auch schon Transaktionen abgegangen.

Lässt sich nun davon ausgehend auf die restlichen Pfade schliessen, also zB auf m/84’/0’/1’ und m/84’/0’/2’ usw.. schliessen?

Die KI war jetzt der Ansicht, dass wenn der Account xpub (m/84’/0’/0’) bekannt sei, und zus. eine Transaktion eines weiteren Pfades bekannt sei, uU der ganze Seed kompromittiert wäre. da die unteren Ebenen nicht hardened seien.

Irgendwie soll uU dabei der priv key der Transaktion geleakt werden… oder so… da wurds dann wirr. Und mir war nicht klar, weshalb zwischen Account Pfad und anderen Pfaden unterschieden wurde.

Hintergrund der Frage ist DAC8, wenn vor dem 01.01.26 auf einen neuen Pfad / Unterkonto umgezogen wurde, da der xpub des ursprünglichen Kontos (m/84’/0’/0’) bei bis Dez. 25 in einem Steuertool hinterlegt wurde.

Nein, zumindest bei der Bitbox nicht, für andere Produkte kann ich nichts sagen da ich nur die Bitbox verwende.

Wild :sweat_smile:

Ich glaube davon hätte man gehört. Es gibt sicherlich viele, die xpubs von mehreren Ableitungen veröffentlicht oder weitergegeben haben, die wären ja dann alle gefährdet.

Nein, dazu bräuchte man den Private Key (und den Chaincode) aus der vorherigen Ableitungsebene also m/84’/0’.

Das ‘ dabei steht übrigends für gehärtet.

Dieser “Parent” Private Key von m/84’/0’ mit Chaincode und Indexnummer wird in einer Hashfunktion zusammen zu dem “Child” Private Key dem m/84’/0’/1’.

Wegen der Hashfunktion kann man da nicht zurückgehen. Und deswegen auch nicht zwischen den Unterkonten wechseln.

Und da das 2. Unterkonto den selben Parent Key und Chaincode hat, verstehe ich nicht, warum eine Transaktion des 2. Unterkontos irgendetwas neues verraten sollte. Aber eines stimmt, man so wenig xpubs, Keys und Signaturen wie möglich veröffentlichen, alles schadet der Privatsphäre und wer weiß, welche kryptografischen Algos in Zukunft vielleicht doch aus zb. xpubs irgendetwas berechnen können.

2 „Gefällt mir“

ok, danke das wusste ich noch nicht. wieder viel gelernt hier. :slight_smile:

ok, dann meinte die KI wahrsch das und hat sich mit den Pfaden verhauen….

eben!

Danke für die erhellende Erklärung, jetzt hab ichs in etwa verstanden :)

das war übrigens die Antwort der KI und mir ist nicht klar, warum mit dem Ableitungspfad auch der private key der Adresse bekannt ist:

Zitat Grok:

„Ja, das lässt unter den genannten Bedingungen Rückschlüsse auf weitere Pfade zu – und zwar den gesamten Account.

Hier die genaue Erklärung (BIP-32 / HD-Wallets):

Voraussetzungen, die du in der Frage nennst

  • Du kennst einen konkreten Ableitungspfad (z. B. m/84’/0’/0’/0/42) → also den Private Key einer Adresse.
  • Zusätzlich ist der xPub bekannt → in der Praxis fast immer der Account-xPub (also z. B. m/84’/0’/0’), weil das der übliche Export-Punkt für Watch-Only-Wallets ist.
  • Von dieser Adresse wurden bereits Transaktionen gesendet → der Private Key wurde also tatsächlich benutzt (die Public Key ist on-chain im Witness sichtbar, aber das ändert mathematisch nichts am Ableitungs-Mechanismus).

Warum das reicht, um den gesamten Account zu kompromittieren

Bei Standard-Bitcoin-Pfaden (BIP-84, BIP-49, BIP-44 etc.) sind nur die letzten beiden Ebenen non-hardened:

m / 84’ / 0’ / 0’ / change / address_index ↑ ↑ ↑ ↑ ↑ hardened hardened non-hardened non-hardened

Die Ableitung vom Account-Private-Key nach unten (Change → Address) ist non-hardened. Das bedeutet:

Du kannst mit dem Account-xPub + einem einzigen Child-Private-Key (egal wie viele Ebenen tiefer) den Account-Private-Key vollständig zurückrechnen.

Schritt für Schritt (mathematisch):

  1. Aus dem bekannten Account-xPub berechnest du den Change-xPub (non-hardened CKDpub):

    I = \\text{HMAC-SHA512}(\\text{ChainCode}\\text{account}, \\text{PubKey}\\text{account} \\parallel \\text{ser32}(0))

    Change-xPub = IL || IR (ChainCode bleibt erhalten).

  2. Mit diesem Change-xPub + deinem bekannten Address-Private-Key berechnest du den Change-Private-Key:

    \\text{Change-Priv} = \\text{Address-Priv} - \\text{parse256}(IL) \\pmod{n}

    (IL wird aus Change-xPub + Address-Index neu berechnet – genau das ist bei non-hardened möglich.)

  3. Jetzt gehst du eine Ebene höher: Mit dem Account-xPub berechnest du den IL für die Change-Ableitung und erhältst den Account-Private-Key:

    \\text{Account-Priv} = \\text{Change-Priv} - \\text{parse256}(IL\_\\text{account}) \\pmod{n}

Sobald du den Account-Private-Key + dessen ChainCode hast, besitzt du den vollständigen Extended Private Key (xPrv) des Accounts.

Damit kannst du alle weiteren Pfade desselben Accounts ableiten:

  • Alle anderen External-Adressen (/0/*)
  • Alle Change-Adressen (/1/*)
  • Beliebig viele neue Adressen (auch höhere Indices)

Was du nicht bekommst

  • Andere Accounts (z. B. m/84’/0’/1’), weil diese hardened abgeleitet sind.
  • Den Master-Seed oder höhere Ebenen (Purpose’/Coin-Type’), weil dort ebenfalls hardened Derivation verwendet wird.

Warum die bereits gesendeten Transaktionen relevant sind

Sie beweisen nur, dass der Private Key tatsächlich verwendet wurde (also kein „kalter“ Key, den man vielleicht nie importiert hätte). Mathematisch ändert das nichts – die Rekonstruktion funktioniert auch ohne Transaktionen. On-chain siehst du lediglich die Public Key, was aber für die obige Berechnung nicht benötigt wird.

Zusammengefasst:
Ja – mit Account-xPub + einem einzigen genutzten Address-Private-Key (non-hardened) ist der komplette Account kompromittiert. Genau deshalb warnen alle seriösen Wallets davor, einen Account-xPub zu exportieren, sobald auch nur ein Private Key irgendwo geleakt oder verwendet wurde. Das ist kein theoretischer Angriff, sondern ein seit 2012 bekannter und in der Praxis relevanter Vektor (z. B. bei Watch-Only-Setups oder Backup-Fehlern).

Da ist das Problem 1, den Private Key kennt natürlich niemand.

Da ist Fehler 2 der KI, bei der Bitbox erhält man wohl keinen xPub der “höheren Ebene” sondern einen xPub für jedes Unterkonto.

Zitat, Bitbox FAQ

Enthalten meine Wiederherstellungswörter nur einen erweiterten öffentlichen Schlüssel?

Nein.

Deine Recovery Phrase erzeugt viele erweiterte öffentliche Schlüssel.

Jedes Konto deiner Wallet hat seinen eigenen Schlüssel.

Klar, wenn man den Private Key hat und durch den xPub auch den Chain Code, dann hat man alles was man brauchen könnte :sweat_smile:

Hier sagt die KI selbst, dass es keinen Unterschied macht? :rofl:

1 „Gefällt mir“

ok, perfekt. danke für die Klarstellung! :slight_smile:

das war ja auch die beiden Punkte, die ich nicht nachvollziehen konnte.