Klärung des UTXO-Modells und der Übertragungsgebühr / Kb

Ich habe daran gearbeitet, die Eingaben/Ausgaben und Transaktionsdetails gemäß dem UTXO-Modell zu verstehen, das in dieser Frage diskutiert wird , und auch darüber nachgedacht, wie es mit der Transaktionsgebühr auf der Grundlage der Größe in KB der in dieser Frage diskutierten Transaktion zusammenhängt . Ich möchte ein paar Dinge klarstellen, fühlen Sie sich frei, alles, was ich sage, das falsch ist, auseinanderzunehmen, zusätzlich zur Beantwortung meiner Fragen - da die Fragen von meinem Verständnis abgeleitet sind.

Es scheint, dass die Transaktionsgröße hauptsächlich eine Funktion der Anzahl der Ein- und Ausgänge ist (in dem Sinne, dass dies die Dinge sind, über die ich als Sender die Kontrolle habe, während die anderen zur Größe beitragenden Komponenten mehr oder weniger statisch sind).

Erläuterung 1: (Gebühr und Wechselgeld ignorieren) Angenommen, Alice schickt mir (Bob!) 2 BTC. Sie erhielt diese 2 BTC, weil Larry und Greg ihr jeweils 1 BTC schickten. Das bedeutet, dass sie diese beiden UTXO-Ausgänge jeweils für 1 BTC mit ihrer Brieftasche verknüpft hat, und wenn sie sie mir sendet, hat die Transaktion 2 Eingänge und 1 Ausgang, ähnlich wie diese Transaktion, die ich in einem Block-Explorer gefunden habe.

Geben Sie hier die Bildbeschreibung ein

Sobald diese Transaktion verarbeitet ist,does my wallet remember that these 2 btc came from separate UTXO's? Or does it "get melted" as someone alluded to in my first link. More precisely, if I send these 2 btc to Gerald, will it show 1 input or 2?

Klarstellung 2: (mit Gebühr und Wechselgeld) Alice will mir 2 BTC schicken. Sie hat zuvor jeweils 1 BTC von Larry, Greg und Allan erhalten. Sie hat also 3 UTXOs mit ihrer Brieftasche verbunden, die jeweils 1 BTC wert sind. Sie schickt mir 2 BTC, muss aber die Gebühr bezahlen. Sagen wir der Einfachheit halber eine Gebühr von 0,5 BTC. Does this mean she now has 3 inputs and 2 outputs contributing to the size of the transaction (and thus contributing to the size of the fee)(Sie braucht alle drei Münzen, um mich zu bezahlen und die Gebühr zu decken, und dann werde ich eine Ausgabe sein und ihre "Änderungsadresse" wird die andere sein.

Schließlich glaube ich zu verstehen, dass die meisten Wallet-Dienste all diese Details für Sie in dem Sinne „handhaben“, dass Sie einfach die BTC-Adresse eingeben und wie viel Sie senden möchten, und sie den Rest erledigen. Do they typically do this in a most efficient way?Angenommen, ich verwende eine Brieftasche wie ein Nano Ledger S. Wenn ich einen UTXO für 25 BTC, einen UTXO für 1 BTC und 5 UTXO für 0,5 BTC habe und jemandem 1 BTC sende, wird er die UTXO auswählen die zur kleinsten Transaktionsgröße führen?

Nachtrag: Ich plane, auf dieser Seite aktiv zu sein, also kritisieren Sie bitte, ob meine Fragen verbessert werden können, um besser zu dieser Community zu passen.

Antworten (3)

Erinnert sich meine Brieftasche daran, dass diese 2 BTC von separaten UTXOs stammten? Oder wird es "geschmolzen", wie jemand in meinem ersten Link anspielte. Genauer gesagt, wenn ich diese 2 BTC an Gerald sende, wird es 1 Eingang oder 2 zeigen?

(1) Sie haben einen einzigen 2 BTC UTXO, der durch Alices Transaktion erstellt wurde. Diese Transaktion gab zwei UTXOs aus, verschmolz sie aber zu einem einzigen. Ihre Brieftasche kümmert sich nicht um ihre Geschichte - sie hat einen UTXO, und wenn sie ihn ausgibt, benötigt sie eine Transaktion mit einer Eingabe.

Es ist für Brieftaschen oder andere Software möglich, die Geschichte der Münzen herauszufinden und herauszufinden, dass sie von einer Transaktion stammen, die zwei ausgegeben hat. Aber es hat keinen Einfluss auf zukünftige Transaktionen damit.

Bedeutet dies, dass sie jetzt 3 Eingänge und 2 Ausgänge hat, die zur Größe der Transaktion beitragen (und somit zur Höhe der Gebühr beitragen)?

Das ist richtig. Sie würden eine Transaktion mit 3 Eingängen (jeweils 1 BTC) und 2 Ausgängen (einer von 2 BTC, einer von 0,5 BTC) erstellen. Die Differenz beträgt 0,5 BTC für Gebühren.

Tun sie dies normalerweise auf die effizienteste Weise?

Oft nein, eigentlich. Denn „am effizientesten“ ist nicht das einzige Kriterium, nach dem optimiert werden muss. Beispielsweise möchten Sie jetzt die Kosten für Transaktionen minimieren, aber Sie möchten Ihre Brieftasche auch nicht in einen Zustand bringen, der die Kosten für Transaktionen später erhöht. Zum Beispiel würden einige Strategien für die Münzauswahl (wie dieses Problem genannt wird) dazu führen, dass Ihre Münzen bei typischen Arbeitsbelastungen kontinuierlich in immer kleinere Wechselgeld zerkleinert werden, wodurch es immer teurer wird, zukünftige Münzen zu versenden.

Einige Wallets berücksichtigen die aktuellen Gebührenbedingungen, um diese Entscheidungen zu treffen.

Insgesamt gibt es einen erheblichen Arbeitsaufwand, um verschiedene Münzauswahlschemata zu analysieren. Einige sind in der Masterarbeit von Mark Erhardt enthalten .

Danke für den Link! Mein Hintergrund liegt in der reinen Mathematik – was zur Kryptographie führte – was zum Studium von Bitcoin führte. Schön zu wissen, dass dies ein interessanter Bereich von Fragen ist.
eine verwandte Frage zu diesem Beitrag. Liegt der Grund dafür, dass die Transaktionsgebühr mit der Größe zusammenhängt, darin, dass eine kleinere Sendegröße impliziert, dass der Miner mehr Sendeeinheiten in einen Block hätte einbauen können?
Ja, genau das. Die Optimierung auf maximale Gebühreneinnahmen führt automatisch dazu, dass Bergleute nach Gebühren pro Byte (oder nach Gewicht, da Segwit, da die Einschränkung das Blockgewicht begrenzt, jetzt nicht die Blockgröße) priorisieren.

Erinnert sich meine Brieftasche nach der Verarbeitung dieser Transaktion daran, dass diese 2 BTC von separaten UTXOs stammten? Oder wird es "geschmolzen", wie jemand in meinem ersten Link anspielte. Genauer gesagt, wenn ich diese 2 BTC an Gerald sende, wird es 1 Eingang oder 2 zeigen?

Ihre Brieftasche kann den Verlauf der von Ihnen erhaltenen Gelder verfolgen oder nicht. Aber ab diesem Zeitpunkt zählt nur noch, dass Sie einen UTXO haben, mit dem Sie tun können, was Sie wollen.

Schließlich glaube ich zu verstehen, dass die meisten Wallet-Dienste all diese Details für Sie in dem Sinne „handhaben“, dass Sie einfach die BTC-Adresse eingeben und wie viel Sie senden möchten, und sie den Rest erledigen. Tun sie dies normalerweise auf die effizienteste Weise? Angenommen, ich verwende eine Brieftasche wie ein Nano Ledger S. Wenn ich einen UTXO für 25 BTC, einen UTXO für 1 BTC und 5 UTXO für 0,5 BTC habe und jemandem 1 BTC sende, wird er die UTXO auswählen die zur kleinsten Transaktionsgröße führen?

Für einfache Fälle tun sie dies normalerweise. Bei sehr komplexen Fällen ist es rechenintensiv, sicherzustellen, dass Sie immer das absolut optimale Ergebnis erzielen, da die Anzahl der zu berücksichtigenden Möglichkeiten absurd groß werden kann. Die meisten Implementierungen garantieren nicht, dass sie immer das allerbeste Ergebnis liefern, sondern verwenden stattdessen Heuristiken, die tatsächlich in den meisten Fällen für typische Fälle das optimale Ergebnis finden und dennoch sehr gute Ergebnisse in absurd komplexen Situationen mit potenziell Tausenden von UTXOs liefern wähle aus.

Erinnert sich meine Brieftasche daran, dass diese 2 BTC von separaten UTXOs stammten? Oder wird es "geschmolzen", wie jemand in meinem ersten Link anspielte. Genauer gesagt, wenn ich diese 2 BTC an Gerald sende, wird es 1 Eingang oder 2 zeigen?

Es wird als 1 UTXO angezeigt, das Sie ausgeben können. Ihre Brieftasche kümmert sich nicht um die UTXOs, die ausgegeben wurden, um die UTXOs zu erstellen, die Sie ausgeben können. Es gibt dort nichts, was es wissen muss, also kümmert es sich nicht darum.

Bedeutet dies, dass sie jetzt 3 Inputs und 2 Outputs hat, die zur Größe der Transaktion beitragen (und somit zur Höhe der Gebühr beitragen) (sie braucht alle drei Coins, um mich zu bezahlen und die Gebühr zu decken, und dann werde ich ein Output sein und ihre "Adresse ändern" wird die andere sein.

Ja.

Tun sie dies normalerweise auf die effizienteste Weise? Angenommen, ich verwende eine Brieftasche wie ein Nano Ledger S. Wenn ich einen UTXO für 25 BTC, einen UTXO für 1 BTC und 5 UTXO für 0,5 BTC habe und jemandem 1 BTC sende, wird er die UTXO auswählen die zur kleinsten Transaktionsgröße führen?

Nicht unbedingt.

Jetzt betritt man einen Bereich, der als schwierig gilt. Im Allgemeinen geht es bei dieser Frage um Münzauswahlalgorithmen, von denen es viele gibt und die für verschiedene Dinge optimiert sind. Die Münzauswahl ist auch ein mehrdimensionales Problem, und was als gut, schlecht, effizient oder ineffizient gilt, ist nicht genau definiert.

Vielen Dank für die Ausarbeitung zur Münzauswahl. Mein Hintergrund liegt in der reinen Mathematik – was zur Kryptographie führte – was zum Studium von Bitcoin führte. Schön zu wissen, dass dies ein interessanter Bereich von Fragen ist. Können Sie mir einen Ort nennen, an dem ich mehr über heiße Forschungsgebiete rund um BTC / Krypto / Blockchain erfahren kann?