In welcher Reihenfolge werden die UTXOs von der BitBox02 verwendet/ausgegeben?

Nope :see_no_evil:

@Goldschmied Sehr spannende Frage übrigens!

Wie genau das in der BitBoxApp implementiert ist müsste man nachschauen (oder ausprobieren), da coin selection ein schwieriges Problem ist in das mehrere Faktoren und Vorlieben einfließen - weshalb es viele Unterschiede von Wallet zu Wallet geben kann.

Meistens jedoch ist das Hauptziel die Gebühren möglichst gering zu halten und gleichzeitig möglichst wenige UTXO langfristig anzusammeln. Ähnlich eigentlich wie mit dem echten Geldbeutel.

  • Der Algorithmus von Bitcoin Core versucht beispielsweise (habe ich mal auf Stack Exchange gelesen)* immer für mindestens 0.01 BTC Change zu sorgen, natürlich nur falls das möglich ist und falls es überhaupt zu Change kommt. Damit werden automatisch kleinere UTXO konsolidiert - bedeutet auch dass die Transaktion eventuell UTXO konsumiert die eigentlich nicht notwendig sind. Bin mir aber auch hier nicht sicher ob das stimmt.

    Das Äquivalent in der Geldbeutel-Analogie wäre sozusagen: Kleingeld loswerden.

  • Electrum ist stärker auf Privacy fokussiert. Im Source Code steht dazu kommentiert:

    Attempts to better preserve user privacy.

    First, if any coin is spent from a user address, all coins are.
    Compared to spending from other addresses to make up an amount, this reduces
    information leakage about sender holdings. It also helps to
    reduce blockchain UTXO bloat, and reduce future privacy loss that
    would come from reusing that address’ remaining UTXOs.

    Second, it penalizes change that is quite different to the sent amount.

    Third, it penalizes change that is too big.

    Es werden also z.B. lieber mehrere UTXO die auf der selben Adresse liegen verwendet, obwohl es vielleicht einen anderen, besser passenden UTXO gibt, um möglichst wenig Adressen zu konsolidieren und damit Privatsphäre zu verlieren.

Hier ein allgemeiner Algorithmus der wahrscheinlich von vielen Wallets so oder so ähnlich verwendet wird:

The Coin Selection Algorithm logic to transfer Target amount

  1. If any of your UTXO² matches the Target¹ it will be used.

  2. If the „sum of all your UTXO smaller than the Target“ happens to match the Target, they will be used. (This is the case if you sweep a complete wallet.)

  3. If the „sum of all your UTXO smaller than the Target“ doesn’t surpass the target, the smallest UTXO greater than your Target will be used.

  4. Else Bitcoin Core does 1000 rounds of randomly combining unspent transaction outputs until their sum is greater than or equal to the Target. If it happens to find an exact match, it stops early and uses that.

Otherwise it finally settles for the minimum of

  • the smallest UTXO greater than the Target
  • the smallest combination of UTXO it discovered in Step 4.

Aus einem super Beitrag aus diesem Thread:

Dort werden auch mehrere Beispiele genannt.

Wie genau die BitBox App vorgeht müsste man entweder ausprobieren oder @Stadicus fragen. :slight_smile:

Da es hier kein richtig oder falsch gibt wird es auch immer Unterschiede geben und man wird immer Kompromisse zwischen Gebühren, Privatsphäre und zukünftigen Gebühren machen müssen. Um die eigenen Bedürfnisse zu 100% zu stillen muss man also selbst mit Coin Control ran.

Mit der Sparrow Wallet kann man übrigens auswählen ob man lieber auf Gebühren oder Privatsphäre optimieren will.


Edit: Haben den oben* erwähnten Thread gefunden:

7 „Gefällt mir“