Ich schreibe meine eigene einfache Kryptographie und frage mich, ob sich die Eingabe in einer Transaktion auf die unspendierte Ausgabe nur durch ihre TXID und vout (Index im Ausgabevektor in einer Transaktion) ODER durch ihre TXID und die vollständige Adresse in einer Blockchain beziehen sollte - das ist die Blockhöhe , Transaktionsindex in einem Block und Ausgabeindex in einer Transaktion.
Der erste Ansatz scheint einen Fehler zu haben - es ist unwahrscheinlich, aber möglich, dass zwei verschiedene Ausgänge die gleiche TXID und Vout haben.
Aber im zweiten Ansatz brauche ich nicht einmal TXID, wenn ich die vollständige Blockchain-Adresse habe, oder? Ich möchte die Buchführung nicht verdoppeln - wenn es doppelte Daten gibt, müssen Sie sicherstellen, dass sie konsistent sind.
Also meine zwei Fragen sind:
Allgemeine Lösungsvorschläge sind sehr willkommen. Vielen Dank im Voraus!
Bei Bitcoin ging man ursprünglich davon aus, dass Miner, die Blöcke produzieren, eine eindeutige Adresse pro Transaktion verwenden würden, um sicherzustellen, dass die Coinbase jedes Blocks eine eindeutige TXID hat. Da dies nicht erzwungen wurde, führten Benutzer versehentlich doppelte Transaktionen durch, indem sie dieselbe Zieladresse für mehrere gelöste Blöcke einstellten. BIP34 fügt dem Block einfach ein neues zu validierendes Feld hinzu, was erfordert, dass die Höhe auch Teil des Hashs ist, wodurch die Eindeutigkeit für alle zukünftigen Blöcke sichergestellt wird.
Für die beiden BIP34-Blöcke mit Sonderfällen ist das Ergebnis ziemlich einfach. Die erste Instanz der TXID erstellt den UTXO, der zweite Aufruf macht überhaupt nichts, da die Ausgabe bereits existiert, und wenn sie jemals ausgegeben wurden, kann der UTXO nur einmal aus der Datenbank entfernt werden. Das Geld, um das es in der zweiten Instanz des TXID ging, wurde vernichtet, was zu einem Verlust von insgesamt 100 BTC führte.
zabson
Claris