Warum ist es unmöglich, den öffentlichen Schlüssel von der Adresse abzuleiten?

Dies ist meine erste Bitcoin- Transaktion .

Warum zeigt diese Transaktion meinen öffentlichen Schlüssel nicht an? Hilfenachricht auf derselben Seite besagt, dass

Es ist unmöglich, den öffentlichen Schlüssel aus einer Bitcoin-Adresse zu ermitteln, aber wenn der öffentliche Schlüssel jemals im Netzwerk verwendet wurde, wird er hier aufgelistet.

Ich dachte, dass meine Adresse ein öffentlicher Schlüssel ist. Ist es wirklich unmöglich, den öffentlichen Schlüssel von der Adresse abzuleiten?

andere Details, blockchain.info Transaktions- und Adressdetails .

Antworten (2)

Die Adresse ist im Grunde nur ein Hash des öffentlichen Schlüssels. Die beteiligten Hash-Funktionen (RIPEMD-160 und SHA256) sind kryptografische Hash-Funktionen. Sie werden oft auch als Einwegfunktionen bezeichnet, genau aus diesem Grund kann man den öffentlichen Schlüssel nicht aus der Adresse ableiten.

Einwegfunktionen bieten genau das, a = f(pk)sodass aSie gegebene nicht ableiten können pk.

Genau aus diesem Grund muss die nächste Transaktion, die die an eine Adresse gesendete Ausgabe beansprucht, nicht nur eine Signatur liefern, sondern auch den passenden öffentlichen Schlüssel, der, wenn er zu einer Adresse verarbeitet wird, die Adresse in der Ausgabe zurückgibt.

Weitere Einzelheiten finden Sie im Adressableitungsprozess .

Die Adresse hat nur 160 Bit. Der öffentliche Schlüssel hat 257 Bit. Es gibt also keine Möglichkeit, von einer Adresse zu einem öffentlichen Schlüssel zu gelangen – es fehlen Informationen.

Der kürzeste Hash mit ausreichender Sicherheit ist 160 Bit. Bitcoin verwendet also einen 160-Bit-Hash als Adresse, um die Adresse so kurz wie möglich zu machen. Es gibt jedoch kein bekanntes öffentliches Schlüsselschema, das mit nur 160-Bit-öffentlichen Schlüsseln ausreichend sicher ist. Der öffentliche Schlüssel konnte also nicht als Kontoadresse verwendet werden, ohne das Konto länger zu machen.

Der öffentliche Schlüssel wird jedoch benötigt, um eine Signatur zu verifizieren. Wenn Sie also eine Transaktion durchführen, um Münzen zu beanspruchen, die an ein Konto gesendet wurden, müssen Sie den öffentlichen Schlüssel angeben. Bei der Validierung der Transaktion wird der öffentliche Schlüssel überprüft, um sicherzustellen, dass er den richtigen Hash hat (der zum Konto passt), und dann wird die Signatur überprüft, um sicherzustellen, dass sie für die Transaktion gültig ist und mit dem bereitgestellten öffentlichen Schlüssel erstellt wurde. Ab diesem Zeitpunkt ist der der Adresse entsprechende öffentliche Schlüssel öffentlich bekannt.