Wenn Sie überprüfen müssen, ob sich eine Transaktion in einem Block befindet

Nachdem ich hier angekommen bin, habe ich vergessen, warum Sie überhaupt überprüfen möchten, ob sich eine Transaktion in einem Block befindet, und wie genau das funktioniert. Fragt sich, ob man das erklären könnte

  1. In welcher Situation möchten Sie validieren, dass sich eine Transaktion in einem Block befindet?
  2. Wie Sie den Block finden, in dem sich die Transaktion befinden könnte.

Dieser Link sagt hier:

Stellen Sie sich zum Beispiel einen SPV-Knoten vor, der an eingehenden Zahlungen an eine in seiner Brieftasche enthaltene Adresse interessiert ist. Der SPV-Knoten richtet einen Bloomfilter (siehe [bloom_filters]) auf seinen Verbindungen zu Peers ein, um die empfangenen Transaktionen auf diejenigen zu beschränken, die Adressen von Interesse enthalten. Wenn ein Peer eine Transaktion sieht, die dem Bloom-Filter entspricht, sendet er diesen Block mit einer Merkleblock-Nachricht. Die Merkleblock-Nachricht enthält den Block-Header sowie einen Merkle-Pfad, der die interessierende Transaktion mit der Merkle-Root im Block verknüpft. Der SPV-Knoten kann diesen Merkle-Pfad verwenden, um die Transaktion mit dem Block zu verbinden und zu überprüfen, ob die Transaktion im Block enthalten ist. Der SPV-Knoten verwendet auch den Block-Header, um den Block mit dem Rest der Blockchain zu verknüpfen. Die Kombination dieser beiden Verknüpfungen zwischen Transaktion und Block, und zwischen Block und Blockchain beweist, dass die Transaktion in der Blockchain aufgezeichnet wird. Alles in allem wird der SPV-Knoten weniger als ein Kilobyte an Daten für den Block-Header und den Merkle-Pfad erhalten haben, eine Datenmenge, die mehr als tausendmal weniger ist als ein vollständiger Block (derzeit etwa 1 Megabyte).

Ich verstehe immer noch nicht, warum Sie überprüfen müssen, ob sich die Transaktion im Block befindet. Einige Fragen, die auftauchen, sind:

  1. Die Relevanz, die dieser bestimmte Block für Sie hat. Selbst wenn Sie bestätigen, dass es Teil eines Blocks ist, verstehe ich nicht, warum es Sie interessiert, dass es aus diesem Block stammt.
  2. Sie beweisen also, dass es in der Blockchain aufgezeichnet ist. Ich verstehe nicht, wie das bedeutet, dass es gültig ist.

Antworten (1)

Alle diese Informationen sind für den Betrieb einer Light-Wallet relevant, die die Blockchain nicht vollständig validiert, sondern stattdessen die längste Kette von Block-Headern und alle Transaktionen, die für diese Light-Wallet relevant sind, validiert.

In welcher Situation möchten Sie validieren, dass sich eine Transaktion in einem Block befindet?

Einfach: um sicherzustellen, dass eine Zahlung, die Sie gesendet, empfangen oder anderweitig interessiert haben, in den Blockchain-Datensatz aufgenommen wurde. Wenn Ihnen jemand eine riesige Summe Bitcoin zahlt, möchten Sie wahrscheinlich sicher sein, dass die Zahlung tatsächlich legitim war!

Wie Sie den Block finden, in dem sich die Transaktion befinden könnte.

Der Text, den Sie aus Mastering Bitcoin zitiert haben, hat die Antwort: Ein Full-Node-Peer wird Ihren Bloom-Filter verwenden, um Ihnen Transaktionsinformationen zu liefern, die für Ihre Brieftasche relevant sind.

Die Relevanz, die dieser bestimmte Block für Sie hat. Selbst wenn Sie bestätigen, dass es Teil eines Blocks ist, verstehe ich nicht, warum es Sie interessiert, dass es aus diesem Block stammt.

Um zu überprüfen, ob die Transaktion enthalten ist, müssen Sie wissen, in welchem ​​Block sie sich befindet. Dadurch kann Ihre Brieftasche die kryptografischen Beweise (unter Verwendung der Merkle-Root im Header) berechnen, mit denen sie überprüfen kann, ob eine Transaktion stattgefunden hat das Netzwerk auf vertrauensminimierte Weise.

Es gibt keine Möglichkeit, auf ähnliche Weise zu wissen, dass eine Transaktion im Blockchain-Datensatz enthalten ist, ohne den spezifischen Block zu kennen, mit dem Sie die kryptografischen Beweise prüfen müssen.

Sie beweisen also, dass es in der Blockchain aufgezeichnet ist. Ich verstehe nicht, wie das bedeutet, dass es gültig ist.

Nur gültige Transaktionen können im Blockchain-Verlauf aufgezeichnet werden, obwohl Sie als Light-Wallet darauf vertrauen, dass das Netzwerk der Full Nodes ansonsten alle Blöcke und Transaktionen validiert, um sicherzustellen, dass keine ungültigen Daten in der Kette enthalten sind. Solange die Full Nodes ihren Job machen, können ungültige Transaktionen nicht in die Kette aufgenommen werden. Jeder Miner, der versucht, eine ungültige Transaktion in einen Block aufzunehmen, sieht, dass dieser Block von den Knoten des Netzwerks als ungültig verworfen wird.