Was bedeutet der „Wert des Outputs, der von diesem Input ausgegeben wird“ in BIP 143?

Ich schaue in BIP 143 und bin verwirrt von Punkt 6 in der Spezifikation des Transaktions-Digest-Algorithmus. Es sagt:

Das Element 6 ist ein 8-Byte-Wert der Bitcoin-Menge, die in dieser Eingabe ausgegeben wird.

Ich dachte, der gesamte Betrag des Inputs wird immer ausgegeben. Falls der Spender es nicht vollständig ausgeben möchte, geht ein Teil davon an dieselbe Adresse (genannt change ) und gibt die Bitcoins zurück.

Was meinen sie damit? Bedeutet es die volle verfügbare Menge in der Eingabe?

Antworten (1)

Ich dachte, der gesamte Betrag des Inputs wird immer ausgegeben.

Das ist richtig.

Falls der Spender es nicht ganz ausgeben möchte, geht ein Teil davon an dieselbe Adresse (genannt Wechselgeld) und gibt die Bitcoins zurück.

Nein, wenn der Betrag in den Ausgaben geringer ist als die ausgegebenen Eingaben, wird die Differenz in eine Gebühr umgewandelt.

Software, die Transaktionen erstellt, kann explizit eine Ausgabe zur Änderung hinzufügen, die auf den früheren Eigentümer zurückgeht. Dies kann an dieselbe Adresse erfolgen, ist es aber im Allgemeinen nicht. Es heißt zwar Veränderung, ist aber nicht Teil des Protokolls. So gehen Wallets mit zu großen Eingaben um.

Was meinen sie damit? Bedeutet es die volle verfügbare Menge in der Eingabe?

Genau . Es handelt sich um redundante Informationen, die bereits durch Verweise auf die Transaktionen impliziert sind, die die Ausgaben erstellt haben. Es vereinfacht jedoch den Betrieb einiger Infrastrukturteile.

Insbesondere jetzt, wenn Sie ein Hardware-Signaturgerät ("Hardware Wallet") verwenden möchten und dieses Wallet Ihnen zeigen möchte, wie viel Gebühr Sie erstellen werden, muss es die Beträge der Ausgaben kennen (wie z die Gebühr ist die Differenz zwischen Outputs und Inputs). Das bedeutet, dass die vollständigen Transaktionen angegeben werden müssen, zu denen diese Ausgaben gehörten - was sehr groß sein kann. Andernfalls könnte die Software, die die Transaktion erstellt hat, lügen und tatsächlich einen riesigen Teil Ihres Geldes in Gebühren umwandeln, ohne dass Sie es wissen.

Da die Gebühr explizit Teil des Signatur-Hashes in BIP143 ist, wird die Signatur einfach ungültig, wenn die Wallet-Software die Beträge an den Hardware-Unterzeichner anlügt.

Wenn Sie den vollen Betrag der Eingabe in dieses Feld eingeben, bedeutet das, dass Sie keine Miner-Gebühren berücksichtigen?
@Malone BIP143 verpflichtet sich direkt zum Eingabebetrag. Es verpflichtet sich nur indirekt zur Gebühr (indem es alle ausgegebenen Beträge enthält und auf den txid:index des ausgegebenen Outputs verweist, und dass txid sich zu allen ausgegebenen Beträgen verpflichtet).