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 hier erstmal ein paar technische Details...
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 Ihrer Wallet-Software im Hintergrund verwaltet, und aus Sicht des Benutzers können wir nahtlos zwischen den Wallets navigieren.
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 bis hin zur Post-Mix-Wallet und verbleiben dort ohne deterministische Verknüpfungen zur vorherigen Transaktionshistorie (forward Privacy).

Sowohl Samourai Wallet als auch Sparrow Wallet unterstützen die folgenden Adressformate:
- P2PKH-Adressen (Pay-to-Public-Key-Hash), die wie "17SkEw2md5avVNyYgj6RiXuQKNwkXaxFyQ" aussehen und auch als "Legacy" bezeichnet werden.
- Pay-to-Script-Hash (P2SH)-Adressen, die wie "3EEJFjZURxShNr2AoJtbfcvCB749yzP7LP" aussehen, auch als "nested SegWit" bezeichnet.
- Pay-to-Witness-Public-Key-Hash (P2WPKH)-Adressen, die wie "bc1qqmmc3s46efrdq0jglhf8l8jg0xw37exgne6q3k" aussehen, auch als "native SegWit" oder "Bech32" bezeichnet.
- Samourai Wallet hat Unterstützung, um diese Adressen auszugeben, Sparrow Wallet hat Unterstützung, um an diese Adressen auszugeben und 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 einfach wie jede andere Wallet verwendet werden.
- Pre-Mix Wallet: Hier landen UTXOs, sobald sie die Deposit-Wallet durch einen tx0 (Mix) verlassen haben. Die UTXOs befinden sich hier nicht lange, dies ist nur ein Durchgang, bei dem UTXOs als verfügbare Eingänge für 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 kommen die UTXOs hin, sobald sie ihren ersten Whirlpool CoinJoin durchlaufen haben. Diese UTXOs verbleiben hier solange wir wollen. Dadurch erzielen wir fortlaufend ansteigende Privacy, da diese UTXOs immer wieder zu weiteren Re-Mixen ausgewählt wird. 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 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. :)


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-Ausgang der Poolgröße entspricht. Wenn wir UTXOs aus unserem Deposit-Wallet für den Mix auswählen, durchlaufen diese zuerst einen tx0 (die Pool Eingangstransktion). Die Ergebnisse dieses tx0 variieren je nachdem, welche Poolgröße wir auswählen. Zum 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 in
- 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 in
- 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 in
- 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 in
- 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 mixen wollen. Wenn wir beispielsweise 1 BTC oder 100 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 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 mixen wir, wenn der Mempool leer ist und wir bei sehr geringer Low Priority den Mix starten können!
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 Ausgänge, das sind die Pre-Mix-UTXOs, die später in die Whirlpool CoinJoins gehen werden.
- Ein Ausgang für die Whirlpool-Koordinator-Gebühr.
- Ein Ausgang für die restlichen Coins, die "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 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 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.
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 von unserem angezeigten Guthaben ausgeschlossen.
Achtung: Bei Samourai 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.

In Sparrow Wallet wird die 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 verfolgen würde, die zu einer bekannten Entität gehört, dann würde er wissen, dass dieser Toxic Change 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!
Bei der "Wasserfalltechnik" beginnen wir 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.
Eine weitere Möglichkeit, die derzeit mit Samourai Wallet entwickelt wird, ist ein Atomic Swap mit Monero (XMR). Dies würde erfordern, dass wir eine separate Monero-Wallet wie Monerujo haben, da Monero nicht in Samourai Wallet implementiert wird. Aber im Grunde könnten wir die Bitcoin-Transaktion konstruieren, die vertrauenslos unsere Coins mit einem Peer für XMR zur Monero-Wallet tauscht und die Toxic Change zurück an unsere Bitcoin-Wallet sendet. Oder man geht mit den XMR shoppen ect.
Whirlpool UTXOs
Jeder Ausgang eines Whirlpool CoinJoin ist einer von fünf 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 sie. Dies ist Anonymität, 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...
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. 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 dargestellt werden.
PayNyms hingegen sind eine Implementierung von BIP47, die in Samourai Wallet und Sparrow Wallet verwendet werden. PayNyms 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 auf Tools > Mixpartnet 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.

PayNyms 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. Wenn wir speziell über nicht-kollaborative PayNym-Zahlungen sprechen, wenn wir nicht selbst die On-Chain-Benachrichtigungstransaktion durchführen, kennt der Empfänger nicht die Adressen zwischen den Wallets.
Dies ist nicht zu verwechseln mit kollaborativen Transaktionen mit PayNyms, bei denen sich nur die PayNyms gegenseitig folgen und nicht die On-Chain-Benachrichtigungstransaktion. Mit anderen Worten, wenn wir den Zahlungscode einer anderen Person in unsere Wallet importieren und mit der Berechnung der Adresse beginnen, um Bitcoin zu senden, weiß der Empfänger nicht, welche Adressen für diese Zahlungen zu beachten sind, es sei denn, es wird ein Connect zwischen beiden Paynyms durchgeführt (die On-Chain-Benachrichtigungstransaktion). In diesem Szenario möchten wir unseren Zahlungscode mitteilen, damit wir wissen, wie wir diese Adresse ableiten und beobachten können. Sobald ein Zahlungscode gescannt und die On-Chain-Benachrichtigungstransaktion durchgeführt wurde, ist keine direkte Zusammenarbeit des Empfängers erforderlich. Wir können jederzeit einfach damit beginnen, Zahlungen zu senden.
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 Sie den Zahlungscode, an dem Sie interessiert sind, paynym.is in diesem Beispiel verwendet
- Drücken Sie in Samourai Wallet auf das blaue "+"-Zeichen und dann auf das "PayNym-Symbol"
- Sobald Sie sich auf dem PayNym-Bildschirm befinden, drücken Sie erneut das blaue "+"
- Drücken Sie auf "QR-Code scannen", alternativ können Sie einen kopierten Zahlungscode einfügen
- Scannen Sie den QR-Code nach dem Zahlungscode, mit dem Sie eine Verbindung herstellen möchten

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

Sobald Ihre 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 Swir aus unserem Post-Mix-Wallet direkt an den PayNym-Kontakt senden.
- Navigieren Sie zu Ihrem Post-Mix-Wallet, drücken Sie das blaue "+"-Zeichen und wählen Sie "Senden"
- Drücken Sie auf das Avatar-Symbol in der oberen rechten Ecke
- Wählen Sie Ihren Kontakt aus der angezeigten Liste aus
- Geben Sie Ihren Betrag ein, überprüfen Sie die Transaktion und senden Sie

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 Sie in Sparrow Wallet zu "Tools" und dann zu "Show PayNym"
- Kopieren Sie einen Zahlungscode und fügen Sie ihn in das Dialogfeld "Kontakt suchen" ein
- Dann auf "Kontakt hinzufügen"


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


- Sie können direkt von Ihrem Wallet aus senden, indem Sie zum Tab "Senden" navigieren
- Klicken Sie auf das Dropdown-Menü im Dialogfeld "Senden an" und wählen Sie "PayNym oder Zahlungscode"
- Wählen Sie Ihren verbundenen PayNym-Kontakt aus und klicken Sie auf "Direkt senden"


Collaborative Post-Mix Spending Tools: 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 dieser Summe verborgen ist. Der Absender zahlt die volle Miner-Gebühr.

- Das Bild oben zeigt eine Stowaway Transaktion Onchain
- Sie können sehen, dass die drei Eingaben 0,01, 0,00993439 und 0,01644414 BTC waren, also insgesamt Input von 0,03637853 BTC
- Die beiden Outputs waren 0,00484087 und 0,03144414 (und 0,00009352 für die Mining Fee)
- Der Spender 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 collaborated 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 Spenders
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.
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.
- Navigieren Sie zu Ihrem Post-Mix-Wallet
- Wählen Sie das blaue "+"-Zeichen und dann "Senden"
- Schalten Sie "Cahoots" ein
- Wählen Sie “Stowaway"
- Wählen Sie “Online"

- Wählen Sie Ihren Partner aus Ihrer Kontaktliste aus
- Geben Sie den Betrag ein, den Sie senden möchten. Wählen Sie "Transaktion überprüfen"
- Festlegen der Mining Fee
- Wenden Sie sich an Ihren Partner und lassen Sie ihn wissen, dass er auf Ihre Transaktion in seinem Wallet wartet - "listen for Cahoot"
- Klicken Sie “Begin Stowaway”

- Details der Transaktion werden zwischen Peers kommuniziert, die über Tor auf der Soroban-Kommunikationsebene verschlüsselt sind
- Sie sehen den Fortschritt des Transaktionsaufbaus in fünf Schritten
- Wenn Sie fertig sind, überprüfen Sie die Details und wählen Sie "Senden"
- In einem Popup-Dialogfeld werden Sie gefragt, ob Sie sicher sind, dass Sie diese Transaktion übertragen möchten, und wählen "Ja"

Der Partner erhält seinen Input für die Transaktion zurück, wobei der Betrag, den Sie 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.
- Navigieren Sie zum “Postmix” Wallet Tab, dann zum "Send" Tab
- Wählen Sie die Dropdown-Option auf der rechten Seite des Feldes "Bezahlen an"
- Wählen Sie “PayNym oder Payment code.”

- Scrollen Sie im Popup-Fenster in Ihrer Kontaktliste nach unten zum PayNym Ihres Partners und klicken Sie darauf
- Wählen Sie dann die Option "Send Collaboratively"

- Geben Sie ein Label für Ihre Transaktion ein, geben Sie den zu sendenden Betrag ein und legen Sie die Miner-Gebühr fest
- Wählen Sie dann das blaue "Click to add Mix Partner"-Symbol in der unteren linken Ecke des Transaktionsdiagramms

- Auf dem Popup-Bildschirm sehen Sie, dass Ihr ausgewählter PayNym-Partner bereits ausgewählt ist
- Wählen Sie "Weiter", um die Transaktion zu starten
- Dies ist der Zeitpunkt, an dem Sie Ihren Kooperationspartner darüber informieren, dass es für ihn an der Zeit ist, in seinem Wallet nach seinem Mixpartner zu suchen. "Tools, find Mix Partner"

- Sobald Ihr 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 Sie ihm gesendet haben
- Wenn alles gut aussieht, wählen Sie "Signieren und Senden"

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

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

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 Köderausgang die gleiche Größe wie die eigentliche Ausgabe erzeugt. Die anderen beiden Ausgaben sind die Wechselgelder, die an beide Mitarbeiter 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ß, eine 25.000 Sat-Ausgabe und eine 25.000 Sat-Lockvogel. 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 Sie, wie ein Stonewall (und ein StonewallX2) in der Blockchain aussehen werden. Stonewall ist ein nicht-kollaboratives Ausgabentool, 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 Köderausgang die gleiche Größe wie die 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 verfassen, wenn wir Coins senden.

Samourai Wallet
So tätigen Sie 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 mempool.space. Die Transaktion hat vier Ausgänge und zwei von ihnen sind gleich groß, eine 42.000 Sat-Ausgabe und eine 42.000 Sat-Lockvogel Ausgabe. 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.000 Sat-Ausgaben und eine 690.000 Sat-Lockvogel. 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.

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 Sie Bitcoin an ein Ziel senden, an dem der Empfänger durch Ihre Transaktionshistorie schnüffelt, um festzustellen, ob es etwas an Ihrem UTXO gibt, das er nicht mag. Oft wird diese Art von Verhalten von Börsen oder einigen Händlern durchgeführt. Lesen Sie diesen 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.

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.
Das original Guide wurde als Gast-Artikel auf Bitcoin Magazine von Econoalchemist verfasst. 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 ;)
Onchain / LN Beer: https://coinos.io/FuSsY
Lightning only Beer: [email protected]
