Welche Beziehung besteht zwischen Transaktionen und Blöcken?

Ich verstehe den Zusammenhang zwischen a transactionund a nicht ganz block. Ich stelle es mir als eine Liste von Blöcken vor, und jeder Block hat eine Liste von Transaktionen, aber ich habe einige Zweifel.

Wenn ich eine Transaktion durchführe...

  • Es sollte zu einem bestimmten gehen block?
  • Eine unbestätigte transactionTransaktion ist eine Transaktion, die nicht in einem block?
  • Kann der Miner das Neue transactionzu einem älteren hinzufügen block? Sobald eine Sperre gelöst ist, können neue Transaktionen hinzugefügt werden?

Antworten (4)

Die Ausgangsaussage ist richtig. Die Blockchain ist die Liste aller gelösten Blöcke, im Wesentlichen das Hauptbuch aller im Bitcoin-Netzwerk abgeschlossenen Transaktionen. Jeder Block enthält (neben einigen anderen Dingen) eine Liste von Transaktionen.

Wenn Sie eine Transaktion durchführen, ist diese nicht für einen bestimmten Block bestimmt. Sie veröffentlichen lediglich Ihre Transaktion im Netzwerk und sie kommt auf die Liste der unbestätigten Transaktionen. (Es gibt eigentlich keine einzige maßgebliche Liste, aber jeder im Netzwerk führt seine eigene Liste und verteilt sie an andere, mit denen er verbunden ist.) Bergleute (die die Hashing-Rätsel lösen, die erforderlich sind, um einen Block zu „lösen“ und ihn offiziell zu machen) enthalten normalerweise alle unbestätigten Transaktionen in den Blöcken, die sie erstellen. Aber sie dürfen nicht. Sie haben Ihre Transaktion möglicherweise noch nicht in ihrem Teil des Netzwerks erhalten. Oder, wenn Ihre Transaktion keine Gebühr beinhaltete, sind sie möglicherweise nur bereit, Transaktionen mit Gebühren zu verarbeiten. Technisch gesehen sind sie nicht verpflichtet, welche Transaktionen in den Block aufgenommen werden sollen.

Um Ihren zweiten Punkt zu beantworten: Ja, eine unbestätigte Transaktion ist eine Transaktion, die noch nicht in einen Block aufgenommen wurde.

Und um Ihren letzten Punkt zu beantworten: Nein, neue Transaktionen können nicht zu älteren Blöcken hinzugefügt werden. Die „Lösung“ für einen Block ist ein mathematisch schwer zu lösendes Rätsel und basiert auf den enthaltenen Transaktionen. Wenn Sie also eine Transaktion zu einem älteren Block hinzufügen, wäre es nicht mehr derselbe Block. Und die "Lösung" würde auch nicht funktionieren, also müsste sie im Wesentlichen neu abgebaut werden.

Und um das Hinzufügen einer Transaktion zu einem älteren Block weiter zu erschweren, enthält jeder Block auch eine Information aus dem vorherigen Block in der Blockkette. Das heißt, wenn Sie eine Transaktion zu einem älteren Block hinzufügen (oder auf irgendeine Weise ändern), müssten Sie nicht nur den alten Block neu auflösen, sondern Sie müssten alle Blöcke zwischen diesem Block und dem aktuellen Block neu auflösen . Und da niemand Ihre aufgelösten Blöcke erkennen würde, wenn Sie nicht in der Lage wären, eine noch längere Blockchain als die derzeit vorhandene zu erstellen, ist es nicht realistisch, dies zu tun. Sie hätten einen extrem großen Verarbeitungsaufwand und müssten das deutlich schneller lösen, als der Rest der Welt an der alten Blockchain gearbeitet hat. (Die Ausnahme ist, wenn Sie mehr Mining-Rechenleistung haben als alle anderen auf der Welt zusammen.

Dies ist alles beabsichtigt. Der Punkt der Blockchain ist, dass die Historie von Transaktionen unveränderlich ist und gegenseitig als Wahrheit vereinbart wird. Wenn es möglich wäre, Transaktionen in die Vergangenheit hinzuzufügen, könnten Sie diese Historie ändern. Und zum Beispiel zweimal die gleichen Bitcoins ausgeben. Aber wegen dieser Verkettung von Bitcoins ist das nicht möglich. (Das ist auch der Grund, warum die meisten Leute eine Transaktion nicht als endgültig betrachten, bis sie „6 Bestätigungen“ hat. Was „6 Bestätigungen“ wirklich bedeutet, ist, dass der Block, in dem sie enthalten ist, 6 tief in der Blockchain ist. An diesem Punkt ist die Die Blockchain ist so tief, dass sie als völlig unveränderlich gilt.

Schön, aber hat die Blockchain eine Begrenzung der maximalen Anzahl von Blöcken?
@HanySakr Nein, die Größe der Blockchain ist unbegrenzt, aber in der Praxis müssen vollständige Knoten über genügend Speicher verfügen, um die While-Blockchain im Speicher zu halten. Dies kann jedoch je nach Protokoll variieren.

Ja, ein Block besteht aus einer Reihe von Transaktionen.

Es ist nicht erforderlich, dass eine Transaktion zu einem bestimmten Block geht, aber wenn es sich um eine gültige Transaktion handelt und eine ausreichende Priorität hat, wird sie in einen der nächsten paar Blöcke aufgenommen.

Ja, eine unbestätigte Transaktion ist eine Transaktion, die noch nicht in einen Block aufgenommen wurde.

Nein, ältere Blöcke sind unveränderlich. Stellen Sie sich die Blockchain grob als ein nur angehängtes Hauptbuch von Bitcoin-Transaktionen vor.

Weitere Informationen finden Sie unter http://spectrum.ieee.org/img/06Bitcoin-1338412974774.jpg , https://en.bitcoin.it/wiki/How_bitcoin_works und http://bitcoin.org/bitcoin.pdf

Du liegst richtig. Die Blockchain ist eine Liste von Blöcken, und jeder Block enthält eine Liste von Transaktionen. Zusammen bilden sie eine maßgebliche und globale Ordnung für alle Transaktionen.

Eine unbestätigte Transaktion ist tatsächlich eine Transaktion, die sich noch nicht in einem Block befindet. Bergleute bauen neue Blöcke, um die Kette zu erweitern, und verwenden unbestätigte Transaktionen, um sie zu füllen. Sobald ein Block erstellt wurde, ist er unveränderlich, sodass ältere Blöcke niemals geändert werden, sondern nur neue angehängt werden.

Ja, Block ist eine Liste von Transaktionen .

  • Ihre Transaktion geht nicht in einen bestimmten Block . Ein Miner wählt eine Liste von Transaktionen aus und bearbeitet sie, um den Block zu „ lösen “. Sobald ein Block „gelöst“ ist, wird er an das Netzwerk gesendet und alle Transaktionen im Block werden bestätigt.

  • 0-bestätigte oder unbestätigte Transaktionen sind Transaktionen, die noch in keinem Block enthalten sind.

  • Ein Miner kann einen Block, der "gelöst" ist, nicht ändern (Hinzufügen oder Entfernen von Transaktionen).