Wird durch das Signieren einer Nachricht die Sicherheit der Adresse geschwächt?

Wird das Signieren einer Nachricht (ohne eine $-Transaktion durchzuführen) den privaten Schlüssel an die Blockchain genauso/ähnlich weitergeben, wie der private Schlüssel an die Blockchain weitergegeben wird, wenn Sie eine $-Transaktion durchführen?

Der Punkt ist, dass das Durchführen einer Transaktion die Sicherheit der Adresse ein wenig schwächt, da der private Schlüssel der Blockchain offengelegt wird. Das ist einer der Gründe, warum bei jeder Transaktion eine Änderung/neue Adresse verwendet wird.

Aber was ist, wenn Sie einfach eine Nachricht signieren? Wird die Sicherheit der Adresse dadurch auch ein wenig geschwächt?

In diesem Beitrag wurde vorgeschlagen, die Instanzen von "Private Key" in "Public Key" zu ändern, da der Private Key natürlich nie preisgegeben wird. Ich habe die vorgeschlagene Änderung abgelehnt, da die Behebung dieses Missverständnisses der Hauptpunkt der Antwort ist, was dann viel weniger Sinn machen würde.

Antworten (1)

Die Verschlüsselung mit öffentlichem/privatem Schlüssel erfordert, dass der private Schlüssel niemals preisgegeben wird – der Besitzer muss ihn geheim halten.

Das Signieren von Nachrichten und Transaktionen erfolgt mit dem privaten Schlüssel und wird mit dem zugehörigen öffentlichen Schlüssel verifiziert. Der private Schlüssel wird also niemals an die Blockchain weitergegeben . Beachten Sie, dass sich der öffentliche Schlüssel hier auf den vollständigen öffentlichen ECC-Schlüssel bezieht und nicht auf eine Bitcoin-Adresse – die eine gehashte und transformierte Darstellung des öffentlichen Schlüssels ist. Der öffentliche Schlüssel kann nur dann von einer Bitcoin-Adresse abgeleitet werden, wenn die Hash-Algorithmen SHA256 und reifeMD-160 jemals gebrochen sind. Diese Frage untersucht die Herausforderung.

Um Ihre Frage zu beantworten: Ja, jede neue Signatur, die von einem privaten Schlüssel erzeugt wird, kann einen Angreifer, der den zugehörigen öffentlichen Schlüssel bereits kennt, der Entdeckung des privaten Schlüssels näher bringen.

Kommentare zu dieser Antwort haben eine aktualisierte Position mitgeteilt:

Obwohl es keine nachweisbare Sicherheit für ECDSA gibt, wird allgemein angenommen, dass ein Angreifer selbst bei Kenntnis mehrerer Signaturen, die von einem bestimmten Schlüssel erzeugt werden, keine besseren Chancen hat, den zugehörigen privaten Schlüssel abzuleiten oder seine Signatur zu fälschen.

Es ist eine fast unmögliche Aufgabe, einen privaten Bitcoin-Schlüssel aus seinem öffentlichen Schlüssel zu entdecken. Eine Antwort auf diese Frage verdeutlicht die Herausforderung mathematisch.

Einige Leute raten zu einer Haltung von "better safe than sorry" - dass öffentliche Schlüssel nach Möglichkeit nicht preisgegeben werden sollten. Vorsicht sollte jedoch den praktischen Nutzen nicht entmutigen – wie in den Kommentaren unten ausgeführt wird.

Best Practice ist, wie Sie sagen, häufig Schlüssel zu ändern und vorzugsweise für jede Empfangstransaktion eine neue Adresse zu verwenden. Wenn Sie möchten, dass jemand eine Signatur verifizieren kann, benötigt er natürlich Ihren öffentlichen Schlüssel.

Soweit mir bekannt ist, ist der einzige Bitcoin-Transaktionstyp, der öffentliche Schlüssel preisgibt, Pay-To-Public-Key-Hash (P2PKH), der den vollständigen öffentlichen Schlüssel in seinem Skript enthält.

Vielen Dank für Ihre Antwort. Ich schätze, ich werde auf dieses Stellar Lumens-Werbegeschenk verzichten, das eine Unterzeichnungsnachricht erfordert. Besser auf Nummer sicher gehen.
Ich denke, "better safe than sorry" ist hier irreführend. Angriffe, die auf der Kenntnis des öffentlichen Schlüssels beruhen, sind rein theoretisch und ich kenne keinen Grund zu der Annahme, dass sie in absehbarer Zeit praktikabel werden. Ja, Sie können es genauso gut vermeiden, den öffentlichen Schlüssel preiszugeben, wenn es keinen Grund dafür gibt . Aber wenn, wie in Ihrem Fall, damit etwas gewonnen werden kann , dann überwiegt das wahrscheinlich die vernachlässigbaren Risiken.
Während ECDSA technisch keinen Sicherheitsnachweis hat, wird allgemein angenommen, dass ein Angreifer eine beliebig große Anzahl von Signaturen mit einem bestimmten Schlüssel auf von ihm gewählten Nachrichten sehen darf und dennoch nicht in der Lage wäre, den privaten Schlüssel abzuleiten oder anderweitig zu fälschen eine Unterschrift. Ich glaube, diese Antwort ist aus diesem Grund falsch.
Antwort aktualisiert in Bezug auf Kommentare von Nate Eldredge und @PieterWuille .
In der Tat ist es fast unmöglich, einen Angriff auf den privaten Schlüssel zu hacken, nachdem eine Adresse in einer Transaktion verwendet wurde, theoretisch gesprochen. Genauso theoretisch ist eine Kollision unmöglich, aber das Large Bitcoin Collider-Projekt hat bisher mehr als 50 Adressen kollidiert. So viel zur Theorie, die in der Praxis nicht funktioniert. Warum empfehlen die Leute also, bei jeder neuen Transaktion eine neue Adresse zu verwenden, wenn der Hack unmöglich ist? Vorzuschlagen, bei jeder neuen Transaktion eine neue Adresse zu verwenden und gleichzeitig zu sagen, dass es unmöglich ist, den privaten Schlüssel zu hacken, klingt sehr widersprüchlich.
LBC fand nur Schlüssel, die mit defekten Zufallszahlengeneratoren generiert wurden. Der Grund, Adressen nicht wiederzuverwenden, ist in erster Linie der Datenschutz. Im unwahrscheinlichen Fall eines EC-Kryptobruchs kann es einen zusätzlichen Schutz bieten, solange die Bergleute keinen Zugang zu einem Mittel haben, um EC zu brechen.