Unterschied bitcoinadresse und public key

Hey all,

ich arbeite mich aktuell in die ganze Bitcoinmaterie ein und bin ziemlich begeistert von Konzept und den ganzen Möglichkeiten.

Da ich aber im Rahmen meiner Möglichkeiten (ich bin kein ITler) möglichst alles recht genau verstehen will, hier eine (vermutlich sehr einfache) Frage:

Aus dem private key wird der public key generiert. Aus dem public key lassen sich wiederum verschieden e Bitcoinandressen generieren. So weit habe ich das verstanden. Mir ist nur noch nicht ganz klar warum man die Bitcoinadressen braucht. Könnte man nicht auch einfach seinen public key preisgeben? Technisch wäre das doch möglich, oder? Nachteil wäre eben, dass recht schnell klar wäre wem der private key gehört. Aber dienen die verschiedenen Bitcoinadressen nur der „Verschleierung“ des private key? Das ganze hat ja – wenn ich es richtig verstehe – auch den Nachteil, dass meine Bitcoins nicht einer Adresse sondern mehreren Adressen zugeordnet sind. Will ich also alle BTC transferieren, muss ich etliche Transaktionen nebst Gebühren auslösen. Verstehe ich das richtig oder habe ich einen Denkfehler?

Danke euch!

Liebe Grüße,

C

Richtig!

Aus einem Public Key wird eine Adresse generiert. Vielleicht verwechselst du das mit dem Seed oder einem Extended Public Key. Aus diesen können mehrere Adressen abgeleitet werden.

Mir fallen dazu zwei Gründe ein:

  1. Eine Adresse bietet mehr Sicherheit. Wenn jemand deinen Public Key kennt, dann ist es „nur“ noch ein Schritt bis zum Private Key. ECDSA ist heute noch sehr sicher, könnte aber zu Quantencomputer-Zeiten durch den Shore-Algorithmus an Sicherheit verlieren. Rein theoretisch wäre auch heute schon möglich, dass jemand einen Weg findet ECDSA Public Keys zu Private Keys zurückzurechnen, es ist nur verdammt unwahrscheinlich.

Wenn man nun den ECDSA Public Key einfach nochmal mit anderen, alleine schon sehr sicheren Verfahren hasht, hat man die Sicherheit diversifiziert. Man müsste dann schon drei eigenständige Verfahren zurückrechnen können.

Eine Bitcoin Adresse entsteht durch zweifaches Hashen des Public Keys:
Adresse = RIPEMD-160(SHA-256(Public Key))

(die Adresse wird anschließend dann noch unabhängig von der Sicherheit zu verschiedenen Zwecken codiert)

Man hat mit ECDSA, SHA-256 und RIPEMD-160 alsdo drei Verfahren in Folge, die man heute noch nicht zurückrechnen kann. Die beiden letzteren gelten auch bisher als quantum-resistant.

  1. Durch das zweite Hashen mit dem RIPEMD-160 Algorithmus wird aus einer 256 Bit Zahl eine 160 Bit Zahl. Das schränkt den Adressraum (unbedeutend) ein, spart aber Platz bei Transaktionen auf der Blockchain.

Das ist wie gesagt wahrscheinlich eine Verwechslung.

2 „Gefällt mir“

Es kann ein Nachteil für die Transaktionskosten sein, ist aber aus Privacy Gesichtspunkten ein Vorteil.

Wenn du deine Coins so auf verschiedenen Adressen Verteilt hast, dass du viele Größen von Transaktionen mit jeweils möglichst wenig Inputs tätigen kannst, verknüpfst du auch weniger Informationen miteinander.

Diese Problematik wird unter dem Namen coin selection behandelt. Manche Wallets bieten manuelle Auswahl an, nach welchen Kriterien andere Wallets die Coins auswählen, weiß ich nicht.

1 „Gefällt mir“