Woher kennt das Netzwerk die legitime Kette bei einem Double-Spend-Versuch?

Entschuldigung, falls dies behandelt wurde, aber es gibt einen Bereich des Bitcoin-Netzwerks, der mir nicht klar ist, und der eng mit dem Problem der doppelten Ausgaben verbunden ist.

Angenommen , Person A kauft einen Artikel in einem Geschäft. Sie „bezahlen“ Person B 1 BTC für eine Ware und senden diese Transaktion an das Netzwerk, was Person B als unbestätigt ansieht. Die Transaktion ist in einem Block ( Block 1 ) enthalten, dessen Proof of Work nun gefunden/gelöst wird.

Angenommen , Person A kontrolliert 30 % des Bitcoin-Mining-Netzwerks (willkürlich hoher Anteil) und lässt seine Miner stattdessen einen anderen Block ( Block 2 ) schürfen, der eine Transaktion enthält, in der dieselbe BTC an eine andere von Person A kontrollierte Brieftasche ausgegeben wird .

Angenommen, der Proof of Work für Block 2 wird entgegen allen Widrigkeiten zuerst erhalten, und der „korrupte“ Miner, der den erforderlichen Hash findet, sendet ihn an das gesamte Bitcoin-Netzwerk. Hier bricht mein Verständnis zusammen. Was genau passiert, wenn die restlichen 70 % diese Transaktion sehen? Hören sie auf, Block 1 abzubauen ? Ab wann kann Block 1 verwaist sein?

Ich würde die Formulierungen ändern: "...in eine andere von Person A kontrollierte Brieftasche" mit "...um Person C für ein weiteres Gut zu bezahlen".
Nach meinem Verständnis arbeiten die 70% der Bergleute nicht alle an identischen Blöcken Block1, sondern jeder an seinem eigenen Block, der die erste oder die zweite Transaktion enthalten kann oder nicht, abhängig von ihrem Transaktionsprioritätsschema, den verfügbaren Transaktionen und bald. Kein Miner wird beide widersprüchlichen Transaktionen in seinen Block aufnehmen. Es gibt keine Garantie, welche Transaktion gewinnt, aber garantiert, dass nur eine bestehen bleibt.
Ja, das war eine zu starke Vereinfachung für das Beispiel. Block 1 sollte nur jeden Block darstellen, der die legitime Transaktion enthielt, aber nicht die illegitime Transaktion

Antworten (2)

Stellen Sie sich die Blockchain als ... eine Kette von Blöcken vor

Die Situation ist:

A -> B -> C
      \-> C'

Aber einige Knoten sehen es als A -> B -> C und meins über dem Block C

und einige andere sehen A -> B -> C' und meins über dem Block C'

Wenn der Knoten so etwas sieht:

A -> B -> C -> D -> E...
      \-> C'-> D'-> E'...

Es sollte die Kette mit der größeren cumulative difficulty(längsten) auswählen und alles über die verwaiste Kette vergessen

Die beiden unmittelbaren Fragen, die mir in den Sinn kommen, sind: (1) Wie entscheidet ein Knoten, dass es sich um A->B->C handelt und nicht um A->B->C? Ist es nur derjenige, der an C und nicht an C' gearbeitet hat? und (2) An welchem ​​Punkt würde ein Knoten „die Kette mit der größeren kumulativen Schwierigkeit auswählen“? Wenn C' zuerst gefunden wird, würden sie sofort wechseln und den Block vergessen, der die legitime Transaktion enthält?
(1) wenn Sie C und C' haben - vergleichen Sie ihre Schwierigkeit und lassen Sie eine fallen. Tatsächlich können Sie jeden von ihnen löschen, da normalerweise C + D > dC 'und C' + D' > C
(2) zu jedem Zeitpunkt
Ja, Transaktionen in der Waisenkette werden vergessen und kehren unbestätigt in den Zustand zurück, wenn sie nicht in die Hauptkette aufgenommen werden

Was genau passiert, wenn die restlichen 70 % diese Transaktion sehen? Hören sie auf, Block 1 abzubauen?

Nehmen wir an, sie begannen mit dem Abbau von Block1, als die Kette -A-B-C->. Sie haben auf Block C abgebaut. Wenn Block2 auf C abgebaut wird, wird die Situation -A-B-C-Block2->. Diese 70 % hören jetzt auf zu schürfen Block1und sie bewegen sich zum Schürfen auf Block2. Die erste Transaktion wird nicht zur Kette hinzugefügt und abgelehnt und die zweite Transaktion wird bestätigt (mit einer Bestätigungslänge von 1 Block). (Nach einiger Zeit, wenn der nächste Block darüber abgebaut Block2wird, wird eine Länge von 2 Blöcken bestätigt.)

Ab wann kann Block 1 verwaist sein?

Block1wurde nie zur Kette hinzugefügt, ist also nicht verwaist.

Sie sagen also, dass in meinem Beispiel der Double-Spend-Angriff erfolgreich gewesen wäre und es keine Möglichkeit gibt, dies zu verhindern?
Münzen würden nicht doppelt ausgegeben. Coins wurden nur für Block2 ausgegeben. Die erste Transaktion wird dann abgelehnt und Person B hat die Ware nicht gesendet. Person B würde die Waren nur versenden, wenn es der ersten Transaktion gelingen würde, abgebaut zu werden, aber in Ihrem Beispiel nicht.
Angenommen, Person B hat die Ware um 0/unbestätigt...
Er würde das nicht tun, da es nicht schlau wäre und dem Bitcoin-Konzept widerspräche. Ich weiß nicht, was Praxis ist, aber ich würde die Ware nur versenden, wenn die Transaktion in einem Block bestätigt wird (also der Blockchain hinzugefügt wird) und einen weiteren zusätzlichen Block darüber hat.
Ich schätze also, er wartet auf 6 Bestätigungen. An diesem Punkt werden Sie mir sagen, dass die Wahrscheinlichkeit gering ist, dass die "illegitimen" Bergleute lange genug an einer geheimen Kette gearbeitet haben, um die legitime Kette zu ersetzen?
Ja. Dies ist wahr, wobei 6 eine strittige Zahl ist.
ändere "einen weiteren zusätzlichen Block" in meinem Kommentar oben durch "mehrere zusätzliche Blöcke". Ich denke, Nummer 6, die Sie erwähnen, kommt von der Tatsache, dass ein Mining-Pool einmal 6 Blöcke hintereinander abgebaut hat.