Warum steht der Hash vor der Signatur?

Die erste Abbildung im Originalpapier von Satoshi ist ein Transaktionsdiagramm. Dieses Diagramm scheint darauf hinzudeuten, dass die Transaktionsdaten gehasht werden, bevor die Signatur des Absenders angehängt wird. Warum nicht einfach die gesamte Transaktion einschließlich der Signatur hashen, um einen allumfassenden Transaktionshash zu erzeugen?

Update : Ich möchte den Kommentar von @David Schwartz zur akzeptierten Antwort hervorheben.

Antworten (1)

Weil es keine Funktion hätte. Der im Bild des Original-Whitepapers aufgeführte Hash dient nur dazu, die Signatur kürzer zu machen (und möglicherweise den Prozess der Erstellung zu beschleunigen), ohne die Sicherheit zu verlieren, seine einzige Funktion ist die Authentifizierung einer Transaktion, er wird für nichts anderes verwendet (bzw sogar gespeichert).

Zur Verdeutlichung ist dies das in der Frage erwähnte Diagramm:

Transaktion im Satoshi-Whitepaper

Sie scheinen anzudeuten, dass die ursprüngliche Transaktion (unverschlüsselt) nicht in der Blockchain gespeichert ist. Wenn es so wäre, könnte man alle Details der Transaktion, einschließlich der Signatur und der Nachricht, die sie signiert, einfach einsehen ...
Hm, ich glaube, ich habe deine Frage falsch verstanden, ich werde die Antwort bearbeiten.
Ich markiere dies als Lösung, weil es vernünftig erscheint. Ich wäre immer noch daran interessiert, einige Referenzen zu sehen, die Ihre Behauptung stützen. Wenn ich das richtig verstehe, behaupten Sie, dass der einzige Zweck dieses Hashs darin besteht, die Signatur zu verkürzen (und/oder zu beschleunigen). (Ich nehme dann an, dass diese Hashes nichts mit dem Hash-Baum zu tun haben, der zur Merkle-Wurzel hinaufführt.)
Das ist richtig. Nehmen Sie zum Beispiel PGP (oder GPG), Sie sehen fast nie jemanden, der eine ganze Nachricht signiert, weil dies einen beträchtlich langen Overhead hinzufügen würde. Stattdessen wird ein Hash der Daten erstellt und signiert, um zu beweisen, dass die Daten tatsächlich von einer Partei stammen, da es mit einem sicheren Hash-Algorithmus fast unmöglich ist, andere Daten zu finden, die zu demselben Hash führen. Merkle-Wurzeln haben damit zu tun, wie Transaktionen innerhalb von Blöcken dargestellt werden.
Die verwendeten Algorithmen können nichts signieren, was die Kurvengröße überschreitet. Sie müssen also hashen, bevor Sie unterschreiben.