Ich habe gerade die Formbarkeitsseite gelesen .
Kann das jemand bestätigen
Während Transaktionen signiert werden, deckt die Signatur derzeit nicht alle Daten in einer Transaktion ab, die gehasht wird, um den Transaktions-Hash zu erstellen. Obwohl es ungewöhnlich ist, ist es für einen Knoten im Netzwerk möglich, eine von Ihnen gesendete Transaktion so zu ändern, dass der Hash ungültig wird.
bedeutet, dass das Protokoll den Adressen in der Datenbank eigentlich keine Signaturdaten zuordnet?
Bitte sag mir, dass das nicht stimmt.
Die Signatur umfasst alles außer der Signatur selbst. Da die Signatur und der öffentliche Schlüssel das Eingabeskript für die gängigste Zahlungsart (Pay-to-Pubkey-Hash) bilden, ist das Eingabeskript nicht Teil der signierten Daten. Dies bedeutet, dass das Eingabeskript geändert werden kann und die signierte Transaktion nicht beschädigt wird, solange das neue Eingabeskript dem ursprünglichen Eingabeskript entspricht. Der jüngste Angriff tat dies, indem er einen der Skript-Opcodes in einen äquivalenten Opcode änderte. Das neue Skript war also gültig und führte die gleiche Funktion aus. Aber da der Opcode geändert wurde, war der Transaktions-Hash anders.
Sobald eine Transaktion Teil eines Blocks ist, kann der Transaktions-Hash nicht mehr geändert werden, da er jetzt im Merkle-Baum für den Block enthalten ist. Das Angriffsfenster besteht also nur ab dem Zeitpunkt, an dem die Transaktion erstellt wird, bis ein Miner sie in einen Block aufnimmt. Während dieses Fensters kann eine modifizierte Transaktion gesendet werden, und es ist ein Rennen, um zu sehen, welche es in den Block schafft. Derjenige, der verliert, wird niemals bestätigt, da er Eingaben ausgibt, die bereits ausgegeben wurden. Egal welcher gewinnt, die Coins werden an den richtigen Bestimmungsort geschickt.
Das Problem für Mt Gox (und andere) ist, dass sie eine Transaktion anhand ihrer Transaktions-ID verfolgen. Wenn die geänderte Transaktion gewinnt und in einen Block aufgenommen wird, wird die ursprüngliche Transaktion verworfen. Dies veranlasste Mt Gox dann zu der Annahme, dass das Geld nicht bezahlt wurde (da die Transaktions-ID nicht in der Blockchain war) und sie würden eine neue Transaktion erstellen, um das Geld erneut zu bezahlen.
Fragend
Fragend