Kann jemand erklären, wie diese Person Bitcoin gehackt hat?

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

  1. 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?)

  2. Der Artikel erklärte nicht, wie und welche Rohtransaktionen er nur mit öffentlichen Schlüsseln erstellte.

  3. 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

  1. Der Miner hat gerade ein Skriptsig erstellt (der Artikel hat nicht erklärt, was "einen bestimmten Hash anwenden" bedeutet).

  2. Jetzt ist es einfach, der Miner muss nur noch einen BCH-Ausgang zuweisen (Adresse beginnt mit 1)

  3. 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?

Es ist eine gute Frage (obwohl sie mit großgeschriebenen Sätzen, korrekter Rechtschreibung und weniger ?-Zeichen einfacher zu lesen wäre). Der letzte Absatz ist jedoch nicht zum Thema - diese Seite ist nicht der Ort, um Leute für Ihre Projekte zu rekrutieren.
Ich stimme zu, aber ich möchte lernen ... segwit ist so verwirrend, wenn man versucht, 25 Tage lang zu suchen ... hatte bereits 46 Registerkarten und 4 Fenster in meinem Browser geöffnet

Antworten (2)

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 3beginnt, 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.

"Sobald der Block abgebaut ist, wird die Transaktion mit dem Block gesendet." 1. Ein Miner kann TX einbinden, die vorher noch nicht gesendet wurden! Ist das nicht gegen Konsensregeln? 2. Was passiert, wenn ein Miner diese Sendung nicht gesendet hat, nachdem der Block abgebaut wurde? Wird dieser Block von anderen Peers abgelehnt?
Nein, es verstößt nicht gegen die Konsensregeln, eine Transaktion einzubeziehen, die nicht übertragen wurde. Es ist für einen Knoten unmöglich zu wissen, ob eine Transaktion tatsächlich an das Netzwerk gesendet wurde, da er sie möglicherweise nicht erhalten hat, wenn sie gesendet wurde. Die Transaktion selbst muss nicht gesendet werden; es wird in einen Block aufgenommen und dieser Block wird gesendet. Wenn der übertragene Block die Transaktion nicht enthält, dies jedoch beim Mining der Fall war, ist der übertragene Block ungültig.
Es wäre viel einfacher, wenn bitcoin.org erklärt hätte, wie Mining mit Segwit funktioniert ... Wenn der Block diesen TX enthält und ihn nach dem Mining entfernt, ändert er die Nonce + Hash-Erzeugung ist automatisch ungültig ... das ist es, was Sie tun versuchen zu sagen, richtig?
Ja. Das hat aber nichts mit Segwit zu tun. Das ist eine Konsensregel, die es schon immer gegeben hat.
Warum hat er es nicht einfach wie eine normale Person gesendet ... anstatt es zu schürfen? vielleicht hatte er Angst, dass andere Miner diese Transaktion übernehmen und durch ihre Adresse im Ausgabebereich ersetzen würden, denke ich .... lol :) genau wie das Spiel der Throne
danke für die Erklärung ... aber was hat das Einlösungsskript mit dem öffentlichen Schlüssel und dem scriptsig "bestimmten Hash" zu tun, worüber diese Artikel sprechen?
Die Transaktion wurde nicht übertragen, da sie nicht dem Standard entspricht. Dies bedeutet, dass es sich um einen gültigen Konsens handelt, die Knoten es jedoch nicht weiterleiten. Die "besonderen Hash"- und Skriptsig-Dinge sind darauf zurückzuführen, dass das Einlöseskript in die Skriptsig eingefügt wird und zu einem Hash gehasht werden muss, der durch die P2SH-Ausgabe angegeben ist, von der ausgegeben wird.
warte .... was meinst du mit nicht standard? Auch der erste Artikel besagt, dass der Bergmann einen Segwit-Knoten in der bcash-Kette verwendet hat, um diesen Tx abzubauen ... macht das für Sie Sinn?
Bitcoin und verwandte Coins (einschließlich bcash) haben eine Reihe von Regeln, die als Standardregeln bezeichnet werden. Diese Regeln stehen über den Konsensregeln. Eine Transaktion kann die Konsensregeln erfüllen, aber nicht die Standarditätsregeln. Das bedeutet nur, dass es gültig ist, aber die Knoten es nicht weiterleiten. Solche Transaktionen werden als Nicht-Standard bezeichnet. Es macht keinen Sinn, einen Segwit-Knoten auf bcash zu verwenden, da bcash kein Segwit hat.
Jesus Christus! (Korrigieren Sie mich, wenn ich falsch liege) 1. Der Miner hat einen normalen Bitcoin-abc-Knoten verwendet, um seinen TX abzubauen. 2. Der Block, der den TX enthält, wird an andere Miner gesendet und als gültiger Block akzeptiert. 3. Die Wachsamkeit kann jedoch nicht senden dieser spezielle tx, da er kein Standard ist. Der Miner sammelt Münzen in seiner Brieftasche (die prev_out werden nicht gesendet, sondern abgebaut), die bereit sind, sie überall auszugeben? (Ja, er wird senden, wenn er später an "Bob" bezahlt) Also, was ist der Zweck, eine tx wie eine normale Person aus der Brieftasche zu senden?
Nein, es gibt kein „Coins in seinem Wallet sammeln“ oder „prev_out werden nicht gesendet, sondern geschürft“. So funktionieren Bitcoin oder bcash nicht. Es gibt keine Münzen zu sammeln, nur Ausgaben und die Eingaben, die die Ausgaben ausgeben. Der Miner erstellt einfach eine Transaktion, die die Ausgaben ausgibt und sie in einen Block einfügt, den er abbaut, und sendet dann den Block. Der Zweck des Sendens eines Tx besteht darin, dass Miner ihn in einen Block aufnehmen können. Bergleute müssen ihre Transaktionen nicht übertragen, damit sie jemand in einen Block aufnehmen kann, aber dies erhöht die Wahrscheinlichkeit, dass sie früher aufgenommen werden.
Danke, Sie sind wirklich genial, Mr.chow... Ich hatte Ihre Antwort als ... beantwortet markiert
Entschuldigung, ich habe nach dem Zweck gefragt, einen TX nicht zu senden, um eine Ausgabe zu speichern ... wenn ein Miner keinen TX gesendet hat ... andere Miner werden ihn aufgreifen und in ihre Version des Blocks aufnehmen ... also wie haben sie es gemacht? Speichern Sie diese 100 bch tx? twitter.com/khannib/status/931448049125249024
Nein, wenn eine Transaktion nicht übertragen wird, wissen andere Miner nichts davon und werden sie nicht aufgreifen. In diesem 100-BCH-Fall hat btc.com eine Transaktion erstellt und sie nicht übertragen.
Ich stimme zu, aber in diesem speziellen Fall hat der Absender bereits TX gesendet und Pools gebeten, es nicht zu senden ... weil bch eine Lösung gefunden hat - wenn Sie bch an BTC senden, wenden Sie sich an den Miner, um es nicht zu senden ... meine Frage - es wird sich durch jeden Knoten ausbreiten - dann Mempool - als Miner ... selbst wenn ein Miner es ignoriert ... andere werden es aufheben? Wie funktioniert die bch-Lösung hier?
Nein, so funktioniert es nicht. Es wird keine Transaktion übertragen; Wenn eine Transaktion gesendet wird, wird der Rest des Netzwerks (einschließlich der anderen Miner) sie hören und kann sie in ihre Blöcke aufnehmen, selbst wenn ein Knoten (z. B. der eines Miners) sie ignoriert. Was bei btc.com passiert, ist, dass Benutzer direkt mit btc.com sprechen. Sie erstellen keine Transaktion und senden sie nicht.
Okay, btc.com ist nur ein Pool, es gibt viele andere ... was ist mit ihnen? oder vielleicht nehme ich an, es ist alles Monopol
Andere Mining-Pools oder Miner bieten möglicherweise einen ähnlichen Service an, wenn sie über ausreichende Kenntnisse verfügen. Unabhängig davon, ob Miner einen solchen Service anbieten oder nicht, kann jeder Miner von solchen Segwit-Ausgaben ausgeben, wie ich zuvor beschrieben habe, vorausgesetzt, er kennt das Einlösungsskript (entweder hat es selbst entdeckt oder wurde ihm von der Person mitgeteilt, die tatsächlich die Adresse auf dem Bitcoin besitzt Netzwerk).

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]

Ja, das ist der Bergmann.. aber diese Ausgaben wurden von anderen Bergleuten ignoriert (Bergleute haben es nicht genommen - schauen Sie sich das Datum im bch Block Explorer an) und es ist eigentlich danach, als es von diesem bcnsegwit-Bergmann irgendwie gehackt wurde
Nein, es ist kein Hack. Andere Bergleute könnten diese Ausgaben auch einlösen, aber sie taten es aus irgendeinem Grund nicht. (Ethik?)
Ich weiß, dass es kein Hack ist ... andere Miner haben es nicht gemacht, weil es höllisch kompliziert ist ... sogar der Miner gibt selbst zu - "Aufgrund der erheblichen Anstrengungen, die erforderlich waren, um diese BCH zu beanspruchen und zu überprüfen, ob jede Person die ist Person, die das BCH erhalten sollte, nehme ich 30 % "
Dieser Artikel über SegWit ist unsinniges FUD, da er vollständige Knoten vollständig ignoriert. Da jetzt fast jeder Knoten im Netzwerk die Konsensregeln von SegWit erzwingt, würde eine Wiederherstellung zum Stehlen seiner Ausgaben erfordern, dass die vollständigen Knoten die Durchsetzung zuerst beenden. Das ist eine Hardfork.
@PieterWuille Vielen Dank, dass Sie sich diese Seite angesehen haben ... 1. Auf welchen Artikel beziehen Sie sich? 2. Zitat "Da fast jeder Knoten im Netzwerk jetzt SegWit erzwingt" welches Netzwerk? bcash oder bitcoin
Ich beziehe mich auf den Coingeek-Link.
@PieterWuille, was denkst du über die herkömmliche Bitcoin-Cash-Adresse? Sie ändern das Versionsbyte auf 28 für p2pkh-Adressen und 40 für p2sh-Adressen ... wird es diese Situation für alle Benutzer an Bord lösen?
BitPay agiert dort auf eigene Faust. Cash People haben auch einen Vorschlag für neue Adressen. Ja, das hätten sie von Anfang an tun sollen.