Woher wissen wir nach dem Senden/Fluten von Transaktionen, dass sich eine bestimmte Transaktion auf allen Knoten befindet?

Im Buch „Mastering the Blockchain“ von Imran Bashir heißt es, dass der Lebenszyklus einer Transaktion folgender ist:

  1. Ein Benutzer/Absender sendet eine Transaktion mit einer Wallet-Software oder einer anderen Schnittstelle.
  2. Die Wallet-Software signiert die Transaktion mit dem privaten Schlüssel des Absenders.
  3. Die Transaktion wird mithilfe eines Flooding-Algorithmus an das Bitcoin-Netzwerk gesendet.
  4. Mining-Knoten schließen diese Transaktion in den nächsten Block ein, der abgebaut werden soll.
  5. Das Mining beginnt, sobald ein Miner, der das Proof-of-Work-Problem löst, den neu geschürften Block an das Netzwerk sendet. Proof of Work wird später in diesem Kapitel ausführlich erläutert.
  6. Die Knoten verifizieren den Block und propagieren den Block weiter, und die Bestätigung beginnt zu generieren.
  7. Schließlich erscheinen die Bestätigungen in der Brieftasche des Empfängers und nach etwa sechs Bestätigungen gilt die Transaktion als abgeschlossen und bestätigt. Sechs ist jedoch nur eine empfohlene Zahl; Die Transaktion kann auch nach der ersten Bestätigung als endgültig betrachtet werden. Die Schlüsselidee hinter dem Warten auf sechs Bestätigungen ist, dass die Wahrscheinlichkeit doppelter Ausgaben nach sechs Bestätigungen praktisch eliminiert ist.

Meine Frage:

Jetzt haben alle Knoten konkurrierende Miner, um einen Block zu erstellen, indem sie alle Transaktionen von allen Knoten/Benutzern empfangen, die Transaktionen einreichen, und sie packen, was nicht von einem Ort kommt. Wenn wir den Gewinner nennen, den Miner, der das PoW-Problem zuerst löst, woher wissen wir dann, dass er alle Transaktionen erhalten hat, die er erhalten sollte, bevor er ankündigt, dass er einen gültigen Block erstellt hat? Meine Miner-Software könnte einige Transaktionen ignorieren und früher als andere mit dem Mining beginnen und somit alle anderen schlagen (vorausgesetzt, wir haben alle die gleiche Rechenleistung).

Meine Frage kann auch anders gelesen werden: Wie stellen Sie sicher, dass alle Miner dasselbe PoW-Problem lösen, während es im Bitcoin-Netzwerk zu großen Latenzzeiten kommen kann (weil wir aus der ganzen Welt schürfen)?

Antworten (5)

Sie können nicht wissen, dass es auf ALLEN Knoten ist, weil es vielleicht nicht so ist. Txns werden nach besten Kräften getratscht und es funktioniert normalerweise.

Bergleute werden dazu angeregt, so viele Transaktionen wie möglich einzubeziehen, in der Reihenfolge von der höchsten zur niedrigsten gezahlten Gebühr. Sie verbinden sich also mit einer großen Anzahl von Knoten, um sicherzustellen, dass sie über die vollständigsten Informationen verfügen, die sie vernünftigerweise erhalten können, um dies zu tun.

Danke für die Antwort. Je mehr Transaktionen sie beinhalten, desto höher ist die Belohnung, die sie erhalten?
Ja. Da es jedoch in jedem Block eine Größenbeschränkung gibt, können sie nur so viele aufnehmen, dass sie sie von den höchsten bis zu den niedrigsten Gebühren ordnen, wenn sie nicht alle in einen Block passen.
Das bedeutet auch, dass sie für das Szenario, in dem sie eine Transaktion später als jemand anderes erhalten, immer prüfen müssen, ob diese Transaktion bereits in einem vorherigen Block war, bevor sie sie hinzufügen?
Das ist richtig.

Von einem Anfänger, was es bedeutet, dass, wenn jemand, der sich nicht mit Bitcoin auskennt, Bitcoin auf dem veralteten Block akzeptiert und dieser Person etwas Wertvolles gegeben hat, diese Person kein Glück hat, Sie diesen Wertgegenstand einfach verloren haben.

Frühere Antworten entgingen ihm, aber Einfaltspinsel wie ich schauen sich "Also, was bedeutet das wirklich" an. Das bedeutet, wenn Sie in BitCoins bezahlt werden, sind Sie nicht „BEZAHLT“, bis diese Transaktion in mindestens 6 Blöcken zu dieser Kette erscheint, da diese Kette jederzeit vor Erreichen dieses 6. Blocks für ungültig erklärt werden könnte (Sie kann immer noch als ungültig bezeichnet werden danach aber höchst unwahrscheinlich).

Dies bedeutet, dass sofortige Transaktionen mit BitCoin "RISIKO" sind. Wenn ich Bitcoin in meinem Restaurant akzeptiere, ist es möglich, dass die Kette, in der ich bezahlt wurde, für ungültig erklärt wird, sodass ich nie eine tatsächliche Zahlung erhalten habe. Ich denke, die Zeit beträgt derzeit 10 Minuten, um zu "bestätigen", dass eine Transaktion auf der gültigen Kette "6 Blöcke tief" ist.

Eine Person könnte zweimal spielen und Geld ausgeben, das Geld wird nicht wirklich zweimal ausgegeben, aber eine unerfahrene Person könnte ausgenutzt werden, wenn sie nicht versteht, wie die Dinge funktionieren. Kurz gesagt, geben Sie nichts Wertvolles auf, bis die Kette mindestens 6 Blöcke tief ist, dann ist Ihre "Zahlung" höchstwahrscheinlich bestätigt.

Wie stellen Sie sicher, dass alle Miner dasselbe PoW-Problem lösen?

Es ist unmöglich. Und es wird nicht benötigt.

Jetzt haben alle Knoten konkurrierende Miner, um einen Block zu erstellen, indem sie alle Transaktionen von allen Knoten erhalten

Und das wird auch nicht benötigt. Sie können mit dem Abbau des Blocks beginnen, ohne Transaktionen vom Netzwerk zu erhalten.

Danke für die Antwort. Aber dann kann ich weiterhin Blöcke erstellen und bekomme kostenlos Geld, oder?
(a) Münzen sind kein Geld (b) PoW bedeutet, dass Sie "arbeiten", arbeiten = Energie verbrauchen, Energie ist nicht kostenlos.
Was ist der Anreiz für jemanden, Blöcke abzubauen, die wirklich Transaktionen enthalten? Übrigens, bitte fixiere dich nicht auf den Unterschied zwischen Münzen und Geld, denn sie sind in Tauschbörsen austauschbar.
Äpfel und Birnen sind also auch "Geld", weil sie auf Märkten tauschbar sind? OK. habe es. Zu Ihrer Frage: Es gibt mindestens zwei Gründe: (a) Miner erhält zusätzliche Gebühren von enthaltenen TXs (b) es gibt einen Mythos, dass das Einbeziehen von TXs dem Netzwerk hilft und den Wechselkurs von Coins zu Fiat-Geld erhöht
@SamMarkus Die Leute legen aus zwei Gründen Transaktionen in die Blöcke, die sie abbauen: 1) Der Miner behält die Transaktionsgebühren, die die von ihm geschürften Transaktionen zahlen. 2) Miner müssen in ASICs investieren, um Bitcoin zu schürfen, und ihre Miner würden sich schnell in sehr teure Heizgeräte verwandeln, wenn das Netzwerk nicht für Transaktionen nutzbar wäre.

Zu deiner Frage ganz unten:

Wie stellen Sie sicher, dass alle Miner dasselbe PoW-Problem lösen, während es im Bitcoin-Netzwerk zu großen Latenzzeiten kommen kann (weil wir aus der ganzen Welt schürfen)?

Innerhalb des Block-Headers befindet sich das Feld Timestamp (die ungefähre Erstellungszeit dieses Blocks - Sekunden von der Unix-Epoche). Somit müssen alle Lösungen für diesen bestimmten Block gültig sein. Ein Teil der Lösung, die die Miner finden werden, besteht darin, die Transaktionen und die Nonce zu finden, die das Problem lösen. Nicht alle Transaktionen, die vor der Erstellung des Blocks aufgeführt sind, werden verarbeitet. Wenn also eine mögliche Lösung veröffentlicht wird, die jedoch für den aktuellen Block nicht gültig ist, wird sie nicht akzeptiert. Somit arbeiten alle Miner im PoW.

Wenn wir den Gewinner nennen, den Miner, der das PoW-Problem zuerst löst, woher wissen wir dann, dass er alle Transaktionen erhalten hat, die er erhalten sollte, bevor er ankündigt, dass er einen gültigen Block erstellt hat?

Warum sollten wir uns darum kümmern? Er kann beliebige Transaktionen einbeziehen, es ist sein Block. Wenn er lukrative Transaktionen ignoriert, verliert er Geld, weil er nicht so viel an Gebühren verdient, wie er könnte. Aber andere Bergleute werden sie bald bekommen.

Meine Miner-Software könnte einige Transaktionen ignorieren und früher als andere mit dem Mining beginnen und somit alle anderen schlagen (vorausgesetzt, wir haben alle die gleiche Rechenleistung).

Das macht aus zwei Gründen keinen Sinn:

  1. Durch das Ignorieren von Transaktionen sparen Sie weder Zeit noch irgendetwas. Du schürfst immer . Warum sollten Sie auf Transaktionen warten, die eingehen könnten oder nicht, und wenn ja, wann würden Sie aufhören zu warten? In der Praxis versuchen Sie immer, die profitabelsten Transaktionen einzubeziehen, die Sie kennen, und warten nie auf etwas, weil Sie so das meiste Geld verdienen.

  2. Auch wenn zwei Miner die gleiche Rechenleistung haben, versuchen sie unterschiedliche Probleme zu lösen. Wer also zuerst eine Lösung findet, wird praktisch zufällig sein. Wenn sie sich nicht koordinieren, versucht Miner A, eine Lösung zu finden, die Miner A bezahlt, während Miner B versucht, eine Lösung zu finden, die Miner B bezahlt, also unterschiedliche Probleme. Wenn sie koordiniert sind, werden sie die Arbeit definitiv nicht wiederholen – das ist der Sinn der Koordination.

Meine Frage kann auch anders gelesen werden: Wie stellen Sie sicher, dass alle Miner dasselbe PoW-Problem lösen, während es im Bitcoin-Netzwerk zu großen Latenzzeiten kommen kann (weil wir aus der ganzen Welt schürfen)?

Das sind sie definitiv nicht. Noch einmal, wenn sie sich nicht koordinieren, versucht jeder, das Problem zu lösen, einen Block zu schürfen, der sie bezahlt . Und wenn sie sich koordinieren, weisen sie den beiden sorgfältig unterschiedliche Aufgaben zu, damit keine Mühe verschwendet wird.