Ich versuche, ein paar Lücken in meinem Verständnis zu füllen, wie diese Transaktion passiert ist!
Mit diesem Artikel fing alles an
Kurz gesagt, ein Bürgerwehrmann/Miner war in der Lage, alle BCH aufzuheben, die sich in Segwit-Adressen befanden (nämlich diejenigen, für die die öffentlichen Schlüssel von den Eigentümern offenbart wurden, die BTC von denselben Adressen ausgaben.
Sehen Sie sich diese Transaktion an, die erstellt wurde, Miner Bitcoin Cash Block Explorer
Schritt für Schritt Aufschlüsselung
Der Miner schöpft den öffentlichen Schlüssel dieser Adresse 3P9dyU9ga3aJorHAUqKBFCX2NdyuHEVgx1 (dies ist eine P2SH P2WPKH-Adresse, siehe diesen Bitcoin-Block-Explorer )
Frage: Was ist das für ein öffentlicher Schlüssel? Siehst du irgendwelche Schlüssel? ("3" ist eine Multisig-Adresse und erfordert 3 Adressen, also müssen 3 öffentliche Schlüssel vorhanden sein, richtig?)
Der Artikel erklärte nicht, wie und welche Rohtransaktionen er nur mit öffentlichen Schlüsseln erstellte.
Das ist der frustrierendste Teil. Der Artikel behauptet, dass der Bergmann einen Segwit-Knoten erstellt und darüber hinaus abgebaut hat.
Wie ist das überhaupt möglich? (Bcash hat Segwit nicht aktiviert. Aber selbst wenn er mit seinem Segwit-Knoten abgebaut hat, erlaubt ihm sein Knoten nicht, eine gültige Transaktion zu erstellen, da Segwit einen Zeugen oder ein Zeichen mit dem privaten Schlüssel des öffentlichen Schlüssels der Adresse 3P9dyU9ga3aJorHAUqKBFCX2NdyuHEVgx1 erfordert.)
Dieser Artikel behauptet jedoch
Der Miner hat gerade ein Skriptsig erstellt (der Artikel hat nicht erklärt, was "einen bestimmten Hash anwenden" bedeutet).
Jetzt ist es einfach, der Miner muss nur noch einen BCH-Ausgang zuweisen (Adresse beginnt mit 1)
es wird noch blöder. Der Artikel sagt, nachdem er diese Rohtransaktion durchgeführt hatte, hat er sie abgebaut ... ohne sie zu senden. Wie funktioniert das?
3.1 Wenn Sie es nicht senden, was ist dann der Sinn? Wie wird diese Transaktion an die neue Adresse/Wallet weitergeleitet, die vom Miner erstellt wurde (in diesem Fall 1C4TafndKYFoGkeoHfQAWkZzEYLum31txf)?
3.2 Wenn der Miner seinen eigenen Block abbaut und ihn dann nicht sendet, würde er dann nicht verwaist sein? Also, was ist hier los?
Frage: Was ist das für ein öffentlicher Schlüssel? siehst du schlüssel? ("3" ist eine Multisig-Adresse und erfordert 3 Adressen? also müssen 3 öffentliche Schlüssel vorhanden sein, oder?)
Nein. Eine Adresse, die mit a 3
beginnt, ist eine P2SH-Adresse. Dies bedeutet nicht, dass es sich um eine Multisig-Adresse handelt oder eine beliebige Anzahl von Schlüsseln zum Signieren der Transaktion erforderlich ist. Vielmehr bedeutet es nur, dass es ein Skript gibt (es kann jedes Skript sein, nicht unbedingt ein Multisig-Skript), das in die Eingabe aufgenommen werden muss, die die P2SH-Ausgabe ausgibt. Dieses Skript diktiert die anderen Elemente in der Eingabe.
Für eine verschachtelte P2SH-Segwit-Ausgabe (P2SH-P2WPKH und P2SH-P2WSH) hat das Skript, auf das sich die Adresse bezieht (bekannt als das Erlöschen-Skript), die Form OP_0 <20 byte hash>
oder OP_0 <32 byte hash>
. Wenn ein Segwit-Knoten dieses Skript in einer Ausgabe oder als Einlösungsskript sieht, weiß er, dass er im neu definierten Zeugenbereich einer Transaktion nachsehen sollte, um den Rest der Daten zu erhalten, die er zum Verifizieren der Transaktion benötigt.
Für einen Nicht-Segwit-Knoten markieren sie die Transaktion jedoch als gültig (aber nicht als Standard), da diese Einlöseskripte für einen Nicht-Segwit-Knoten nicht angeben, dass eine Signatur erforderlich ist. Dadurch können diese Ausgaben von jedem an Nicht-Segwit-Knoten ausgegeben werden.
Da Bitcoin Cash kein Segwit implementiert, sind alle ihre Knoten Nicht-Segwit-Knoten. Um also von den P2SH-verschachtelten Segwit-Ausgaben auszugeben, müssen Sie nur das Einlöseskript bereitstellen. Die Einlösungsskripte sind jedoch durch einen Hash geschützt; Wenn Sie nur eine P2SH-Ausgabe erhalten, können Sie das Einlösungsskript nicht herausfinden, es sei denn, Sie kennen es bereits. Redeem-Skripte werden angezeigt, wenn die Ausgabe von ausgegeben wird.
Was der Miner hier tat, war, dass er so viele Einlösungsskripte wie möglich fand. Die verwendeten Einlösungsskripte der P2SH-Ausgaben waren alle Einlösungsskripte, die im Bitcoin-Netzwerk aufgedeckt wurden, weil sie als Eingabe in einer Transaktion verwendet wurden. Also nahm der Miner all diese aufgedeckten Einlösungsskripte und überprüfte, welche entsprechende Ausgaben im Bitcoin Cash-Netzwerk hatten. Diejenigen, die dies taten, konnten dann vom Miner ausgegeben werden, da der Miner dann das Einlösungsskript kannte.
es wird noch blöder????????????????????? Artikel sagt, nachdem er diese rohe Transaktion gemacht hatte, hat er sie abgebaut ..... ohne sie zu senden ?????? was
Eine Transaktion muss nicht gesendet werden, bevor sie abgebaut wird. Ein Miner kann beliebige Transaktionen einbeziehen, die er möchte, und das schließt Transaktionen ein, die nicht an die Öffentlichkeit übertragen werden. Sobald der Block abgebaut ist, wird die Transaktion mit dem Block gesendet.
SegWit-Ausgaben sehen aus wie AnyCanSpend-Ausgaben an Legacy-Knoten (um es als Softfork zu behalten). Da Bitcoin Cash kein SegWit hat (und strikt dagegen ist), sehen alle Miner sie als Outputs von „AnyoneCanSpend“ und können es einlösen.
Dies kann im Bitcoin-Netzwerk nicht passieren, da die anderen Miner diesen Block ablehnen würden.
Vielleicht ist er dieser Typ: https://www.reddit.com/r/btc/comments/7g6s9l/an_update_on_bch_segwit_recoveries/ ?
[Unsinniger Teil entfernt]
Nate Eldredge
Benutzer380208