Zum Inhalt springen

Verständnisproblem Adresse / öffentlicher Schlüssel


Fabian

Empfohlene Beiträge

Liebe Forengemeinde,

 

ich beschäftige mich seit kurzem mit Bitcoin und habe ein Verständnisproblem

bezüglich Adressen und dem öffentlichen Schlüssel.

Zunächst habe ich oft gelesen, dass Adressen und öffentliche Schlüssel ein und das selbe sind. Wenn ich also jemanden Bitcoins senden will, „sende“ ich sie an seinen öffentlichen Schlüssel. Nur wer den dazugehörigen

privaten Schlüssel hat, kann sie dann in Zukunft ausgeben. Ich habe auch die Abhandlung von Satoshi Nakamoto bezüglich Transaktionen gelesen. Da gibt es diese Grafik, in der für jede Transaktion ein öffentlicher Schlüssel eingetragen wird, der des neuen Besitzers. Das habe ich so weit auch alles verstanden (glaube ich :-).

 

Allerdings hatte ich auch mal gelesen, dass Adressen und öffentliche Schlüssel doch nicht das gleiche sind. Mittlerweile glaube ich zu wissen, dass man eine Adresse aus dem dazugehörigen öffentlichen Schlüssel ableitet. Dabei verwendet man SHA256 und noch RIPEMD-160 oder so. Anschließend kommen noch Prüfziffern dazu, um Tippfehler zu erkennen. Wenn man Geld sendet, sendet man es dann an eine solche Adresse.

Allerdings kann man zwar aus einem öffentlichen Schlüssel die Adresse bestimmen - aber nicht umgekehrt (korrigiert mich wenn ich was falsches schreibe).

 

Das bringt mich durcheinander. Denn wo kommt denn jetzt bei einer Transaktion der öffentliche Schlüssel ins Spiel? Der muss doch irgendwie abgespeichert werden, damit man in Zukunft fest stellen kann, ob jemand zum Ausgeben berechtigt ist.

 

Oder wobei ... jetzt wo ich das alles so aufgeschrieben habe (beim präzisen Frage stellen kommen einem oft neue Ideen :-) ...

 

Reicht man dann bei einer Transaktion den öffentlichen Schlüssel nach? Dann könnte man ja schauen, ob sich aus diesem Schlüssel diese Adresse ableiten lässt. Dann liefert man noch die Signatur, die man wiederum mit dem nachgereichten Schlüssel verifizieren kann... Hm. Ich habe aber noch nie gehört, dass man bei einer Transaktion den öffentlichen Schlüssel sendet, sonder ich dachte dass man nur die Signatur sendet.

 

Auf jeden Fall bin ich hier unsicher und täte mich über Antworten freuen. Ich habe auf jeden Fall oft gelesen, dass man Bitcoins „an einen öffentlichen Schlüssel“ sendet, aber das scheint ja so nicht zu stimmen.

 

Vielen Dank im Voraus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Fabian,

 

willkommen im Forum und in der Bitcoin-Welt.

Du hast die Sache schon ganz richtig analysiert, bzw. eine gute Frage enthält die halbe Antwort.

 

Aus den Public Key <pubKey> wird die öffentliche Adresse <pubKeyHash>.

 

Aus dieser kann der Public Key nicht abgeleitet werden. Man sendet also seine Bitcoins in der Blockchain an die öffentliche Adresse <pubKeyHash>.

Erst wenn man diese wieder ausgibt, sendet der Besitzer den Public Key <pubKey> und die Signatur <sig> um seine Berechtigung nachzuweisen.

 

Oft wird behauptet, man soll für jede Transaktion eine neue Adresse verwenden wegen dem Datenschutz.  

Das ist nur die halbe Wahrheit!

Solange man nur die öffentliche Adresse <pubKeyHash> kennt, kann man daraus nicht den Public Key <pubKey> errechnen. Heißt, selbst wenn man mal den Krypto-Algorithmus knacken sollte, kommt man noch nicht an die Bitcoin. Es ist also eine Sicherheit, die schon ein bisschen weiter denkt. "Doppelter Boden".

Wenn man dann seine Transaktion tätigt, gibt man zwar den Public Key <pubKey> bekannt, aber gleichzeitig leert man auch die Adresse!

Selbst der Rest (Wechselgeld) geht an eine andere Adresse.

Du siehst, die Leute haben 2008 schon sehr komplex gedacht, und weiter, als mancher, "der was von Bitcoin erzählt".

 

Okay, mehr findest Du unter den Stichwort scriptSig.

 

Beispiel: Pay-to-PubkeyHash

scriptPubKey: OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
scriptSig: <sig> <pubKey>

Du kannst mit den Bitcoin Core in der Konsole mal etwas experimentieren.

Viel Spaß dabei. (Mehr Technik würde hier zu weit führen...)

 

Axiom

Bearbeitet von Axiom0815
  • Love it 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

Interessant ... dann ist es doch ein bisschen anders, als es meistens erklärt wird...

Etwas an einen „öffentlichen Schlüssel senden“ mag noch im übertragenen Sinn richtig sein (der dazugehörige private Schlüssel kann es ja dann ausgeben). Allerdings benötigt man ja nicht nur den privaten Schlüssel zum Ausgeben sondern auch den öffentlichen.

Wobei man den öffentlichen glaube ich aus dem privaten herleiten kann. Und zum Senden braucht man vor allem die Adresse, ohne die geht gar nix. Aber ich habe oft gelesen, dass Adressen und öffentliche Schlüssel ein und dasselbe sind. Aber das ist tatsächlich falsch.

 

Vielen Dank!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Für den "Normalo" viel zu viel Informationen. Bei einer IBAN Überweisung kennt sicher auch kaum jemand spezielle Details, man nutzt es und gut. (Mainstream)

 

Wenn ein "Nerd" sowas wissen möchte okay, aber ich denke wenn der normale "Anwender" oder auch ein "Bitcoiner" von einer Bitcoin-Adresse oder einem öffentlichen Schlüssel spricht, dann ist in 98% der Fälle sicher ein und das gleiche gemeint. Was mM auch vollkommen okay ist. 

 

Gerade normalen "Einsteigern" und "Neulingen" wäre das glaube schon viel zu viel.  ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Heißt also wenn man pubKey und sig kennt und man den Krypto-Algorithmus geknackt hat kommt man an den Schlüssel ?

 

Was passiert wenn durch Zufall, ja ich hatte es schon mal gefragt, der pubKey zweimal verwendet wird in dem Fall mit zwei verschiedenen Signaturen? Gibts dann nen Fehler im System oder wie kann ich mir das vorstellen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Interessant ... dann ist es doch ein bisschen anders, als es meistens erklärt wird...

Etwas an einen „öffentlichen Schlüssel senden“ mag noch im übertragenen Sinn richtig sein (der dazugehörige private Schlüssel kann es ja dann ausgeben). Allerdings benötigt man ja nicht nur den privaten Schlüssel zum Ausgeben sondern auch den öffentlichen.

Wobei man den öffentlichen glaube ich aus dem privaten herleiten kann. Und zum Senden braucht man vor allem die Adresse, ohne die geht gar nix. Aber ich habe oft gelesen, dass Adressen und öffentliche Schlüssel ein und dasselbe sind. Aber das ist tatsächlich falsch.

 

Vielen Dank!

 

Du hast alles besser verstanden, als die meisten.

 

Du brauchst zum senden den privaten Schlüssel.

 

Aus diesem kann man alles andere berechnen.

 

Sonst braucht man nur die Adresse (= öffentlicher Schlüssel) um Bitcoins zu empfangen.

Bearbeitet von fjvbit
  • Love it 1
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.