[Spending-Tools] Guide zum Umgang mit gemixten Bitcoin - spending privately

25 Min. Lesedauer
Von FuSsY
[Spending-Tools] Guide zum Umgang mit gemixten Bitcoin - spending privately

Das Mixen von unseren UTXO's ist einfach. Dank Wallets wie Samourai & Sparrow Wallet erhalten wir ziemlich perfekte forward Privacy.

Es stellt tatsächlich ein größeres Problem dar, diese erworbene Privacy auch zu erhalten. Das heißt wenn wir unsere gemixten "unspent transaction outputs" (UTXO) ausgeben bzw über die öffentliche Blockchain versenden wollen...

Es gibt Transaktionstools, die uns helfen, unsere Post-Mix-Coins so auszugeben, dass die Anonymität gewahrt bleibt!

Jedes Tool bietet unterschiedliche Techniken und es ist wichtig, die Unterschiede zu verstehen.

Dieser Artikel geht auf die Privacy Spending-Tools vom Sparrow/ -und Samourai Wallet ein, die uns beide ein Schweizer Taschenmesser liefern, wenn es um Bitcoin Privatsphäre geht... Mobile sowie auf unserem Desktop.

Um etwas Hintergrundwissen aufzubauen erstmal ein paar technische Details und Erläuterungen zum Thema Coinjoin und BTC-Privacy...


Standard Wallet Struktur beider Tools

Sowohl in Samourai Wallet als auch in Sparrow Wallet ist die Whirlpool-Implementierung so, dass eine Vier-Wallet-Struktur verwendet wird. Diese vier Wallets werden alle von der Wallet-Software im Hintergrund verwaltet, und aus Sicht des Benutzers kann nahtlos zwischen den Wallets navigiert werden.

Es ist wichtig, die Wallets so zu strukturieren, dass unsere UTXO's voneinander getrennt bleiben, auf diese Weise folgen diese UTXO's einem logischen Pfad vom Deposit Wallet, über das Pre-Mix Wallet bis hin zum Post-Mix-Wallet und verbleiben dort ohne deterministische Verknüpfungen zur vorherigen Transaktionshistorie (forward Privacy).

Whirlpool ist eine Zero-Link-CoinJoin-Implementierung, die von Samourai Wallet auf Android-Mobilgeräten und von Sparrow Wallet auf Linux-, Mac- und Windows-Desktops unterstützt wird. Zero-Link-CoinJoin bedeutet, dass es keine deterministischen Verknüpfungen zwischen den Ein- und Ausgängen der CoinJoin-Transaktion gibt. Da an jedem CoinJoin mehrere Entitäten beteiligt sind, kann es keine Gewissheit darüber geben, welche Entität welche Transaktionsausgabe besitzt.

Sowohl Samourai Wallet als auch Sparrow Wallet unterstützen die folgenden Adressformate:

  • P2PKH-Adressen (Pay-to-Public-Key-Hash), "17SkEw2md5avVNyYgj6RiXuQKNwkXaxFyQ" auch als "Legacy" bezeichnet werden.
  • Pay-to-Script-Hash (P2SH)-Adressen, "3EEJFjZURxShNr2AoJtbfcvCB749yzP7LP" auch als "nested SegWit" bezeichnet.
  • Pay-to-Witness-Public-Key-Hash (P2WPKH)-Adressen, "bc1qqmmc3s46efrdq0jglhf8l8jg0xw37exgne6q3k" auch als "native SegWit" oder "Bech32" bezeichnet.
  • Samourai Wallet hat Unterstützung, um diese Adressen auszugeben, Sparrow Wallet hat Unterstützung, um diese Adressen auszugeben und an sie zu empfangen.
Da die Whirlpool Implementierung nur mit P2WPKH-Adressen funktioniert, können die Pre-Mix-, Post-Mix- und Bad-Bank-Wallets auch nur P2WPKH empfangen. Ausgeben können wir die Coins wieder an P2PKH-, P2SH-, P2WPKH- oder P2TR-Adressen!

Die Wallet-Software verwendet verschiedene Ableitungspfade, um die separaten Wallets zu erreichen. Ableitungspfade verwenden unterschiedliche Zahlen, um unterschiedliche Details über den Schlüsselpfad darzustellen: "m / Zweck' / coin_type' / Identität".

Im folgenden Beispiel kann die Einzahlungs-Wallet eine Vielzahl von Adresstypen verarbeiten, daher die "m/44'|m/49'|m/84'|m/47'" für jeden der verschiedenen Zwecke. Die Pre-Mix-, Post-Mix- und Bad Bank-Wallets erfüllen nur den "m/84'"-Zweck.

  • Deposit Wallet: Dies ist die Wallet, auf der wir Einzahlungen vornehmen. UTXOs in dieser Wallet können verwendet werden, um Whirlpool CoinJoins durch eine sogenannte "Transaction Zero" (tx0) zu erstellen. Sie kann auch wie jede andere Wallet verwendet werden.
  • Pre-Mix Wallet: Hier landen UTXOs, sobald sie die Deposit-Wallet durch einen tx0 (Whirlpool-Coinjoin) verlassen haben. Die UTXOs befinden sich hier nicht lange, dies ist nur ein Durchgang, bei dem UTXOs als verfügbare Inputs für den Whirlpool-CoinJoin registriert werden. Ein direktes Einzahlen auf diese Wallet ist nicht möglich. Eine Auszahlung unserer Coins ist zu jeder Zeit möglich! 100% Non-Custodial.
  • Post-Mix Wallet: Hier fließen die UTXOs ein, sobald sie ihren ersten Whirlpool CoinJoin aus dem PreMix durchlaufen haben. Diese UTXOs verbleiben hier solange wir es wollen. Dadurch erzielen wir fortlaufend ansteigende Privacy, da diese UTXOs immer wieder zu weiteren Re-Mixen ausgewählt werden. Die Gebühren für diese Re-Mixes zahlen die frischen Pre-Mixer aus dem gewählten Whirlpool!
  • Bad Bank Wallet: Hier wird der Toxic Change aus unserem Coinjoin deponiert. Dieser MUSS zwingend mit Vorsicht behandelt werden! Ein Zusammenführen dieser Coins mit Coins aus dem Whirlpool zerstört die komplette Privacy eurer Coinjoins. Lasst die UTXOs liegen, mixt sie in einem kleineren Pool aber gebt sie nicht zusammen aus. Wenn die Bad-Bank UTXOs zu klein werden um sie weiter zu mixen ist eine sinnvolle Verwendung beispielsweise das Spenden an Open-Source Projekte oder Developern unserer Tools usw. :)

Weitere Möglichkeiten BadBank Restgelder sauber loszuwerden sind AtomicSwaps oder Swaps in Gutscheine ect.


Sparrow Wallet Whirlpool-Account Struktur

Sparrow Desktop Wallet mit Whirlpool Account's

Samourai Wallet Post-Mix


Pools und die tx0

Es gibt vier Poolgrößen im Whirlpool: 0,5, 0,05, 0,01 und 0,001 BTC. Das bedeutet, dass jeder Whirlpool-Output einer dieser Poolgrößen entspricht. Wenn wir UTXOs aus unserem Deposit-Wallet für einen Coinjoin auswählen, durchlaufen diese zuerst eine sogenannte TX0 (die Pool Eingangstransktion). Die Ergebnisse dieses tx0 variieren je nachdem, welche Poolgröße wir auswählen.

Beispiel: wenn wir 10 Bitcoin mixen wollen, würden die verschiedenen Poolgrößen diese Ergebnisse durch die tx0 erzeugen:

0.5 Pool

  • 10.00000000 BTC input
  • 1 x 0,01750000 BTC UTXO für die Whirlpool-Koordinatorgebühr
  • 19 x 0,50001000 BTC UTXOs für Whirlpool-Eingänge, die einen kleinen zusätzlichen Betrag für die Miner-Gebühr tragen. In diesem Beispiel wurde eine Gebühr von 1 Sat/vb verwendet, die sich jedoch je nach Mempool-Auslastung und gewünschter Dringlichkeit ändert.
  • 1 x 0.48231000 BTC UTXO als Toxic Change in der Bad-Bank Wallet

0.05 Pool

  • 10.00000000 BTC input
  • 1 x 0.00175000 BTC UTXO für die Whirlpool-Koordinatorgebühr
  • 199 x 0.05001000 BTC UTXOs für Whirlpool-Eingänge, die einen kleinen zusätzlichen Betrag für die Miner-Gebühr tragen. In diesem Beispiel wurde eine Gebühr von 1 Sat/vb verwendet, die sich jedoch je nach Mempool-Auslastung und gewünschter Dringlichkeit ändert.
  • 1 x 0.04626000 BTC UTXO als Toxic Change in der Bad-Bank Wallet

0.01 Pool

  • 10.00000000 BTC input
  • 1 x 0.00050000 BTC UTXO für die Whirlpool-Koordinatorgebühr
  • 998 x 0.01001000 BTC UTXOs für Whirlpool-Eingänge, die einen kleinen zusätzlichen Betrag für die Miner-Gebühr tragen. In diesem Beispiel wurde eine Gebühr von 1 Sat/vb verwendet, die sich jedoch je nach Mempool-Auslastung und gewünschter Dringlichkeit ändert.
  • 1 x 0.00952000 BTC UTXO als Toxic Change in der Bad-Bank Wallet

0.001 Pool

  • 10.00000000 BTC input
  • 1 x 0.00005000 BTC UTXO für die Whirlpool-Koordinatorgebühr
  • 9,900 x 0.00101000 BTC UTXOs für Whirlpool-Eingänge, die einen kleinen zusätzlichen Betrag für die Miner-Gebühr tragen. In diesem Beispiel wurde eine Gebühr von 1 Sat/vb verwendet, die sich jedoch je nach Mempool-Auslastung und gewünschter Dringlichkeit ändert.
  • 1 x 0.00095000 BTC UTXO als Toxic Change in der Bad-Bank Wallet

Die Gebühr für den Whirlpool-Koordinator bleibt immer gleich, unabhängig davon, wie viel Bitcoin wir coinjoinen wollen. Wenn wir beispielsweise 1 BTC oder 35 BTC im 0,5-Pool mixen, zahlen wir immer 0,0175 BTC für die Koordinatorgebühr.

Beachtet auch, dass sich die Miner-Gebühr, die in jedem Pre-Mix-UTXO enthalten ist, zu einem großen Betrag an Miner-Gebühren anwachsen kann, wenn die Anzahl der Pre-Mix-UTXOs, also die Anzahl der einzelnen Outputs, zunimmt. Im obigen 0,001-Pool-Beispiel beträgt die Summe der Miner-Gebühren 0,099 BTC. Also je mehr kleine Outputs desto größer die Summe der Miner Fee.

Am günstigsten starten wir in den Whirlpool, wenn der Mempool leer ist und wir bei sehr geringer Low Priority den Mix starten können!

Zum Errechnen der Gebühren können wir WhirlpoolFees.com besuchen.

Die tx0 gilt sowohl für Samourai Wallet als auch für Sparrow Wallet. Ein tx0 ist immer so aufgebaut, dass eine oder mehrere Input UTXOs aus dem Deposit-Wallet unterteilt sind in:

  • Mehrere gleich große Output-UTXO's, das sind die Pre-Mix-UTXOs, die später in die Whirlpool CoinJoins gehen werden.
  • Ein Output UTXO für die Whirlpool-Koordinator-Gebühr.
  • Ein Output UTXO für die restlichen Coins. Der "toxic change" (Bad-Bank)

Hier ein tx0 Beispiel:

  • Ein input von 0.81804189 BTC
  • 16 gleichgroße outputs von 0.0501 BTC
  • Ein Whirlpool Koordinator fee output von 0.00175 BTC
  • Ein toxic change output von 0.0136981 BTC

Wir können Transaktionen hier veranschaulichen - KYCP.org

Jeder der 16 gleich großen Ausgänge wird einzeln für Eingänge zu nachgeschaltetem Whirlpool CoinJoin ausgewählt. Diese Ausgänge befinden sich vorübergehend in der Pre-Mix-Wallet als verfügbare Eingänge für Whirlpool CoinJoins. Wenn neue Whirlpool-Transaktionen initiiert werden, sucht der Koordinator nach verfügbaren Eingängen wie diesen. Der Whirlpool-Koordinator erzwingt strenge Regeln, die sicherstellen, dass keine zwei Ausgaben von derselben tx0 oder derselben Wallet in derselben Whirlpool CoinJoin-Transaktion landen. Jeder dieser 16 Ausgänge trägt eine kleine Menge an zusätzlichem Bitcoin, so dass sie, sobald sie als Eingaben ausgewählt sind, dazu beitragen können, die Miner-Gebühr für die Whirlpool CoinJoin-Transaktion inklusive der "Remixer" zu decken.

Der Koordinator wechselt nach dem Zufallsprinzip zwischen der Erstellung von Transaktionen, die entweder zwei neue Teilnehmer-UTXOs und drei Remix-UTXOs oder drei neue Teilnehmer-UTXOs und zwei Remix-UTXOs haben (die Anzahl hat sich in Zeiten der High-Fees auf 5 Pre- / Remixer geändert)! Die frischen Teilnehmer-UTXOs übernehmen immer die Miner-Gebühr und die "Free Rider" (Re-Mixer) -UTXOs können immer kostenlos remixen. Auf diese Weise zahlen wir die Whirlpool-Koordinator-Gebühr nur einmal und dann können unsere UTXOs kostenlos in unserem Post-Mix-Wallet verbleiben.

Ein ordentliches UTXO Set aus verschiedenen Poolgrößen im Postmix Wallet ist unerlässlich um sauberes Bezahlen mit den Spending Tools zu ermöglichen. Am besten schaut man ganz einfach, dass die persönlichen Ausgaben / Kosten für den Alltag mit dem Postmix Wallet abgedeckt sind...

Toxic Change

Wie oben geschrieben müssen wir besonders auf unsere Toxic Change im Bad-Bank Wallet achten. Standardmäßig werden wir von Samourai Wallet aufgefordert, diese UTXO während der tx0-Initiierung als "Not spendable" zu markieren. Wenn wir diesen UTXO auf diese Weise markieren, wird verhindert, dass unser Wallet ihn als verfügbaren UTXO anzeigt und wird von unserem angezeigten Guthaben ausgeschlossen.

Achtung: Bei Samourai Wallet ist mir aufgefallen, dass nach einem Neustart der App, der Status "do not spend" nicht immer wieder automatisch gesetzt wird! Am besten ist es, diese UTXO irgendwie direkt loszuwerden...

Wir können jederzeit zum Menü in der oberen rechten Ecke der Samourai Wallet navigieren und "unspend transaction output anzeigen" auswählen und dort auch unsere "Nicht ausgeben UTXO" finden. Wählen wir ein UTXO aus können wir den Status auf "Spendable" setzen. Dann wird es als Teil unseres Guthabens angezeigt und ist wieder auszugeben.

Im Sparrow Wallet wird der toxic change automatisch nach dem tx0 an die Bad Bank Wallet gesendet. Wir können jederzeit auf die Registerkarte Bad Bank Wallet gehen und diesen UTXO von dort aus ausgeben.

Das Problem mit dem Toxic Change ist, dass sie On-Chain immer noch mit dem tx0 verbunden ist, von dem es stammt. Dies bedeutet, dass es auch mit der gesamten vorherigen Transaktionshistorie aller Inputs zu diesem tx0 verknüpft ist. Wenn also ein externer Beobachter die Bewegung von Bitcoin verfolgt (und das tun sie im großen Stil), die zu einer bekannten Entität gehört, dann weiß er, dass dieser Toxic Change und der Coinjoin zu dieser Entität gehört. Daher könnte der externe Beobachter unter Verwendung von On-Chain-Heuristiken davon ausgehen, dass jeder Bitcoin in Kombination mit der Toxic Change in einer zukünftigen Transaktion auch zu der bekannten Entität gehört.

Nach dieser Logik würde die Kombination eines toxic Change-UTXO mit einem Post-Mix-UTXO die Anonymitätsvorteile von Whirlpool zunichte machen. Aufgrund der Wallet-Struktur wird dies so gut es geht unterbunden. Allerdings sind wir immer Herr unsere Coins, egal in welchem Wallet diese liegen. Daher ist immer Vorsicht und Überlegung angeraten!

‌             ‌

Beim Coinjoin nutzen wir die "Wasserfalltechnik" und beginnen mit der größten Poolgröße, die wir mit unseren verfügbaren UTXOs in der Deposit Wallet erhalten können. Dann nehmen wir den Toxic Change und verwenden ihn ALLEIN in der nächstgrößten Poolgröße und wiederholen dann diesen Vorgang, bis wir mit der kleinstmöglichen Toxic Change übrig bleiben und wir keinen Whirlpool joinen können.

Eine weitere Möglichkeit, die derzeit von Samourai entwickelt wird, ist ein Atomic Swap zu Monero (XMR). Dies würde erfordern, dass wir eine separate Monero-Wallet wie Monerujo, Feather oder Mysu nutzen, da Monero nicht direkt in Samourai Wallet implementiert wird (Bitcoin Only). Aber im Grunde können wir trustless unsere Bad-Bank Coins mit einem Peer2Peer-Swap für XMR zur Monero-Wallet tauscht. Oder man geht mit den XMR shoppen ect.

Update 2024

Samourai-Swaps befindet sich in der Beta Phase und steht uns nun zur Verfügung! Wer mehr über Atomic Swaps und die Nutzung des Service erfahren möchte, hier die benötigten Infos...

Samourai Swaps

Samourai Swaps Docs & FAQ      ‌

Telegram Diskussion

Whirlpool UTXOs

Jeder Ausgang eines Whirlpool CoinJoin ist einer von fünf (bis zu 8) gleich großen Ausgängen. Für einen externen Beobachter, der einen Blockexplorer betrachtet, besteht nahezu keine Möglichkeit, mit Sicherheit zu bestimmen, dass eine bestimmte Ausgabe zu einer bestimmten Eingabe gehört. Alle fünf Ausgänge haben die gleiche Wahrscheinlichkeit, zu einem der fünf Eingänge zu gehören. Dieses Konzept lässt sich mit KYCP.org gut veranschaulichen.

Hier ist eine andere Möglichkeit, die gleiche Whirlpool CoinJoin-Transaktion als Tabelle zu betrachten, die die Wahrscheinlichkeit einer Wertübertragung zwischen Eingabe und Ausgabe auflistet.

Da alle Outputs die gleiche Größe haben und die gleiche Wahrscheinlichkeit haben, zu einem bestimmten Input zu gehören, gibt es kein Unterscheidungsmerkmal für Onchain-Analysefirmen.

Das ist unser Anonymityset, unsere forward Privacy, die Eigenschaft oder der Zustand, sich nicht von der Masse zu unterscheiden. Sobald diese Anonymität erreicht ist, möchten wir sicherstellen, dass wir sie bewahren, um fortan Bitcoin über die öffentliche Blockchain ausgeben zu können, ohne Details preiszugeben, die eine frühere On-Chain-Transaktionshistorie offenbaren würden, oder die weitere Details über uns als Entität preisgibt!

Um mehr über Anonymity Sets in Bezug auf Whirlpool CoinJoin zu erfahren, hier ein Deep Dive in die Technologie...

Boltzmann bietet ein Python-Skript zur Berechnung der Entropie von Bitcoin-Transaktionen und der Verknüpfbarkeit ihrer Ein- und Ausgänge...  ... nicht das es langweilig wird ;)

BIP47 und PayNyms

BIP47 ermöglicht wiederverwendbare Zahlungscodes, die wie eine statische Bitcoin-Adresse beispielsweise auf einer Website angezeigt werden können. Der Vorteil des Zahlungscodes besteht darin, dass externe Beobachter keine Transaktionshistorie oder Salden aus dem Zahlungscode sehen können, wie dies bei einer Bitcoin-Adresse der Fall ist.

Auf einer hohen Ebene werden Details aus den Zahlungscodes beider Transaktionsteilnehmer kombiniert, was zu einem Adressenindex führt, der nur den beiden Teilnehmern bekannt ist. Auf diese Weise kann jeder, der sich mit seinen Paynyms gegenseitig folgt und sich mit der On-Chain-Benachrichtigungstransaktion mit ihm verbindet, Zahlungen an die resultierenden Adressen senden, die für diese bestimmte Verbindung eindeutig sind und aus dem jeweiligen Private Keys der Wallet abgeleitet werden. Es ist nicht erforderlich, dass ein aktiver Server jedes Mal eine neue Adresse liefert, wie es bei einem Zahlungsserver wie BTCPay Server der Fall ist. Dies ist ein Beispiel für einen BIP47-Zahlungscode:

“PM8TJK7rnkDXabzmo4ZyxX49JxdLWhbFANDr4eBCwk1shDEs1qDysW5hFCFr6hschwJe4ny7C7GcSnsNPzBYvE6giabxfJyNSrAWRJYCoHMo7iveHned”

Die Codes können auch als QR-Code und Nicknames dargestellt werden.

PayNyms sind eine Implementierung von BIP47, die in Samourai Wallet und Sparrow Wallet verwendet werden. Sie werden aus dem Hashing unseres Payment-Code abgeleitet, um einen eindeutigen Roboter-Avatar und einen eindeutigen Namen zu generieren. Der Avatar und der Name erleichtern dem Menschen die Interpretation und Handhabung. Samourai Wallet unterhält ein Verzeichnis von PayNyms. Wenn wir auf Tools > "Mixpartner finden" klicken, können wir uns mit anderen Paynyms verbinden. Hier die offizielle Site: https://paynym.is/. Dies ist ein Opt-in-Verzeichnis, das wir verwenden können, um unseren PayNym zu registrieren.

‌PayNym kann auf verschiedene Arten verwendet werden. Zum einen können wir sie verwenden, um direkte Zahlungen an das PayNym einer anderen Person zu tätigen, indem wir die On-Chain-Verbindung herstellen und den Index der geheimen Adressen generieren. Dabei sprechen wir speziell über nicht-kollaborative PayNym-Zahlungen. Sind Paynym's einmal gegenseitig Follower und connected können wir beliebieg oft BTC zwischen beiden hin und hersenden ohne dabei öffentlich einsehbare Onchaintransaktionen zu hinterlassen.

Dies ist nicht zu verwechseln mit kollaborativen Transaktionen mit anderen PayNyms, bei denen sich die PayNyms gegenseitig folgen ohne On-Chain-Benachrichtigungstransaktion (nicht connected).

Die andere Möglichkeit, PayNyms zu verwenden, sind kollaborative Transaktionen wie Stowaway und StonewallX2, die in späteren Abschnitten behandelt werden.


Samourai Wallet

Hier wird das Connecten über die OnchainBenachrichtigungstransaktion gezeigt:

  • Suchen des Paynym bzw Zahlungscode, an dem wir interessiert sind, paynym.is in diesem Beispiel verwendet
  • Im Samourai Wallet auf das blaue "+"-Zeichen klicken und dann auf das "PayNym-Symbol"
  • Sobald wir auf dem PayNym-Bildschirm landen, drücken wir erneut das blaue "+"
  • Dann auf "QR-Code scannen". Alternativ können wir einen kopierten Zahlungscode einfügen
  • Scannen des QR-Code nach dem Zahlungscode, mit dem wir eine Verbindung herstellen möchten

  • Die PayNym-Details werden auf dem Bildschirm angezeigt, klickt auf "FOLGEN"
  • Bestätigen, dass wir diesem PayNym folgen möchten
  • Sobald der Paynym als Follow angezeigt wird, können wir eine Verbindung herstellen, klick auf "CONNECT"
  • Es erscheint ein Dialog, in dem wir den Gesamtbetrag für die Verbindung, 15.000 Sats und die Minergebühr angeben. Klick auf "OK, FOLGEN"
  • Der PayNym-Kontaktstatus ändert sich und zeigt sowohl "Folgen" als auch "Verbunden" an, außerdem sehen wir die ausstehenden Bestätigungen

Sobald die On-Chain-Verbindung bestätigt wurde, können wir zurück zu unserem PayNym navigieren und auf das Papierflieger-Symbol klicken, um eine Zahlung an unseren Kontakt von unserem Wallet aus zu initiieren. Gebt dazu einfach den Betrag ein, überprüft die Transaktion und sendet sie.

Alternativ können wir aus unserem Post-Mix-Wallet direkt an den PayNym-Kontakt senden.

  • Navigiert zum Post-Mix-Wallet, klick auf das blaue "+"-Zeichen und wählt "Senden"
  • Klick auf das Avatar-Symbol in der oberen rechten Ecke
  • Wählt euren Kontakt aus der angezeigten Liste aus
  • Gebt den Betrag ein und überprüft die Transaktion vor dem Senden

Sparrow Wallet

Sparrow Wallet hat die gleichen Funktionen wie gerade eben beschrieben beim Senden von direkten PayNym-Zahlungen. Das Layout der Benutzeroberfläche ist nur ein wenig anders.

  • Navigieren im Sparrow Wallet zu "Tools" und dann zu "Show PayNym"
  • Kopiert einen Paynym oder Zahlungscode und fügt ihn in das Dialogfeld "Kontakt suchen" ein
  • Dann auf "Kontakt hinzufügen"

  • Sobald das PayNym hinzugefügt wurde, haben wir Möglichkeit, die On-Chain-Verbindung herzustellen, indem wir auf "Kontakt verknüpfen" klicken
  • Es erscheint ein Dialogfenster, in dem wir darüber informiert werden, dass diese Benachrichtigungstransaktion 546 Sats kostet. Klickt auf "Senden", um den Vorgang zu starten

  • Wir können direkt von unserem Wallet aus senden, indem wir zum Tab "Senden" navigieren
  • Klickt auf das Dropdown-Menü im Dialogfeld "Senden an" und wählt "PayNym oder Zahlungscode"
  • Wählt den verbundenen PayNym-Kontakt aus und klickt auf "Direkt senden"

‌             ‌


Collaborative Post-Mix Spending Tools:

Transaktionen, die wir zusammen mit einem Mixpartner durchführen... die beste Art um BTC aus dem Postmix Wallet auszugeben. Dabei werden UTXO's aus 2 unterschiedlichen Whirlpool Wallets genutzt um eine Transaktion zu erstellen - "2 PersonCoinjoin"

Stowaway

Stowaway ist ein kollaboratives Post-Mix Spend-Tool, das den ausgegebenen Betrag verschleiert. Die Person, mit der wir zusammenarbeiten, ist diejenige, die den gesendeten Betrag erhält. Wir liefern einige Inputs, der Empfänger liefert auch Inputs aus seiner Wallet, wir erhalten unsere Change Coins, der Empfänger erhält seine Change Coins plus den Betrag, den wir ihm gesendet haben, so dass der tatsächliche ausgegebene Betrag in diesen Outputs verborgen ist. Der Absender zahlt die volle Miner-Gebühr.

  • Das Bild oben zeigt eine Stowaway Transaktion Onchain
  • Wir können sehen, dass die drei Inputs 0.01, 0.00993439 und 0.01644414 BTC waren, also insgesamt ein Input von 0.03637853 BTC
  • Die beiden Outputs waren 0.00484087 und 0.03144414 (und 0.00009352 für die Mining Fee)
  • Der Sender hat in dieser Transaktion 0.015 an den Empfänger gesendet, aber dieser Betrag stimmt nicht mit Inputs und Outputs überein, da er verschleiert ist
  • Der Empfänger collaboriert indem er den 0.01644414-Input bereitstellte und diesen Betrag zuzüglich der 0.015-Zahlung für die Gesamtausgabe 0.03144414 zurückerhielt
  • Der 0.00484087 output war das Wechselgeld des Senders

Ein externer Beobachter hätte keine Möglichkeit zu wissen, dass diese Transaktion etwas anderes ist als das, was zum Ausgangszustand präsent war. Die üblichen Input-Ownership-Heuristiken sind aufgrund der multiplen Inputs und Outputs gebrochen, wobei berücksichtigt werden muss, dass mehrere Personen zu den Inputs beigetragen haben.

Jeder, an den wir eine Stowaway-Transaktion senden, muss Samourai Wallet oder Sparrow Wallet mit seinem PayNym verwenden. Zumindest sollten die PayNyms sich folgen, aber es ist nicht notwendig, die On-Chain-Benachrichtigungstransaktion durchzuführen, um die PayNyms zu "verbinden".

Collaborators müssen eine Möglichkeit haben, außerhalb des Wallet miteinander zu kommunizieren, z. B. mit einer Messaging-App, einem Telefonanruf usw. um die Transaktion zeitlich abzustimmen.


Samourai Wallet

Um eine kollaborative Stowaway-Transaktion in Samourai Wallet zu erstellen, stellen wir sicher, dass wir und Partner den PayNyms des jeweils anderen folgen, es ist jedoch nicht notwendig, die On-Chain-Verbindung herzustellen.

  • Navigiert zum Post-Mix-Wallet
  • Wählt das blaue "+"-Zeichen und dann "Senden"
  • Schaltet "Cahoots" ein
  • Wählt “Stowaway"
  • Wählt “Online"
  • Wählt euren Partner aus der Follower Kontaktliste aus
  • Gebt den Betrag ein, der versendet werden soll. Wählt "Transaktion überprüfen"
  • Festlegen der Mining Fee
  • Kommuniziert mit eurem Partner und lasst ihn wissen, dass er auf die Transaktion in seinem Wallet wartet - "listen for Cahoot"
  • Klickt auf “Begin Stowaway”
  • Details der Transaktion werden zwischen Peers kommuniziert, die über Tor auf der Soroban-Kommunikationsebene verschlüsselt sind
  • Wir sehen den Fortschritt des Transaktionsaufbaus in fünf Schritten
  • Wenn wir fertig sind, überprüfen wir die Details und wählen "Senden"
  • In einem Popup-Dialogfeld werden wir gefragt, ob wir sicher sind, dass diese Transaktion gesendet werden soll, und wählen "Ja"

Der Partner erhält seinen Input für die Transaktion zurück, wobei der Betrag, den wir ihm gesendet haben, dem neuen Output hinzugefügt wird. Der tatsächlich gesendete Betrag wird verschleiert.

Sparrow Wallet

Um eine kollaborative Stowaway-Transaktion in Sparrow Wallet zu erstellen, stellen wir sicher, dass wir und unser Partner den PayNyms gegenseitig folgen, es ist jedoch nicht notwendig, die On-Chain-Verbindung herzustellen.

  • Navigiert zum “Postmix” Wallet, dann zum "Send" Tab
  • Wählt die Dropdown-Option auf der rechten Seite des Feldes "Bezahlen an"
  • Wählt “PayNym oder Payment code.”
  • Scrollt im Popup-Fenster der Kontaktliste nach unten zum PayNym unseres Partners und wählt ihn an.
  • Wählt dann die Option "Send Collaboratively"
  • Vergebt ein Label für die Transaktion und legt den zu sendenden Betrag fest. Danach die Minergebühr festlegen.
  • Wählt dann das blaue "Click to add Mix Partner"-Symbol in der unteren linken Ecke des Transaktionsdiagramms
  • Auf dem Popup-Bildschirm sehen wir, dass unser ausgewählter PayNym-Partner bereits ausgewählt ist
  • "Weiter", um die Transaktion zu starten
  • Das ist der Zeitpunkt, an dem wir unserem Kooperationspartner informieren, dass es für ihn an der Zeit ist, in seinem Wallet nach seinem Mixpartner zu suchen. > "Tools, find Mix Partner"
  • Sobald der Mix-Partner die Anfrage akzeptiert, wird die Transaktion erstellt
  • Es erfordert einige Inputs von beiden Parteien, um die entsprechende Change Outputs (Wechselgeld) an jede Partei zurückzugeben
  • Das Wechselgeld des Empfängers beinhaltet den Betrag, den wir ihm senden
  • Wenn alles gut aussieht > "Signieren und Senden"

Sobald die Transaktion übertragen wurde, erhalten beide Paynyms eine Bestätigung.

Wir können diese Transaktion im Blockchain Explorer überprüfen, z. B. auf mempool.space oder OXT


Collaborative Post-Mix Spending Tools: StonewallX2

StonewallX2 ist ein weiteres kollaboratives Ausgabentool, das hilft, On-Chain-Heuristiken zu brechen und die Privacy zu wahren. StonewallX2-Transaktionen haben immer vier Ausgänge. Die Anzahl der Eingänge kann variieren. Mindestens zwei dieser Ausgaben sind in der Größe identisch, wodurch ein Fake-Output die gleiche Größe wie die eigentliche Ausgabe erzeugt. Die anderen beiden Outputs sind die Wechselgelder, die an beide Transaktionspartner zurückgegeben wird. Im Gegensatz zu Stowaway-Transaktionen können StonewallX2-Transaktionen an Dritte ausgegeben werden - die Ausgaben müssen nicht an den Kooperationspartner getätigt werden. Die kooperierenden Peers in einer StonewallX2-Transaktion teilen sich die Mining Gebühr 50/50. Der Input-Auswahlalgorithmus erzwingt, dass keine UTXOs, die dieselbe vorherige Transaktion verwenden, als Inputs zusammen in einer neuen Transaktion verwendet werden.

So sieht ein StonewallX2 (und ein Stonewall) on-chain aus:

Samourai Wallet

Um eine StonewallX2-Transaktion in Samourai Wallet zu erstellen, stellen wir sicher, dass wir und unser Partner den PayNyms des jeweils anderen folgen, es ist jedoch nicht notwendig, die On-Chain-Verbindung herzustellen. Wenn der Empfänger dieser kollaborativen Transaktio jedoch ein PayNym ist, müssen wir die On-Chain-Verbindung mit ihm herstellen.

  • Navigieren Sie zum Post-Mix Wallet
  • Klick aufs blaue "+" und "Senden" wählen
  • Fügen Sie die Empfängeradresse ein oder scannen Sie sie, oder wenn Sie sie an ein PayNym senden, wählen Sie sie aus Ihrer Kontaktliste aus, indem Sie auf das Personensymbol klicken
  • Wählen Sie "STONEWALLX2"
  • Wählen Sie "Online" aus
  • Wählen Sie Ihren Partner aus der Kontaktliste aus
  • Geben Sie einen zu sendenden Betrag ein
  • Klicken Sie dann auf "TRANSAKTION ÜBERPRÜFEN"
  • Legen Sie die Mining Gebühr fest
  • Überprüfen Sie die Details
  • Verwenden Sie Ihre bevorzugte Out-of-Band-Kommunikationsmethode, um Ihren Partner darauf aufmerksam zu machen, auf Ihre Anfrage aus seiner Wallet zu hören (listen for Cahoot)
  • Drücken Sie auf "BEGIN STONEWALLX2"
  • Sie werden sehen, dass die Anfrage gesendet wird
  • Sie werden den Fortschritt der fünf Schritte sehen
  • Dann haben Sie die Möglichkeit, die Transaktion vor der Übertragung zu überprüfen, Sie erhalten auch eine Eingabeaufforderung, in der Sie gefragt werden, ob Sie sicher sind, dass Sie die Transaktion übertragen möchten

Sparrow Wallet

Um eine StonewallX2-Transaktion in Sparrow Wallet zu erstellen, stellen Sie sicher, dass Sie und Ihr Partner den PayNyms des anderen folgen, es ist jedoch nicht notwendig, die On-Chain-Verbindung herzustellen. Wenn der Empfänger dieser kollaborativen Ausgaben jedoch ein PayNym ist, müssen Sie die On-Chain-Verbindung mit ihm herstellen.

  • Navigieren Sie zum Tab "Postmix" und dann zu "Senden"
  • Geben Sie die Adresse ein, für die Sie ausgeben möchten
  • Fügen Sie ein Label hinzu
  • Geben Sie einen Betrag ein
  • Festlegen der Mining Gebühr
  • Klicken Sie auf den blauen Münzstapel in der unteren linken Ecke des Transaktionsdiagramms und Sie werden feststellen, dass er sich in ein Personensymbol verwandelt
  • Wählen Sie im Popup-Fenster Ihren Partner aus der Dropdown-Liste der Kontakte aus
  • Wählen Sie dann "Weiter", um die StonewallX2-Transaktion zu starten
  • Dies ist der Zeitpunkt, an dem Sie Ihren Partner benachrichtigen, um auf Ihre Transaktionsanforderung von seiner Wallet aus zu warten, dies geschieht mit einer Out-of-Band-Kommunikationsmethode Ihrer Wahl

Sie warten einen Moment, während Ihr kooperierender Peer die Anforderung akzeptiert und die Transaktion erstellt wird. Beide Peers liefern die Inputs für die Transaktion.

Nach einem Moment wird Ihnen eine Zusammenfassung der erstellten Transaktion angezeigt. Wenn alles gut aussieht, wählen Sie "Sign & Broadcast".

Sie können diese Transaktion in Ihrem bevorzugten Explorer überprüfen, z. B. auf KYCP.org. Die Transaktion hat vier Ausgänge und zwei von ihnen sind gleich groß, einen 25.000sats Output und einen 25.000sats Fake-output. Ein externer Beobachter kann nicht sagen, welche Outputs zu welcher Entität gehören oder es einem Input zuordnen.


Non-Collaborative Post-Mix Spending Tools: Stonewall

Hier sehen wir, wie ein Stonewall (und ein StonewallX2) in der Blockchain aussehen. Stonewall ist ein nicht-kollaboratives Spendingtool, das hilft, On-Chain-Heuristiken zu brechen und Privacy zu wahren. On-Chain-, Stonewall- und StonewallX2-Transaktionen sind nicht zu unterscheiden. Beide haben immer vier Ausgänge. Die Anzahl der Eingänge kann variieren. Mindestens zwei dieser Ausgaben sind in der Größe identisch, wodurch ein FakeOutput die gleiche Größe wie die eigentliche Ausgaben erzeugt. Die anderen beiden Ausgaben sind das Wechselgeld.

Im Falle einer Stonewall-Transaktion erstellt die Wallet die Transaktion mit mehreren Inputs und vier Outputs, von denen nur einer die Ausgabe ist und die anderen drei alle an die Wallet des Senders zurückgesendet werden, wobei einer von ihnen die gleiche Größe wie die Ausgabe hat.

Sowohl Samourai Wallet als auch Sparrow Wallet versuchen standardmäßig, eine Stonewall-Transaktion zu erstellen, wenn wir Coins senden. Hier ist ein ordentlich gefülltes PostMix Wallet gefragt...

Samourai Wallet

So tätigen wir eine Stonewall-Transaktion mit Samourai Wallet:

  • Navigieren Sie zu Ihrem Post-Mix-Wallet und drücken Sie das blaue "+" Zeichen
  • Wählen Sie "Senden"
  • Fügen Sie die Adresse ein, zu der Sie senden möchten, oder scannen Sie sie
  • Geben Sie den Betrag ein, den Sie ausgeben möchten, und klicken Sie auf "TRANSAKTION ÜBERPRÜFEN"
  • Legen Sie die Miner-Gebühr fest
  • Standardmäßig ist der Stonewall-Schutz aktiviert, wenn die Wallet über die erforderlichen UTXOs verfügt, um die Transaktion zu erstellen. Sie werden die Entropie-Bits am unteren Rand bemerken, dies kann sich ändern, wenn Sie die Miner-Gebühr auf unterschiedliche Beträge verschieben. Die Wallet probiert verschiedene UTXOs für Eingaben aus, während Sie dies tun
  • Wenn alles gut aussieht, drücken Sie auf "SENDEN"
  • Bestätigen Sie, dass Sie senden möchten
  • Dann erhalten Sie den grünen Bestätigungsbildschirm, dass die Transaktion übertragen wurde

Sie können diese Transaktion in Ihrem bevorzugten Blockchain Explorer überprüfen, z. B. auf OXT. Die Transaktion hat vier Outputs und zwei von ihnen sind gleich groß, einen 42.000sats Output und einen 42.000sats FakeOutput. Für einen externen Beobachter können sie nicht sagen, welche Ausgänge zu der Entität gehören, die einen der Eingänge kontrolliert. Drei der vier Ausgaben werden an das Post-Mix-Wallet des Absenders zurückgegeben.

Sparrow Wallet

So kannst du einen Stonewall mit Sparrow Wallet erstellen:

  • Geben Sie die Adresse ein, an die Sie senden wollen
  • Fügen Sie ein Label für die Transaktion hinzu
  • Geben sie den Betrag zum Senden ein
  • Setzen Sie die Miner gebühr

Beachten Sie den Unterschied in der Art und Weise, wie die Transaktion aufgebaut ist, wenn Sie die Einstellung "Effizienz" auswählen. Es gibt zwei Ausgaben, die Ausgaben und das Wechselgeld:

Vergleichen Sie dies mit der Auswahl der Einstellung "Privacy". Dadurch wird eine Stonewall-Transaktion erstellt, bei der es vier Ausgaben gibt, einschließlich eines Lockvogel Output:

  • Klicken Sie auf "Transaktion erstellen"
  • Klicken Sie dann auf dem nächsten Bildschirm auf "Transaktion zum Signieren abschließen"

Wenn auf dem nächsten Bildschirm alles gut aussieht, wählen Sie "Signieren".

Nach dem Signieren können Sie die Transaktion übertragen.

Sie können diese Transaktion in Ihrem bevorzugten Blockchain Explorer überprüfen, z. B. auf mempool.space.

Die Transaktion hat vier Ausgänge, von denen zwei die gleiche Größe haben, eine 690.000sats Output und einen 690.000sats FakeOutput. Ein externer Beobachter kann nicht sagen, welcher Output zu der Entität gehört, die einen der Inputs kontrolliert.

Post-Mix Spending Tools:

Ricochet

Ricochet ist momentan nur im Samourai Wallet verfügbar.

Ricochet ist ein Post-Mix-Tool, das mehrere Hops zwischen der ersten Sendetransaktion und dem endgültigen Ziel erstellt. Diese Technik kann nützlich sein, wenn wir Bitcoin an ein Ziel senden, an dem der Empfänger durch unsere Transaktionshistorie schnüffelt, um festzustellen, ob es etwas an unseren UTXO's gibt, dass er nicht mag. Oft wird diese Art von Verhalten von Börsen oder einigen KYC Exchanges durchgeführt. Hier ein interessanter Artikel von 6102 für weitere Details zur CoinJoin-Kennzeichnung. Es gibt keinen Industriestandard, an den sich diese schwächelnden Unternehmen halten, sie werden willkürlich entscheiden, wie viele Hops innerhalb ihrer eigenen Risikotoleranz liegen. Aber die fünf Sprünge, die Ricochet zur Verfügung stellt, scheinen den Job gut zu machen. Samourai Wallet erhebt für diesen Service eine Gebühr von 100.000 Sat.

So verfassen Sie eine Ricochet-Transaktion in Samourai Wallet:

  • Navigieren Sie zu Ihrem Post-Mix-Wallet und drücken Sie das blaue "+"
  • Wählen Sie dann "Senden"
  • Schalten Sie die Option "Ricochet" ein
  • Aktivieren Sie dann die Option “Staggered delivery”, wenn Sie möchten, dass sich jeder Hop in einem separaten Block befindet

Andernfalls finden alle fünf Sprünge im selben Block statt.

  • Fügen Sie dann die Adresse ein oder scannen Sie sie
  • Geben Sie den Betrag ein, den Sie ausgeben möchten
  • Klicken Sie dann auf "TRANSAKTION ÜBERPRÜFEN"
  • Legen Sie die Miner-Gebühr fest (die Miner-Gebühr für alle fünf Hops ist angegeben).
  • Überprüfen Sie die Transaktionsdetails
  • Wenn alles gut aussieht, drücken Sie "SENDEN" und bestätigen Sie dann die Ausgabe, um die Transaktion an das Netzwerk zu senden

So sieht diese Ricochet-Transaktion im Testnet aus. Sie können den Hop's folgen.

Samourai Wallet  "Joinbot"

Eines der Probleme, die bei kollaborativen Transaktionen in Samourai Wallet bestehen bleiben, ist, dass wir jemanden brauchen, mit dem wir zusammenarbeiten können. Das kann für viele, insbesomders neue Benutzer ein Problem darstellen. Samourai bietet mit dem Joinbot eine Möglichkeit, einen collaborative Partner 24/7 verfügbar zu haben, ohne erst einen Partner zu suchen und darauf zu warten, dass dieser auch online ist. Joinbot wird von Samourai gehostet und ist fest im Wallet implementiert.

Gegen eine Gebühr für die Spam-Verhinderung können wir den JoinBot als zweiten Teilnehmer an einer kollaborativen STONEWALLx2-Transaktion auftreten lassen.

Es gibt einige Vorteile, wenn wir uns für JoinBot als unseren STONEWALLx2-Partner entscheiden.

  • Joinbot ist immer online, daher eignet es sich hervorragend für zeitkritische Zahlungen, bei denen wir keine Zeit haben, einen Partner zu finden, der online ist und uns helfen kann.
  • Joinbot verwendet nur UTXOs direkt aus dem Whirlpool-Postmix, so dass wir uns keine Gedanken über die Historie der kollaborierenden UTXOs machen müssen und wie sie vom Transaktionspartner gehandhabt wurden.
  • Da JoinBot 24/7 online ist, hat er immer UTXOs zum Remixen registriert, so dass die Chancen sehr gut stehen, dass wir mit extrem gut remixten UTXOs und einem perfekten Anonymityset zusammenarbeiten.

Joinbot Gebühren

Bei der Nutzung von JoinBot fällt zusätzlich zu den üblichen Miner-Gebühren eine Anti-Spam-Gebühr an. Die Servicegebühr beträgt 3,5 % des Sendebetrags oder 0,01 BTC, je nachdem, welcher Betrag niedriger ist. Wenn wir beispielsweise 0,1 BTC mit JoinBot als Partner senden, beträgt die Gebühr 0,0035 BTC, während für das Senden von 1 BTC die maximale Gebühr von 0,01 BTC verwendet wird. Die Gebühr wird in einer zweiten Transaktion automatisch mit einer anderen Art von kollaborativer Transaktion namens Stowaway bezahlt. Die Gebührentransaktion ist nicht mit der JoinBot-Transaktion auf der Blockchain verbunden. Dadurch wird sichergestellt, dass die STONEWALLx2-Transaktion, die mit JoinBot durchgeführt wird, wie jede andere STONEWALL-Transaktion aussieht, ein Observator kann keinen Unterschied feststellen.

Voraussetzungen für die Joinbot Nutzung

  • Wir benötigen mindestens zwei unabhängige UTXOs in unserer Wallet, um einen STONEWALLx2 mit JoinBot erfolgreich durchführen zu können.
  • STONEWALLx2 verlangt, dass beide Teilnehmer jeweils die Hälfte der Tx-Miner-Gebühr bezahlen. Dies wird bei JoinBot respektiert, aber wir erstatten JoinBot die Hälfte der Miner-Gebühr im Rahmen der Anti-Spam-Gebührentransaktion.
  • Das Maximal Limit für den Transaktionsbetrag beträgt 1,5 BTC um mit JoinBot als Kollaborateur zu zahlen. Der Mindestbetrag beträgt 546 Sats.

How to use...

Joinbot ist auf dem Standard-Sendebildschirm sowohl für Einzahlungs- als auch für Postmix-Konten als einfacher Toggle verfügbar.

Vom Sendebildschirm, erstellen wir wie gewohnt eine Transaktion und schalten JoinBot auf EIN. Wir hoffen, dass dies die Einstiegshürde für dieses Datenschutz-Spending-Tool senken wird, und jede Zahlung einfach zu einem CoinJoin macht.

Eine weitere Möglichkeit einen Transaktionspartner zu finden bietet die mittlerweile sehr gut genutzte Gruppe "Make every Spend a Coinjoin"!

  • Meeting place for #Cahoots spenders and collaborators to hook up and coordinate for transacting over Soroban.

Zu finden auf Telegram und SimpleX (die vorgehensweise der Gruppe findet ihr in den angepinnten Nachrichten für Cahoots etiquette)

Schlussfolgerung

In diesem Artikel wurde erklärt, wie die Wallet-Struktur in den Whirlpool-fähigen Wallets, Samourai Wallet und Sparrow Wallet, funktioniert.

Wenn wir die Vorteile der forward Privacy verstehen, die durch Whirlpool erzielt werden, können wir auch besser verstehen, welches Post-Mix-SpendingTool für welchen Job geeignet ist. Jedes Post-Mix-Tool wurde ausführlich erläutert, mit Schritt-für-Schritt-Anleitungen, wie man sie benutzt und welche zusätzlichen Vorteile wir für die Wahrung unserer Privacy von gemixten Coins erzielen.

Hauptquelle ist Samourai und Sparrow Docs/Wiki und der Gast-Artikel auf Bitcoin Magazine von . Vielen Dank für diesen und viele andere gute Guides & Artikel!!!

Hat euch der Artikel geholfen? Es ist anfangs etwas tricky und ich hoffe hier wurde manches etwas klarer ;)

Monero Beer

88qWZmAZ6AjGvnqNfBseVUHuXn7jppJ13j2aTe4Tp4qjKN7J5DKCZw9C8dhR7msN9BKfTKgMaJo18Tj9hPL9PUbw6CixQas

Onchain / LN Beer: https://coinos.io/FuSsY

Beer over Onion