Was passiert, wenn Full Nodes nicht auf Doppelausgaben prüfen oder absichtlich eine Doppelausgabe TX passieren lassen und diese Full Node die Transaktion dann weiterleitet?

Ich studiere über den Princeton-Kryptokurs etwas über Bitcoin- und Blockchain-Technologie, und es wird erwähnt, dass vollständige Knoten die folgenden Prüfungen durchführen:

i) Transaktion ist mit der aktuellen Blockchain gültig,

ii) ob die Skripte mit der Whitelist übereinstimmen,

iii) Transaktion wurde noch nie zuvor gesehen und

iv) kollidiert nicht mit anderen, es wird weitergeleitet (um doppelte Ausgaben zu vermeiden) .

Der Dozent erwähnte jedoch auch, dass diese Überprüfungen auf einem Knoten nicht erzwungen werden. Nehmen wir an, ein vollständiger Knoten hat möglicherweise einen vollständigen Satz von UTXO, entscheidet sich aber dennoch dafür, eine Transaktion weiterzuleiten, die zuvor ausgegeben wurde (und ignoriert effektiv die Tatsache, dass sich der TX nicht im UTXO-Pool befindet), und schließlich wird dieser TX weitergeleitet und ausgeführt es in einen Block. Da die Bergleute diesen Knoten vertrauen, um Transaktionen zu verifizieren, würde der TX nicht in die Konsenskette aufgenommen werden?

Ich verstehe, dass der Mining-Prozess (POW) und die daraus resultierende Blockbelohnung nur beansprucht/gesammelt werden können, wenn der Block auf dem langfristigen Konsenszweig landet, aber dies schützt das böswillige Node-Verhalten nicht, wie ich erklärt habe, da Miner dies nicht tun. Überprüfen Sie nicht auf doppelte Ausgaben.

Die Aussage, dass Miner diesen Knoten vertrauen, könnte falsch sein ... ein Miner möchte überprüfen, ob seine Transaktionen und Blöcke korrekt sind, sonst könnte er vom Netzwerk ignoriert werden (wenn er falsche TX oder Blöcke weiterleitet). Außerdem könnte er seine Blockbelohnung verlieren und hätte die Blockberechnungen umsonst durchgeführt?

Antworten (2)

Da die Bergleute diesen Knoten vertrauen, um Transaktionen zu überprüfen, ... da die Bergleute nicht auf doppelte Ausgaben prüfen.

Was lässt Sie das denken? Bergleute sind auch Knoten; Sie sind eine Teilmenge von Knoten. Bergleute erhalten und verifizieren immer noch alle Transaktionen, sie vertrauen nicht einfach blind dem, was ihnen ein anderer Knoten gegeben hat. Miner werden dazu angeregt, Transaktionen zu überprüfen, da das Einbeziehen ungültiger Transaktionen bedeutet, dass der Block ebenfalls ungültig ist und daher von den anderen Knoten und Minern im Netzwerk abgelehnt wird.

Wenn ein Miner eine ungültige Transaktion erstellt (z. B. durch Einbeziehen einer doppelten Ausgabe), wird der Block als ungültig betrachtet. Miner bestimmen nicht, was gültig und ungültig ist, Knoten tun dies. Wenn also die Knoten im Netzwerk diesen ungültigen Block erhalten, lehnen sie ihn als ungültig ab und fügen ihn nicht zu ihrer Blockchain hinzu. Da Bergleute auch Knoten sind, werden andere Bergleute den Block ablehnen und sie werden daher nicht darüber abbauen.

Wenn Miner auf dem ungültigen Block minen, wird es einen Blockchain-Fork geben. Die Knoten im Netzwerk werden sich weigern, einer Kette zu folgen, die einen ungültigen Block enthält, selbst wenn sie mehr Arbeit hat. Sie folgen nur der gültigen Kette mit der größten Arbeit, und ein ungültiger Block macht diese Kette ungültig.

danke für deinen Beitrag. Wie lange braucht ein Miner normalerweise, um jede einzelne Transaktion in einem Block, den er schürft, mit dem UTXO-Set zu vergleichen?
Es dauert genauso lange wie bei jedem anderen Knoten. Es dauert normalerweise einige Millisekunden. Da Miner Knoten sind, haben sie außerdem wahrscheinlich alle Transaktionen erhalten und überprüft, bevor sie in einem Block erschienen sind, sodass sie die erneute Überprüfung überspringen können, wenn sie sie in einem Block erhalten.

Bergleute, die nicht auf doppelte Ausgaben prüfen, verbinden sich nur mit Knoten, denen sie voll und ganz vertrauen. Und dafür gibt es einen guten Grund – jeder nicht defekte Knoten ignoriert einen ungültigen Block. Wenn also ein Miner jemals einen Block schürfen würde, der doppelte Ausgaben enthielt, würde jeder andere Knoten diesen Block ignorieren und er würde niemals Teil der Sichtweise der Konsenskette werden.