Wie unterscheidet sich der Hash einer Coinbase-Transaktion für denselben Miner?

Basierend auf dem hier beschriebenen Format einer Coinbase-Transaktion: Was ist das Format der Coinbase-Transaktion? , sehe ich nicht, dass alle Coinbase-Transaktionen für einen bestimmten Bergmann nicht alle denselben Hash haben, vorausgesetzt, der Bergmann hat nur einen einzigen Pubkey verwendet und die Blockbelohnungen waren gleich. Wenn sie alle den gleichen Hash haben, verwenden Sie sie effektiv alle, wenn Sie einen von ihnen ausgeben, da dieser Transaktions-Hash jetzt als Eingabe verwendet wurde. Das würde natürlich keinen Sinn machen, wie wird also sichergestellt, dass es sich um eindeutige Transaktions-Hashes handelt?

Antworten (1)

Das Skript der Eingabe für eine Coinbase-Transaktion kann bis zu 100 Bytes beliebiger Daten enthalten. Nach BIP 34 muss die Blockhöhe das Erste in diesem Skript sein. Da jeder Block eine andere Höhe hat, stellt diese Regel sicher, dass jede Coinbase-Transaktion einzigartig ist, da die Blockhöhen immer unterschiedlich sind.

Da Miner außerdem beliebige beliebige Daten in dieses Eingabeskript einfügen können, verwenden sie dies häufig als zusätzliche Nonce. Anstatt Transaktionen erneut auszuwählen, wenn alle Nonces erschöpft sind, erhöhen Miner einen Wert, der als Extranonce bekannt ist und in das Eingabeskript eingefügt wird.


Außerdem gab es vor der Aktivierung von BIP 34 tatsächlich Fälle identischer Coinbase-Transaktionen in verschiedenen Blöcken. Nur die Ausgaben der jüngsten dieser identischen Coinbase-Transaktionen können ausgegeben werden. Beim Ausgeben von Outputs dieser Transaktionen werden nicht alle Outputs ausgegeben, sondern nur die der letzten. Dies bedeutet, dass die Ausgaben der früheren Coinbases nicht ausgegeben werden können und diese Coins nachweislich für immer verloren sind.

Ich sehe, das macht Sinn. Nur um eines klarzustellen, Blockhöhen sind nur für Coinbase-Transaktionen für denselben Miner garantiert unterschiedlich, weil Coinbase-Transaktionen für verschiedene Miner im Falle eines temporären Forks möglicherweise dieselbe Blockhöhe haben könnten?
Ja, die Blockhöhen sind nur für denselben Miner unterschiedlich.