Warum werden Blöcke gehasht?

Habe ich Recht, dass Adressen gehasht werden, um eine riesige textrepräsentierte Koprime in etwas überschaubarer Größe zu komprimieren?

Habe ich auch Recht, dass Transaktionen aus demselben Grund gehasht werden und auch weil :

Um RSA-Signaturschlüssel zu erstellen, generieren Sie ein RSA-Schlüsselpaar mit einem Modulus N, der das Produkt zweier großer Primzahlen ist, zusammen mit den ganzen Zahlen e und d, sodass ed ≡ 1 (mod φ(N)), wobei φ der Euler-Phi-Wert ist. Funktion. Der öffentliche Schlüssel des Unterzeichners besteht aus N und e, und der geheime Schlüssel des Unterzeichners enthält d.

Um eine Nachricht m zu signieren, berechnet der Unterzeichner σ ≡ md (mod N). Zur Verifizierung überprüft der Empfänger, dass σe ≡ m (mod N).

Wie bereits erwähnt, ist dieses grundlegende Schema nicht sehr sicher. Um Angriffe zu verhindern, kann man zunächst eine kryptografische Hash-Funktion auf die Nachricht m anwenden und dann den oben beschriebenen RSA-Algorithmus auf das Ergebnis anwenden.

?

Ich kann keinen Grund dafür finden, dass Blöcke gehasht werden, außer um die Rate zu verlangsamen, mit der Transaktionen verifiziert werden, wodurch neues Angebot abgebaut wird. Ist das richtig? Wenn nicht, warum werden Blöcke gehasht?

Ich würde zu allen 3 "nein" sagen, was bedeutet, dass Sie vielleicht mehr darüber lesen möchten, wie Bitcoin funktioniert ...
@MeniRosenfeld Danke fürs Schauen Meni Rosenfeld! Könntest du ein paar Links posten, damit ich mehr erfahren kann? Ich habe versucht, alles zu lesen, was ich kann, aber ich kann anscheinend keine expliziten Beweggründe für jede einzelne Technologie finden. Vielen Dank im Voraus!

Antworten (1)

Die Public-Key-Kryptographie von Bitcoin basiert nicht auf RSA, sondern auf Elliptic Curves, sodass der Schlüssel keine große Koprime ist (tatsächlich schafft es ECC, ein ähnliches Sicherheitsniveau mit viel kleineren Schlüsseln zu erreichen).

Warum Blöcke gehasht werden, der Grund ist nicht, irgendetwas zu verlangsamen, ganz im Gegenteil: Es soll die Überprüfung beschleunigen, ob ein Block den anderen Blöcken in der Blockchain „folgt“. Man braucht den Hash nicht, um die Transaktionen zu verifizieren (weder im aktuellen Block noch in den vergangenen), aber da jeder Block den Hash aller vorherigen Blöcke enthält (in kompakter Form als Merkle Tree bekannt), kann man ihn nicht einfach erstellen einen Block von der Blockchain "isolieren" (was so viel Zeit wie nötig braucht) und ihn dann einfach in die Blockchain "einfügen", um die Belohnung zu gewinnen - es ist notwendig, dass ein vorheriger Block bekannt ist, bevor ein neuer gültiger erstellt wird.

Der „harte“ Teil besteht darin, einen Hash zu erstellen, der die Schwierigkeitskriterien erfüllt. Eine kurze Erläuterung des Vorgangs finden Sie in dieser Antwort . Aber man muss aus keinem Grund "den Hash umkehren" oder ähnliches.