Warum kann niemand eine gültige digitale Signatur erstellen, ohne Ihren privaten Schlüssel zu kennen?

Ich verstehe aus den folgenden zwei Beiträgen, dass private Schlüssel vom Absender nicht angezeigt werden, wenn seine Transaktion von den Bitcoin-Minern validiert wird:

Was passiert mit dem privaten Schlüssel bei Zahlung

Wie können Transaktionen ohne den privaten Schlüssel verifiziert werden?

Stattdessen wird eine digitale Signatur bereitgestellt, die auf dem privaten Schlüssel basiert, und soweit ich verstehe, ist diese digitale Signatur im "Vergleich" mit dem öffentlichen Schlüssel überprüfbar.

Warum kann dann niemand eine verifizierbare digitale Signatur nur mit dem öffentlichen Schlüssel eines anderen erzeugen?

Oder anders ausgedrückt, indem Sie eine Antwort aus dem ersten oben aufgeführten Beitrag zitieren:

"Ohne Zugriff auf den privaten Schlüssel kann keine gültige Signatur erstellt werden" - warum nicht?

Antworten (3)

Bitcoin verwendet den sogenannten Elliptic Curve Digital Signature Algorithm (ECDSA) zum Signieren und Verifizieren von Transaktionen. Lesen Sie den verlinkten Wikipedia-Artikel für den genauen Ablauf der Funktionsweise von ECDSA. Wenn Sie verstehen, wie der Modulo-Operator funktioniert, sollte es Sinn machen, warum Sie ohne den privaten Schlüssel keine Signatur erstellen können.


Es fällt mir etwas schwer, dies zu erklären, da es auf komplexer Mathematik beruht, aber ich werde es versuchen.

Um eine gültige ECDSA-Signatur zu erstellen, benötigen Sie den privaten Schlüssel, der eine große Ganzzahl ist. Er wird ausdrücklich im Signaturerstellungsalgorithmus verwendet, der öffentliche Schlüssel jedoch nicht. Außerdem ist der öffentliche Schlüssel keine ganze Zahl wie der private Schlüssel; vielmehr ist es ein Punkt auf einer elliptischen Kurve. Selbst wenn Sie den öffentlichen Schlüssel kennen, können Sie damit keine Signatur erstellen, da es sich nicht um den privaten Schlüssel handelt und Sie den privaten Schlüssel nicht aus dem öffentlichen Schlüssel wiederherstellen können.

Der private Schlüssel kann aufgrund eines Problems namens Elliptic Curve Discrete Logarithm Problem nicht aus dem öffentlichen Schlüssel wiederhergestellt werden. Aus Wikipedia :

Es wird angenommen, dass es nicht möglich ist, den diskreten Logarithmus eines zufälligen elliptischen Kurvenelements in Bezug auf einen öffentlich bekannten Basispunkt zu finden: Dies ist das "Elliptic Curve Discrete Logarithm Problem" (ECDLP).

Der private Schlüssel ist der diskrete Logarithmus. Obwohl dies eine Annahme ist, hat sich in der Praxis gezeigt, dass ECDLP ein hartes Problem ist, dh es ist schwierig, das diskrete Protokoll zu finden, wenn ein Basispunkt und ein öffentlicher Schlüsselpunkt gegeben sind. Sie können also nicht den privaten Schlüssel erhalten, der in ECDSA benötigt wird, um die Signatur zu erstellen.

danke, das hilft definitiv, obwohl ich nicht behaupten kann, die Antwort vollständig zu verstehen, ist es nützlich, zu wissen, dass ich keinen einfachen Fehler in meinem Verständnis der Funktionsweise von Bitcoin hatte.

"Ohne Zugriff auf den privaten Schlüssel kann keine gültige Signatur erstellt werden" - warum nicht?

In wenigen Worten: weil es heute keinen bekannten Algorithmus dafür gibt.

Dies ist ein Merkmal digitaler Signaturen aus der Public-Key-Kryptografie. Es würde wahrscheinlich den Rahmen dieser Seite sprengen, zu erklären, wie Kryptografie funktioniert. Vielleicht wäre https://crypto.stackexchange.com/ ein besserer Ort, um zu fragen.