Beziehung zwischen Bitcoin-Miner und Überprüfung von Transaktionen [geschlossen]

Der Bitcoin-Miner schürft einen Block, der ohne Arbeitsnachweis nicht an das Netzwerk übermittelt werden kann. Und der neue Block enthält alle neuen Transaktionen. Daher fungiert der neue Block als Sicherheitsmaßnahme und Autorität.

Mein Rätsel ist folgendes: In dem Szenario, das ich gerade beschrieben habe, hat der Miner des neuen Blocks in gewissem Sinne die neuen Transaktionen als wahr autorisiert. Doch der Miner hat sich nie mit der neuen Transaktion befasst, die er gerade autorisiert hat.

Dies bezieht sich irgendwie auf verwaiste Blöcke und die längste Kette (?)

Links, die ich nützlich fand, um mir beim Verständnis zu helfen:

Jeder Peer-Knoten für einen Miner, der Bitcoin-Qt/bitcoind ausführt, überprüft die Transaktionen in einem Block, bevor er einen Block weiterleitet. Wenn es einen Grund gibt, warum eine Transaktion nicht verifiziert werden konnte, wird der Block abgelehnt und nicht weitergeleitet. Hilft Ihnen dieses Wissen, Ihre Frage etwas klarer zu formulieren?

Antworten (4)

Ein Miner kann Transaktionen entweder selbst verifizieren oder davon ausgehen, dass eine Transaktion gültig ist, da einige Nodes ihn wissen lassen, dass sie sie verifiziert haben.

In beiden Fällen kann der Miner die Transaktion in dem Block eingeben, an dem er gerade arbeitet. Beachten Sie, dass beim Pool-Mining der Pool entscheidet, welche Transaktionen enthalten sind, während beim Solo-Mining Ihr eigener Bitcoin-Client dies tut.

Wichtig zu wissen ist, dass Miner nur versuchen, einen Nachfolgeblock für einen Block zu erstellen, den sie für gültig halten. Das bedeutet, wenn ein Miner einen Block mit einer ungültigen Transaktion auf einem gültigen Block generiert, werden andere Miner den neuen Block nicht akzeptieren. Sie werden es ignorieren und weiterhin versuchen, einen Block auf dem letzten Block aufzubauen, den sie für gültig halten.

Diese Arbeitsweise führt zu einer Situation, in der das Akzeptieren ungültiger Transaktionen und das Senden ungültiger Blöcke eine Verschwendung von Ressourcen ist, da Ihre Blöcke verwaist sind und Sie von vorne beginnen müssen.

Der Miner prüft die Transaktionen, sofern sie digital signiert wurden. Dies ist eine Kryptografiepaarung aus öffentlichem Schlüssel und privatem Schlüssel, die die Rolle Ihrer Unterschrift bei einer Überprüfung übernimmt. Ohne diese digitale Signatur gilt eine Transaktion nicht als gültig und wird nicht in die Blockberechnung aufgenommen.

Die Aufgabe des Miners besteht dann darin, Transaktionen zu sammeln, die seit der Berechnung des letzten Blocks stattgefunden haben, und einen neuen Block zu generieren. Es gibt mehrere Elemente, die den alten Block und den neuen Block miteinander verbinden und sicherstellen, dass die Transaktionen des neuen Blocks auf den Schultern der vorherigen Transaktionen stehen und die Integrität der gesamten Blockkette garantieren.

vielen Dank für die Antwort hier. Sammelt der Miner also alle Transaktionen, überprüft, ob sie wahr sind (indem er Alices öffentlichen Schlüssel mit ihrer Transaktion an Bob abgleicht, um zu sehen, dass sie sie tatsächlich signiert hat), und beginnt dann, nach der Nonce zu suchen? Würde das den Miner nicht dazu anregen, so wenige Transaktionen wie möglich einzubeziehen, da dieser Prozess länger dauern würde?

Wenn ein Mining-Pool oder Solo-Miner einen Block an Peers freigibt, überprüft jeder Peer, der Bitcoin-Qt/bitcoind ausführt, die Transaktionen im Block, bevor er den Block weiterleitet.

Der SHA256-Block-Hash wird als erstes verifiziert. Der SHA256-Hash, der jeden Block identifiziert, wird aus den Feldern einer Struktur berechnet, einschließlich Version, prev_block, merkle_root, Zeitstempel, Bits, Nonce und Standard-SHA256-Padding. Wenn dieser Block-Hash ungültig ist oder unter dem Mindestschwierigkeitsgrad liegt, wird der Block abgelehnt und nicht weitergeleitet.

Wenn es dann eine Transaktion gibt, die nicht verifiziert werden konnte, wird der Block abgelehnt und aus diesem Grund auch nicht weitergeleitet.

Es gibt also mehrere Regeln, die befolgt werden müssen, damit ein Block akzeptiert und dann weitergeleitet wird.

Ja, das ist eine neue Erkenntnis für mich. Dass jeder Peer-Knoten (Nicht-Mining-Knoten) auch etwas „Arbeit“ leistet (Verifizierung)
Ich möchte jedoch genauer fragen, was wir bei einer Transaktion überprüfen möchten. Was ich mir im Moment vorstellen kann ist: öffentliche Schlüssel und Signaturen von Sender und Empfänger? Verifiziert der Knoten irgendetwas über den Kontostand? Ist diese Überprüfung also, kurz gesagt, technischer Natur oder handelt es sich um eine Buchführung? Oder beides. (Eine nicht zu einfache, aber nicht zu schwierige Antwort wird geschätzt.)
Die Verifizierung reicht aus, um sicherzustellen, dass man durch Transaktionen, die diese Verifizierung bestehen, nicht geschädigt werden kann.
@SidaZhou Es muss überprüft werden, ob die Transaktion von der Person unterzeichnet wurde, die das Geld sendet, und dass sie in erster Linie über genügend Geld verfügt.

So verstehe ich es:

Die Mining-Anwendung (z. B. Phoenix Miner, Poclbm) erfordert, dass Daten von einem Bitcoin-Knoten an sie übergeben werden. Die Rolle des Knotens besteht darin, die unbestätigten Transaktionen mit der Blockchain zu verifizieren und, falls gültig, dem Miner einen Hash davon bereitzustellen.

dh es ist nicht die Aufgabe des Miners, Transaktionen zu verifizieren; es ist der Knoten.

Wenn Sie Pool-Mining betreiben, wird der Knoten vom Pool betrieben. Beim Solo-Mining wird in der Regel Bitcoin verwendet.

Falsch, es ist jedermanns Job, Transaktionen zu verifizieren. Wenn der Miner beispielsweise einen Block schürft, der eine doppelte Ausgabe enthält, sollte niemand den Block akzeptieren und er wird seine Belohnung nicht erhalten. In einem Pool kann man sich darauf verlassen, dass der Poolbetreiber die Überprüfung ordnungsgemäß durchführt, und die Miner überprüfen möglicherweise nicht.
@eyal, du hast meine Antwort falsch interpretiert. Ich spreche von der Mining -Software selbst (z. B. Phoenix Miner, CGMiner), die die Aufgaben eines Knotens nicht auch die Aufgaben eines Knotens ausführt, wenn Sie die Option für die Generierung auf einer alten Version des Clients ausführen. Ich werde trotzdem versuchen, meine Antwort in Kürze zu präzisieren.