Wie schwierig ist es, eine ECDSA- (oder Schnorr-) Signatur mit einer bestimmten Anzahl führender Nullen zu generieren?

Wenn sowohl der öffentliche Schlüssel als auch der private Schlüssel im Voraus bekannt sind (öffentliche Kenntnis) und das Ziel darin besteht, eine Nachricht/Nonce auszuwählen, die eine Signatur mit beispielsweise einer bestimmten Anzahl führender Nullen erzeugt, ist dies ähnlich rechnerisch eine herausfordernde Aufgabe gegenüber dem traditionellen Arbeitsnachweis, da er „schwer zu finden“, aber „(relativ) einfach zu verifizieren“ ist?

Es scheint, als sollte die Antwort "Ja" lauten, denn wenn die Antwort "Nein" lautet, würde dies (glaube ich?) bedeuten, dass Signaturen für verschiedene Nachrichten nicht pseudozufällig einheitlich sind.

Vielleicht etwas prägnanter formuliert, kann eine Signatur auch selbst dazu dienen, einen gezielten Proof-of-Work darzustellen?

Ändern sich schließlich die Antworten auf eine der oben genannten Fragen, wenn das verwendete Signaturschema eher Schnorr als ECSDA ist?

Bearbeiten: Es scheint, dass Adaptersignaturen [1] dies im Wesentlichen ermöglichen, aber ich weiß nicht genug darüber, wie sie funktionieren, um es sicher zu wissen. [1] https://github.com/ElementsProject/scriptless-scripts

Antworten (1)

Nicht, wenn Sie nur führende Nullen oder nur den niedrigsten Wert verwenden, wenn Sie ihn als sehr große Ganzzahl interpretieren.

Nehmen wir der Einfachheit halber an, dass Sie kompakte Signaturen verwenden, die nur die Signaturen Rund sWerte miteinander verkettet sind, anstatt andere Signaturformate, die zusätzliche umgebende Formatierungsbytes haben, die einen direkten Vergleich stören würden.

Das kompakte Signaturformat verkettet einfach die Rund die sWerte. Dies wäre jedoch ein trivial gebrochenes PoW-Schema, sobald eine Person einen gültigen PoW findet, und diese Person wäre immer der Gewinner. Dies liegt daran, dass der RWert nur die X-Koordinate einer Nonce ist, die mit dem Generatorpunkt der Kurve multipliziert wird. Wenn jemand einen RWert findet, der mit dem PoW funktioniert, kann er diesen Nonce einfach weiterverwenden und hat immer denselben gültigen R-Wert. Das ist also offensichtlich kaputt.

Aber wenn Sie klüger wären, was für den PoW verglichen wird, indem Sie stattdessen überprüfen, ob der sWert niedriger als das Ziel ist. Der sWert wird mithilfe einer Formel berechnet, die die Nonce, den Nachrichten-Hash und den privaten Schlüssel enthält. In Schnorr gibt es auch mehrere Hashes und EC-Kurvenpunktmultiplikationen, die dazu beitragen, es zufälliger zu machen. Sollte also spseudozufällig sein.

Es gibt jedoch einige andere Probleme mit einem signaturbasierten PoW, obwohl diese eher speziell auf ECDSA als auf Signaturen im Allgemeinen gerichtet sind.

Der öffentliche Schlüssel, gegen den verifiziert werden soll, muss bekannt sein und als "richtig" bekannt sein. Das bedeutet, dass Sie nicht einfach jede am PoW teilnehmende Person ihren eigenen öffentlichen Schlüssel bereitstellen lassen können, es muss ein fester öffentlicher Schlüssel sein, und jeder muss den privaten Schlüssel kennen.

Dies liegt daran, dass Sie bei einer gegebenen ECDSA-Signatur und einer Nachricht einen öffentlichen Schlüssel berechnen können, der diese Kombination aus Signatur und Nachricht validieren würde. Aus diesem Grund ist es wichtig, dass der öffentliche Schlüssel bekannt ist, bevor die Signatur validiert wird. Beachten Sie, dass dies für das vorgeschlagene Schnorr-Signaturschema nicht möglich ist, da es damit nicht möglich ist, öffentliche Schlüssel wiederherzustellen.

Die verifizierte Nachricht muss veröffentlicht und gehasht werden. Das ist ziemlich offensichtlich, da es ein entscheidender Teil jedes PoW-Algorithmus ist. Aber speziell mit ECDSA können Sie mit einer Signatur und einem öffentlichen Schlüssel einen Nachrichten-Hash berechnen, der zu einer gültigen Signatur führen würde. Aus diesem Grund ist es wichtig, dass die Nachricht gehasht wird und nicht nur der Wert, der in den Signaturalgorithmus eingegeben wird. Dies sollte mit den Schnor-Signaturen nicht möglich sein.

Sie könnten also Signaturen als PoW verwenden, solange Sie prüfen sund nicht Rfür die eigentliche PoW-Prüfung. Und ich würde vorschlagen, dass Sie eher Schnorr-Signaturen als ECDSA verwenden.

Vielen Dank für die sehr ausführliche Antwort. Ich bin froh, dass Sie auch die Besonderheiten geklärt haben, wie sich die verschiedenen Signaturschemata zu diesem Zweck unterschiedlich verhalten. Meine ursprüngliche Vorstellung von "Signatur" entsprach eher dem, was Sie sin Ihrer Antwort beschreiben. Ich werde mir die Schnorr-Signaturen ansehen, wie Sie vorschlagen (und anscheinend muss ich auch ECDSA besser verstehen!). Danke noch einmal.