Was ist ein "Unspent Transaction Output" (UTXO) und was muss man beachten?

Verstehe, also sowas wie in der Art:
„Jemand gibt was ins Netzwerk REIN IN (Auftrag) und jemand anderes nimmt es HERAUS OUT (bzw. den Auftrag zu sich).“
Nur das halt klar ist von wem es kommt und zu wem es direkt geht.

So ist das also in etwa gemeint…

(Das alles so oder so im Netzwerk bzw. auf der Blockchain ist und passiert, ist mir klar.)

Ein Input ist ein Eingang (rein) in die Transaktion und ein Output ein Ausgang aus der Transaktion (raus). Genau die Begriffe die du verwendet hast.

Ich verstehe nicht was daran irreführend sein soll? :sweat_smile:

Der Input zeigt nur einen anderen Output der schon „im Netzwerk“ bekannt ist, zusammen mit den Bedingungen um ihn ausgeben zu dürfen. Nach dem Motto:

„Ich würde das hier gerne ausgeben“ :point_right: TXID + Outputnummer

Ich weiß nicht wie das noch anschaulicher werden kann, oben sind doch mehrere Beispiele.

Du musst nur verstehen wie ein Kassenbuch funktioniert, dann hast du Bitcoin verstanden. Bitcoin ist ein Kassenbuch. Oder du nimmst das Beispiel mit dem Geldbeutel um das Konzept mit Wechselgeld usw. zu verstehen.

Ich bin langsam am Ende meines Lateins. Versuch vielleicht konkret zu fragen was du denn jetzt nicht verstehst?

Damit wollte ich dich von diesem „Konsolidieren“ Begriff lösen den du in jedem zweiten Satz erwähnt hast. Eine Konsolidierung ist wie gesagt nur eine Bezeichnung für eine x Inputs → 1 Output Transaktion, die an sich selbst geht.

Was ich mit dem Satz meine: Du kannst eine Transaktion beliebig zusammen bauen. Die Transaktion ist gültig solange du Bitcoin ausgeben willst die:

  1. Dir gehören

  2. Noch nicht ausgegeben wurden bzw. überhaupt ausgegeben werden können

und solange:

  1. Du weniger ausgeben willst als du rein gibst (Es muss weniger und kann nicht gleich viel sein, da du eine Netzwerkgebühr bezahlen musst).

    Das ist hoffentlich offensichtlich. Du kannst mit 2€ keinen Kaffee bezahlen der 3,50€ kostet.

  2. Die Transaktion in einen Block passt

Damit ist doch alles gesagt?

Du darfst nicht so abstrakt denken und dich von diesen neuen Begriffen (Inputs, Outputs, UTXO, …) irritieren lassen. Es ist eigentlich total simpel.

Um das noch klar zu stellen: Es gibt in der Transaktion kein sichtbares Feld das die Netzwerkgebühr festlegt. Die Netzwerkgebühr die du bereit bist du zahlen wird nur impliziert durch die Differenz zwischen In- und Outputs.

Exakt wie im Restaurant! Du gibst der Bedienung 50€ und sagst „Passt so“ und hast damit die 48,79€ Rechnung bezahlt und 1,21€ Trinkgeld impliziert.

Okay, jetzt hab ich es schon viel besser verstanden…
Vielen Dank wirklich!
Aber ich hätte noch eine Frage:
Ich kann ja UTXO’s teilen und zusammenführen, aber ich kann jetzt nicht 10 UTXO auf eine Adresse schicken, wo sie dann auch als 10 UTXO ankommen.
UTXO die auf eine Adresse kommen, werden also immer zu 1 UTXO gemacht.
Selbst wenn ich das wollen würde, sowas funktioniert nicht, oder?
Frage nur aus Interesse, nicht das ich das vorhabe.
Es zu wissen wäre gut, falls mich jemand fragen sollte.

Das hat sutterseba weiter oben doch schon beschrieben.

So detailliert wie du fragst, solltest du auch lesen :wink:

1 „Gefällt mir“

Und natürlich kann ich auch mehrere Inputs auf mehrere Outputs ausgeben. Das meinte ich doch damit:

Das hab ich verstanden, aber ich meine was anderes…

Könnte ich 10 UTXO von Adresse bc1…A zu bc1…B so schicken, dass sie dann auch als 10 UTXO ankommen?

Ich rede hier nur von 2 Adressen, Sender und Emfänger (10 UTXO10 UTXO).

Wie oft denn noch? Natürlich geht das…

Welche Adressen dahinter stehen ist für die Frage „Geht das?“ wie gesagt nicht relevant.

Zusätzlich zur Machbarkeit, die dir ja schon bestätigt wurde, wäre interessant was du damit bezweckst?

Du kannst eine Transaktion mit 10 Input UTXOs und 10 Output UTXOs erstellen. Unabhängig davon, ob die Outputs alle auf einer gemeinsamen Adresse landen sollen, oder auf unterschiedlichen.

Erstens kommen aber nicht dieselben 10 UTXOs an, die du versendet hast, sondern es sind 10 neue UTXOs, die einen anderen „Namen“ haben. UTXOs werden u.a. nach der Transaktion benannt, deren Output sie sind.

Zweitens sind die alten 10 UTXOs, die du als Input verwendest, und die neuen 10 UTXOs, welche nun die Outputs sind, für jeden ersichtlich alle miteinander verknüpft. Man braucht sich dafür nur diese eine Transaktion auf der Blockchain ansehen.

Du erhältst also keine neuen 10 UTXOs, die bzgl. Privacy voneinander und von den alten UTXOs getrennt sind. Einziger Zweck der Transaktion wäre eine Konsolidierung in eine neue Stückelung.

Wenn dir aber sowieso egal wäre, ob andere einen Zusammenhang zu deinem Gesamtvermögen feststellen können, warum dann nicht alles in einen einzelnen UTXO konsolidieren?

1 „Gefällt mir“

Danke.

Ich habe mal was bei Paint erstellt, damit will ich nur mal zeigen, wie ich Anfangs dachte.

Andere können sich das dann auch besser vorstellen.

Ist das dann ein CoinJoin?

Nein, nur ggf. andere UTXO Auswahl. Hat mit einem CoinJoin absolut nichts zu tun.

1 „Gefällt mir“

Wenn die Variante was teurer ist, dann wird er wohl möglichst viele UTXOs verwenden. Stückelt er auch welche?

Die meisten gescheiten Wallets bieten doch eine Vorschau für eine Transaktion, bevor man diese dann tatsächlich ins Netz pustet. Da sollte man alles Relevante vorher sehen können. So kenne ich es jedenfalls von Electrum und auch Sparrow.

Und wenn man es kostenlos ausprobieren möchte, benutzt man einfach das Bitcoin-Testnet. Die Coins gibt es kostenlos von diversen Faucets (https://testnet.coinfaucet.eu/ oder https://kuttler.eu/en/bitcoin/btc/faucet/ oder https://testnet-faucet.com/btc-testnet/). Die Testnet-Blockchain ist genau dafür gedacht, zum gefahrlosen und kostenneutralen Ausprobieren.

5 „Gefällt mir“

Vielen Dank für das Teilen dieses Artikels @sutterseba! Du erklärst das Thema wirklich SEHR SEHR gut. Education is key.

Um UTXOs zu sparen, haben wir auch unser Wallet-Transfer Feature entwickelt. Einfach gewünschten Sats Betrag eingeben, bei dem man sich ‚unwohl‘ fühlt und sobald man diesen erreicht hat, werden deine Sats automatisch an deine Wallet gesendet. So sparst du nicht nur UTXOs, sondern auch On-Chain Gebühren.

2 „Gefällt mir“

Die Beträge werden doch an Adressen geschickt. Mit jedem Senden entsteht ein neuer UTXO. Somit spart das nix, außer Zeit oder verstehe ich was falsch?

Doch, man legt halt ein bestimmtes Limit fest das erstmal erreicht werden muss anstatt nach jedem Kauf direkt auszuzahlen. Weniger UTXO in deiner Wallet.

An sich eine sehr gute Idee, die euch auch von anderen Anbietern abhebt. Mir ist jedenfalls kein anderer mit dieser Funktion bekannt.

Aber wichtig wäre dass man euch direkt mehrere Adressen oder direkt einen Account xpub geben kann. Man spart aktuell zwar UTXO, verliert aber seine Privatsphäre da alles auf der gleichen Adresse landet.

Direkt mit extended keys zu arbeiten ist wahrscheinlich erstmal viel Aufwand (auch was Aufklärung beim Nutzer angeht schwierig), aber mehrere Adressen sollten eigentlich kein Problem sein. Es wird dann einfach immer auf die nächste ausgezahlt, und wenn keine neuen Adressen mehr da sind gibt’s ne Push Notification.

Ansonsten müsste ich z.B. jedes mal manuell die Adresse austauschen, und dann kann ich das „automatische“ Auszahlen auch gleich bleiben lassen. :wink:

4 „Gefällt mir“

Vielen Dank für dein Feedback. Wir arbeiten auch stetig daran, das Feature zu verbessern. Ich werde deinen Vorschlag auch direkt an das Tech-Team weiterleiten :slight_smile:

1 „Gefällt mir“

Wie lange muss ich dann warten?

Gibt es ein Ablaufdatum bei Transaktionen?

Kann ich die Gebühr einer Transaktion nachträglich anpassen?

Ich müsste doch eine neue Transaktion mit einer höheren Gebühr erstellen können. Stimmt das?

Dieser Beitrag sollte alle Fragen beantworten:

1 „Gefällt mir“

Sehr geil!