Warum spielt die Reihenfolge, in der die Transaktionen stattfinden, eine Rolle, wenn wir Eigentumsinformationen rekonstruieren?

Ich habe mich gefragt, warum die Reihenfolge, in der die Transaktionen stattfinden, wichtig ist, wenn wir Eigentumsinformationen rekonstruieren. Können wir nicht einfach alle Ein- und Ausgaben für jedes Konto zusammenfassen, um zu berechnen, wie viel es besitzt?

Antworten (1)

Ich habe mich gefragt, warum die Reihenfolge, in der die Transaktionen stattfinden, wichtig ist, wenn wir Eigentumsinformationen rekonstruieren. Können wir nicht einfach alle Ein- und Ausgaben für jedes Konto zusammenfassen, um zu berechnen, wie viel es besitzt?

Es gibt keine Konten auf Bitcoin, aber selbst wenn es Konten gäbe, wie würden Sie mit dem Fall umgehen, in dem die Summe der Transaktionen die Mittel übersteigt, die erforderlich sind, damit alle gültig sind? Um diesen Fall zu behandeln, ist eine Transaktionsanordnung erforderlich. Hier ist ein Beispiel:

  1. Mallory erhält 1 BTC auf ihr Konto
  2. Transaktion A gibt 0,5 BTC von Mallorys Konto an Alice aus
  3. Transaktion B gibt 0,5 BTC von Mallorys Konto an Bob aus
  4. Transaktion C gibt 0,5 BTC von Mallorys Konto an Charlie aus

Unter der Annahme, dass negative Salden verboten sind, bestimmt die Reihenfolge dieser Transaktionen, wer bezahlt wird.

Weil die Transaktionsreihenfolge wichtig ist, und aus anderen Gründen hat Bitcoin keine Konten. Jedes Mal, wenn Sie Geld erhalten, wird es an einen Ausgang gezahlt, der eindeutig identifizierbar ist. Das heißt, es kann dieselbe Ausgabebedingung (z. B. Adresse) haben wie andere Ausgaben, die Sie erhalten haben, aber jede Ausgabe kann eindeutig durch die Transaktion identifiziert werden, in der sie erscheint (txid) und ihre Reihenfolge in der Reihe von Ausgaben in dieser Transaktion ( Ausgangsindexnummer oder Ausgangsvektor (vout)).

Wenn Sie Geld ausgeben, erstellen Sie eine Eingabe, die diese eindeutige Kennung (als Outpoint bezeichnet) verwendet, um auf die Ausgabe zu verweisen, die Sie ausgeben. Mit Bitcoin können Sie eine Ausgabe nur einmal innerhalb einer Blockkette (einer geordneten Liste von Transaktionen) ausgeben, sodass Sie den gesamten Wert dieser Ausgabe ausgeben müssen, oder Sie verlieren den Wert, den Sie nicht ausgeben.