Nodesignal-Talk - E187 - JoinMarket - podcast episode cover

Nodesignal-Talk - E187 - JoinMarket

Jun 22, 20241 hr 1 minSeason 2Ep. 187
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

In der heutigen Folge sprechen Jan-Paul und Thorsten mit Curemici und Systemling über Joinmarket, eine alternative Coinjoin-Möglichkeit. Wir erklären Coinjoins grundsätzlich, erklären die Funktionsweise und die Schwierigkeiten von Joinmarket. Eine weitere Folge in unserer losen Privacy-Reihe.
Von und mit:

- Jan-Paul

- Thorsten

- Curemici

- Systemling

Produziert und geschnitten: Thorsten

Hier könnt ihr uns eine Spende über Lightning da lassen: ⚡️nodesignal@getalby.com
Wenn euch unsere Arbeit gefällt, könnt ihr unsere Folgen auch auf Podcasting 2.0 Plattformen, wie Fountain, PodcastGuru, Castamatic, Breez oder Podverse hören und uns so eine kleine Aufmerksamkeit da lassen. Danke an alle, die die Bitcoin Community mit ihren Spenden unterstützen! Mit diesen Spenden wird unter anderem unser Bounty Programm verwirklicht, in dem ihr euch für die Mitarbeit an einem Projekt eine Belohnung sichern könnt.
Für Feedback und weitergehenden Diskussionen kommt gerne in die Telegramgruppe von Nodesignal und bewertet uns bei Spotify und Apple Podcasts, das hilft uns sehr. Folgt uns auch gerne bei Nostr:npub1n0devk3h2l3rx6vmt24a3lz4hsxp7j8rn3x44jkx6daj7j8jzc0q2u02cy und Twitter.


Timestamps:

(00:00:00) Intro

(00:00:22) Begrüßung, Blockzeit und Vorstellung

(00:04:27) Warum Coinjoins?

(00:09:11) Einführung JoinMarket

(00:14:00) Grundprinzip Maker & Taker Modell

(00:19:16) Fidelity Bonds & Sybil Attacken

(00:25:59) Wie richtet man JM ein?

(00:32:45) Hohe On-Chain Gebühren

(00:43:04) Komplexität der Software

(00:45:57) Liquiditätsfragen

(00:52:53) Best Practise JoinMarket

(00:56:50) Wo findet man Ressourcen?

(00:58:15) Letzte Worte, V4V und Outro

Transcript

Intro

Jan-PaulJan-Paul

[Musik]

Herzlich willkommen bei Node-Signal, Deine Bitcoin-Frequenz. Heute mit deinen Nodes dem Thorsten. Hallo Thorsten. Hi. Grüß dich. Dann haben wir zwei neue Nodes bei uns im Netzwerk gefunden. Da ist einmal der Systemling. Hi Systemling. Ja, schönen guten Tag. Na, Bend. Und ich habe mir gegenüber sitzen, ich glaube in einer Premiere, dass wir einen Gast im selben Studio haben, den Curmici. Hallo Curmici. Moin moin. Moin moin. Grüß dich. Sehr gut.

Bevor wir loslegen und euch ein bisschen vorstellen, wer von euch beiden hat denn die Blog-Zeit für mich? Also ich habe hier die 846649. Da gehe ich mit. Da gehst du mit, das ist ja schon mal gut. Das machen wir alles später, das muss ich mir jetzt nicht extra aufschneiden. Hab ich auch. Sehr gut. Ja, wir sprechen heute über das Thema Joint Market. Ihr habt es vielleicht schon am Titel dieser Episode erkannt.

Und ja, ich denke es ist an der Zeit, dass wir das Thema Joint Market mal aufräumen, beziehungsweise angehen, da ja jetzt im Zuge der Entwicklungen der letzten Wochen und Monate, insbesondere Richtung Samurai und dem Impact, den das auch auf die andere Coinjoin-Implementierung, nämlich Wasabi hatte, ja, ist im Moment, glaube ich, Joint Market die einzige wirklich noch richtig funktionierende

Coinjoin-Implementierung. Deswegen gehen wir heute das Thema mal an und versuchen da mal so ein bisschen durchzugehen. Der Thorsten schüttelt schon den Kopf oder wiegt den Kopf hin und her. Thorsten, was ist deine Anmerkung? Das ist jetzt auch ganz aktuell gewesen, zumindest, also inwieweit das natürlich jetzt alles schon funktional ist,

muss man jetzt natürlich mal sehen. Aber was jetzt passiert ist, es war jetzt ja zum 1. Juni, hat ja Seagate Next von Wasabi ihren zentralen Koordinator abgeschaltet und quasi ein paar Stunden später sind dann direkt irgendwie in der Software schon irgendwelche neuen Koordinatoren aufgetaucht. Also irgendwie, glaube ich, so acht bis zehn, die dann auf einmal dann aufgetaucht waren. Natürlich ist jetzt immer die Frage, wie viel Liquidität die da enthalten, aber trotzdem waren da schon

Alternativen irgendwie gefunden worden. Also da muss man natürlich mal sehen, wie viel die leisten können. Aber zumindest ist da, dass Wasabi in der Form dann trotzdem immer noch funktionsfähig ist. Ganz im Gegensatz natürlich zur Samurai. Genau, das ist erstmal abgeschaltet. Genau, aber jetzt machen wir doch mal eine kurze Vorstellungsrunde. Ich weiß nicht, wer von euch beiden möchte denn mal starten und so ein bisschen was von sich,

was er auch immer teilen möchte. Vielleicht, Curemici, vielleicht starten wir mal mit dir. Was kannst du über dich sagen? Ja, ich habe einen technischen Hintergrund, allerdings keinen IT-Hintergrund. Bin schon auch ein paar Tage im Bitcoin-Space und habe quasi von Anfang an schon meine Offline-Wallet gehabt, als das noch alles nicht so einfach war. Und bin dann vor vier Jahren quasi auf den RaspiBlitz gestoßen,

um als Möglichkeit auch einen Fullnode zu haben. Und mit dem RaspiBlitz hat man halt auch dieses JoinMarkt mitbekommen. Und habe damit auch dann angefangen, mich damit zu beschäftigen. Und seitdem läuft auch JoinMarkt bei mir auf dem Node. Sehr schön. Werden wir gleich, glaube ich, noch ein bisschen vertiefen. Erstmal wollen wir den Systemling nochmal kurz Gelegenheit geben. Systemling, was magst du über dich teilen?

Ja, ich bin schon länger mal JoinMarkt-Nutzer gewesen. Das hat angefangen, ich glaube, so 2016/2017, wo ich dann mal klein rum experimentiert habe, wo es, glaube ich, auch noch kein Wasabi und kein Samurai in so dem Umfang gab. Und da war JoinMarkt damals noch über ganz wilde Command-Line-Gedönses. War das so mit die einzige Lösung, wie man ein bisschen mehr Privatsphäre auf der Blockchain gewinnen konnte.

Und war damals die erste Lösung so und ein bisschen rum experimentiert, dann ein bisschen aus den Augen verloren. Man kennt das ja alles, so ein bisschen Jitcoin-Phase und so weiter. Da waren auf einmal andere Sachen wichtiger, als das einzig wahre Bitcoin. Und in letzter Zeit hat man ja eine größere Auswahl gehabt an Möglichkeiten. Aber jetzt leider durch diesen Einschnitt musste man sich dann doch wieder zu den alten JoinMarkt-Zeiten erinnern

und nochmal da einsteigen und gucken, was sich da verändert hat. Und da hat sich einiges verändert. Sehr schön. Thorsten, wollen wir den Einstieg vielleicht so suchen, dass wir nochmal erklären, warum wir überhaupt Coinjoins brauchen?

Warum Coinjoins?

Jo, kann man gerne machen. Also vielleicht, ich mache einfach mal einen Aufschlag und dann können gerne, wer mag, gerne nochmal ergänzen. Warum brauchen wir Coinjoins? Grundproblematik ist, Bitcoin hat eine offene Datenbank, die sich Time Chain Blockchain nennt. Da kann jede Transaktion im Endeffekt öffentlich nachgesehen werden, wer was wie macht. Wir sind nicht anonym dort, wir sind pseudonym. Das ist auf der einen Seite schon mal in Ordnung.

Aber natürlich, sobald man weiß in irgendeiner Form oder zumindest einige Informationen zu Transaktionen hat, lässt es sich natürlich sehr, sehr einfach nachzuvollziehen, wer was wie wo jetzt dann ein Bitcoin-Netzwerk gemacht hat. Und um diese Privatsphäre in irgendeiner Form gegenüber für sich selber, aber auch dann gegenüber anderen zu verbessern, gibt es halt Coinjoins, was im Endeffekt dann auch kollaborative Transaktionen sind.

Was bedeutet, ich suche mir ein paar Leute und wir machen zusammen Transaktionen und wir verschieben im Endeffekt unsere UTXOs von einer Adresse, die wir kontrollieren, auf eine andere Adresse, die wir auch kontrollieren und machen das quasi in einem Block, dass halt mehrere Leute ihre Inputs liefern und auch dann gleichzeitig Leute weiter ihre Inputs danach behalten.

Aber es ist dann schwierig nachzuvollziehen, wenn man halt vorher wusste, okay, auf der Adresse lagen die Funds von Jan-Paul, wenn wir das zu viert jetzt in dem Fall dann machen würden und im Nachgang nach so einem Coinjoin wüssten wir es halt einfach nicht mehr, welche Adresse jetzt explizit von Jan-Paul ist. Wir wüssten halt, dass Jan-Paul eine Adresse davon vielleicht gehört, von den Vieren,

aber wir können es nicht mehr mit der Genauigkeit halt sagen. Und das ist im Endeffekt das, was wir eigentlich erreichen wollen, diese Wahrscheinlichkeit, dass wir das einer bestimmten Person zuordnen wollen, so niedrig wie möglich halt kriegen, dass wir diese Heuristiken, die da diese Chain-Analysefirmen und so weiter verwenden, dass die quasi keine Treffer oder quasi mit ihren Trefferwahrscheinlichkeiten

so schlecht wie möglich halt sind, um die Entropie hochzuhalten. Und das ist im Endeffekt dann unsere Idee, warum wir Coinjoins benutzen. Und wer mag, kann gerne jetzt nochmal was ergänzen. Ja, gerne Systemling, hau rein.

Ja, also würde ich vollkommen unterstützen. Das ist ja so mit diesen öffentlich einsehbaren Daten. Die privaten Finanzdaten liegen offen darum, das wird bestimmt jetzt schon öfter im Podcast erwähnt, aber dass man da einen Riegel vorschiebt, dass nicht jeder nachvollziehen kann, wo man was gekauft hat und wie viel Satz man so besitzt, das sollte selbstverständlich sein, dass man das irgendwie in einer Form privat halten kann.

Und deshalb sollte es ja wohl klar sein, dass man Lösungen wie Wasabi nutzen darf und auch eigentlich sollte, meiner Ansicht nach. Von dir noch was, Curemici? Ja, ich kann das nur bestätigen, dass man hier diese unterschiedlichen Möglichkeiten hat, um das zu verschleiern, wo was hingeht. Und klar, wenn man an der Börse gekauft hat, weiß die Börse natürlich, wo es hingeht und das will man natürlich damit verhindern.

Okay, also es geht im Grunde darum, um den Link zwischen deinen UTXOs und deiner Identität irgendwie aufzubrechen oder zumindest aufzubrechen oder zu verschleiern oder möglichst die Heuristiken, die diesen Link herstellen könnten zwischen dir, also deiner Identität und deinen UTXOs, das irgendwie so aufzuheben oder zu schwieriger zu machen, quasi das nachzuverfolgen. Das ist quasi der Sinn von diesen Coinjoins.

Wichtig ist vielleicht hier nochmal an der Stelle noch mal als kleine Ergänzung zu sagen, hatte ich eben nicht gesagt, dass wir damit Vorwort Privacy bekommen. Was bedeutet, in dem Fall, den ihr gerade beschrieben habt, wir haben Satz bei einer Börse gekauft und machen dann ein Coinjoin. Die Börse weiß natürlich immer noch, dass wir sie gekauft haben, weil sie die KYC-Informationen von uns hat.

Aber wenn wir dann ein Coinjoin machen und damit dann irgendwas anderes machen, weiß die Börse dann nicht mehr, wohin wir das dann von da aus hin verschickt haben. Also was wir danach damit machen, weil sie nicht mehr genau zuordnen kann, welches UTXO jetzt in diesem Coinjoin von uns ist, das was wir gerade eben gesagt haben. Also wir erreichen dadurch eine Privatsphäre in die Zukunft, also quasi was wir damit machen.

Was hinter uns liegt, wird natürlich davon abgeschnitten, aber die KYC-Informationen in dem Fall oder die Informationen, dass wir in dieser Transaktion vorher beteiligt waren, ist der Intensität da trotzdem bekannt gewesen. Unabhängig davon, ob es jetzt eine Börse war oder wenn wir es Peer-to-Peer gekauft haben.

Wenn ich zum Beispiel beim Systemling jetzt Satz gekauft habe und das dann in ein Coinjoin reinpacke, weiß Systemling immer noch, dass ich die gekauft habe, aber er weiß nicht, wo sie danach hingegangen sind. Das ist vielleicht auch noch ein wichtiger Hinweis. Ja cool, dann wollen wir rüber schwenken zu JoinMarket. Ich überlege gerade, wie wir den Einstieg finden. Also vielleicht, ich mache es mal so, wie ich das verstanden habe.

Der wesentliche Unterschied zwischen JoinMarket und den anderen Coinjoin-Implementierungen, wie da jetzt Samurai es war und Wasabi jetzt vielleicht wieder sein wird, ist, dass wir bei Wasabi und Samurai immer einen zentralen Koordinator hatten und den gibt es jetzt bei JoinMarket eben nicht. Das wäre in meinen Augen der wesentliche Unterschied. Ja, bei JoinMarket ist der, der diesen Coinjoin initiiert, eigentlich der Koordinator. Der hat quasi die Macht über diesen Coinjoin.

Das ist der große Unterschied. Weil er hat alle Parameter in der Hand, mit denen er die Liquidität, die dort am Markt ist, auswählen kann. Aber ist das dann der Maker? Ist das der, der quasi einen Coinjoin koordiniert? Nein, der Taker ist der, der den Coinjoin macht. Er sagt, ich will jetzt eine 1.583.000 Satz mixen und damit sucht er, sagt er, ich will das mit acht oder zehn Makern machen. Die Maker sind die, die die Liquidität bereitstellen zum Coinjoin.

Und sagt, ich will das mit zehn jetzt machen. Und dann werden halt zehn Maker ihre Liquidität einbringen. Und dann gibt es halt zehn Outputs, genau mit diesem 1.583.000 Satz. Und natürlich dann die entsprechenden Change Outputs. Und das ist halt auch ein Unterschied zum Beispiel zu Samurai, soweit ich das verstanden habe. Da hat man ja feste Beträge und hat dafür aber auch dann kein Change. Das Change hat man ganz am Anfang, wenn man in diese festen Pools einbringt.

Und das Change soll man dann halt irgendwie entsorgen, sodass es nicht mehr im Zusammenhang ist. Bei Join Market hat man halt ein anderes Konzept. Bei Join Market hat man mehrere Wallets. Die nennt man bei Join Market Mixdepth beziehungsweise bei der GUI Jam, die es gibt, nennt man die Jars. Und das sind verschiedene Stufen. Das heißt, der CoinJoin wandert in die nächste Stufe und das Change bleibt zurück, sodass die in unterschiedlichen Wallets sind.

Natürlich über mehrere Mischvorgänge können die wieder in irgendeiner Heuristik zusammengeführt werden. Deswegen muss man da halt auch das als mehrstufigen Prozess sehen. Also es ist vielleicht anders, als wenn ich jetzt bei Wasabi, habe ich es verstanden, hat man hunderte oder vielleicht hundert oder hundertfünfzig Transaktionen, die zusammengeworfen werden und kriegt damit halt eine Heuristik, einen Bruch da drin durch die schiere Anzahl.

In Join Market ist es eher so, dass man durch mehrere Vorgänge, die man nacheinander macht, seine Privacy bekommt. Also mit einem Mischvorgang alleine kriegt man noch keine deutliche Verbesserung der Privacy, sondern nur indem man halt das öfters nutzt. Du sprichst jetzt immer von Mischvorgängen, aber ist das nicht eigentlich eine kollaborative Transaktion? Ja, man mischt aber letztendlich schon die UTXO durch.

Aber es ist natürlich eine gemeinsame Transaktion, weil es ist eine große Transaktion, die halt verschiedene Inputs und verschiedene Outputs hat. Mir war es wichtig, ich glaube Thorsten, du hast den Punkt auch in Gesprächen, die wir schon hatten, immer mal wieder gestresst, dass es einen Unterschied gibt zwischen kollaborativen Transaktionen und Mixing Services, die man in Anspruch nehmen kann. Vielleicht kannst du das nochmal rausarbeiten, was da jetzt der wesentliche Unterschied ist.

Naja, also ich glaube, der große Unterschied zwischen das, was man lernt, läufig als Mixing Service und als kollaborative Transaktion oder das, was wir als Coinjoin-Protokolle im Bitcoin-Umfeld haben, sind ja primär der Unterschied, dass wir bei Coinjoins, respektive kollaborativen Transaktionen, jederzeit Herr über unsere eigenen Funds sind. Das heißt, die UTXOs, also wir haben immer vollen Zugriff auf die Adressen, wo die UTXOs draus liegen.

Bei einem klassischen Mixing Service, das ist ein Castorio Service, da schiebe ich 10 Bitcoin hin und kriege 10 andere Bitcoin wieder raus. Aber ich verliere trotzdem Zugriff dann in diesem Moment auf meine UTXOs. Und das eine ist halt ein klassischer Geldwäscheservice, Dienstleistung, das ist ja in vielen Ländern, wo es eigentlich klar ist, dass das illegal ist.

Und bei dem anderen koordinieren wir im Endeffekt zu viert oder mit wie vielen Leuten auch immer eine Transaktion zusammen und schieben unsere UTXOs von einer Adresse auf eine andere. Also was anderes machen wir da ja nicht. Und das ist halt dann der große Unterschied.

Grundprinzip Maker & Taker Modell

Okay, vielleicht Systemling, kannst du es nochmal erklären? Der Krumiji hatte ja gerade schon die Begriffe Taker und Maker genannt gehabt. Aber vielleicht können wir das nochmal von Anfang an erklären. Ich bin jetzt der User Jan-Paul und ich möchte jetzt Join Market nutzen, um ein CoinJoin durchzuführen. Wie geht das überhaupt los? Ich kann ja jetzt nicht einfach sagen, ich habe jetzt hier eine UTXO in meiner Sparrow Wallet und die will ich jetzt für Join Market benutzen.

Da müssen ja noch ein paar Schritte vorher gemacht werden. Ich möchte da hinkommen, dass man einmal den Prozess durchgeht. Was muss ich tun als User, wenn ich jetzt Join Market nutzen muss? Und was ist dann halt dieser Taker und dieser Maker in diesem ganzen Spiel? Ja genau, also um das Ganze nutzen zu können, musst du dir erstmal diese Software drauf schaffen. Das ist ja bei Samurai und Wasabi ähnlich gewesen. In dem Fall, dieses Join Market, gab es halt damals als Command-Line-Version nur.

Mittlerweile haben wir da schöne Web-UIs, zum Beispiel das gerade angesprochene Jam. Oder Join Market hat auch so eine QT-Version, dass man halt als Desktop-Programm laufen lassen kann. Das Programm läuft dann bei dir, entweder zum Beispiel auf der Umbral oder Raspberry Blitznode oder halt eben auf deinem Laptop. Und somit hast du dann Zugriff erstmal auf die Software und kannst damit das weitere Join Market-Netzwerk erreichen. Das läuft darüber, dass du eine eingebaute Wallet hast.

Da schickst du dann eine UTXO drauf, die du gerne kollaborativ transaktioniert haben möchtest. Oder wie man dazu ja sagen soll. Join Market ist ein Mixing. Ja genau, Mixen ist da teilweise einfacher, wenn auch nicht ganz richtig. Auf jeden Fall schickst du die dann hin, dass du die in der internen Join Market Wallet hast.

Und dann wird die Join Market Wallet über IRC-Server, so alte Internet Relay Chatted Server, ganz normal einfach eine Nachricht rausschreiben, quasi schon im Cleartext und sagen, ich würde gerne eine Transaktion starten mit euch da draußen. Und da soll eine Größe von, sagen wir mal, einem Bitcoin hinterher rauskommen. Das heißt, diese quasi Pool-Größe, ein Bitcoin, wenn man das jetzt mal äquivalent zu Samurai mal sagen möchte.

Dann tritt man selber als Taker auf und man nimmt quasi somit ein Angebot an von den Liquiditätsbereitstellern. Das sind in dem Fall die Maker. Das sind andere Nodes in diesem IRC-Server, die quasi darauf warten, dass Leute sich melden, die Interesse haben, eine Transaktion zu machen. Und diese Maker, die stellen Liquidität bereit. Das heißt, die haben auf ihrer Join Market Wallet immer einen gewissen Betrag an Zerts rumliegen. Das ist teilweise gar nicht so wenig.

Man muss ja im Kopf behalten, dass Join Market immer eine Hot Wallet auch darstellt. Und da sehe ich teilweise Beträge, irgendwie fünf Bitcoin und teilweise mehr, wo ich schon ein bisschen Respekt vorhabe, was natürlich auch ein bisschen für die Sicherheit der Software spricht, scheinbar, statt zu funktionieren.

Naja, und wenn ich jetzt da die Nachricht reingeschrieben habe, ich möchte ein Output von einem Bitcoin haben, dann melden sich andere, also diese Maker melden sich dann bei mir quasi über eine DM auf diesem IRC-Channel und geben ihre Bedingungen an. Die können nämlich sagen, ja, ich würde das gerne machen und ich hätte gerne eine Gebühr von 20 PPM in dem Fall oder eine fixe Gebühr von 100 Satoshi, damit ich da mitmache.

Dann kann ich dieses Angebot annehmen und die Join Market Software, das macht die alle automatisch im Hintergrund, die nimmt dann die günstigsten Angebote an. Ich stelle einmal vorher ein, wie viele Runden ich mixen möchte oder conjuren möchte. Ich sage, wie viele Mixing Partner ich jeweils haben möchte pro Runde. Ich glaube, voreingestellt sind so neun ungefähr.

Und dann sucht die Software halt mir automatisch in den ganzen Order Book, das heißt in den ganzen Angeboten, die neun günstigsten raus und erstellt zusammen mit denen so eine kollaborative Transaktion, nimmt deren Inputs rein, setzt die Outputs fest und hinterher wird die Transaktion dann veröffentlicht, nachdem sie von allen Partnern signiert wurde.

ThorstenThorsten

Vielleicht nochmal einen kleinen Schritt zurück für mein Verständnis oder auch fürs Verständnis unserer Zuhörer.

Wir haben das jetzt ja so, wenn wir so ein Maker und Taker Modell haben, das ist ja so, du hast es gerade auch beschrieben, dass es so Angebote auf dem Markt gibt, was ja primär so ein quasi ein globales, ist wahrscheinlich ein globales, ich weiß nicht, ob es da irgendwie noch irgendwelche Subnetze oder sowas gibt, aber es ist so ein Order Book im Endeffekt, wo wir einen Marktplatz haben,

wo Leute halt sagen, okay, hier, ich stelle Liquidität bereit, davon hattet ihr gerade auch schon beide gesprochen, und dass die Leute, die Liquidität bereitstellen, im Endeffekt diejenigen sind, die dann sagen, okay, ich möchte für, wenn ich Liquidität bereitstelle, da auch eine kleine Kompensation für haben und aus diesen Angeboten an Liquidität suche ich mir dann als Taker, als derjenige, der wirklich einen Coin-Join durchführen möchte,

dann welche dann aus, oder die Software macht das automatisiert, so wie du es gerade beschrieben hast. Ja, so ist das richtig, genau. Die Maker warten quasi die ganze Zeit darauf, dass Leute sich melden, haben natürlich die Hoffnung dabei, dass sie ein paar Satz verdienen mit dem ganzen Service und parallel nehmen sie ja auch dann durchgehend an neuen Coin-Join-Runden teil, gewinnen quasi auch ein bisschen Privatsphäre für ihre eigenen Coins.

Das heißt, wenn man das mal ausprobieren möchte, man kann ja da ein paar Sats liegen lassen, selber mal als Maker aktiv werden, wenn man so eine Citadel zum Beispiel oder die Umbrel da drauf hat, dann kann man das ja einfach mal ausprobieren. Da würde ich jetzt keine großen Gewinne mit erwarten,

Fidelity Bonds & Sybil Attacken

weil wie gesagt, da muss man schon wirklich sehr viel Coins da rumliegen lassen und auch so einen Fidelity-Bond, nennt sich das, hinterlegen.

Das ist quasi eine getimelockte Menge an Sats, die man einmal, ja, festschreibt, ich glaube für so ungefähr sechs Monate teilweise, dass man an diesen Sats nicht rankommt und das erhöht dann die Chance, dass man selber als Maker ausgewählt wird, weil man somit quasi symbolisiert, dass man es "ernst" meint, in Anführungsstrichen, dass man auch wirklich nur eine Identität hat und nicht zehn verschiedene von diesen Software offen hat, was dann diese Sybil-Attack darstellen könnte.

Und ja, wenn man dann das offen hat, dann kann man halt als Maker ausgewählt werden und ein paar Satz verdienen vielleicht. Aber ist die Funktion der Fidelity-Bonds nur, um die Glaubwürdigkeit der Maker zu erhöhen oder hat das auch eine, sagen wir mal, strafbewehrte Funktion? Weißt du das vielleicht, Curemici? Nein, das ist dafür da, um Sybil-Attacks zu verteuern.

Also man kann das auch, im Orderbook gibt es einen Reiter, da kann man sehen, was bei dem aktuellen Orderbook, wie die Fidelity-Bonds sind, mit welcher Wahrscheinlichkeit man, wenn man zum Beispiel mit 95% erfolgreich sein will mit seiner Attacke, wie viel Bitcoin man da haben muss. Wenn man die zum Beispiel sechs Monate oder für zwölf Monate dann in einen Bond bindet. Und da kommen schon relativ schnell relativ hohe Zahlen zustande.

Das ist halt, dass man halt nicht kostenlos dort als Maker auftreten kann, indem man einfach nur Liquidität reinbringt, sondern auch Liquidität bindet. Und auch hier hat der Taker die volle Kontrolle drüber, weil er kann quasi sagen, wie viel soll ein Fidelity-Bond wert sein. Er kann zum Beispiel einen Zinssatz bestimmen, indem er halt die Zeit anders bestimmt oder auch quasi den Exponent des Ganzen bestimmen, um dann halt die Größe,

wer noch mehr reinbringt, wird noch stärker. Da hat er die volle Kontrolle drüber. Allerdings nicht einfach wie alles bei JoinMarket. Man muss das alles über die Konfiguration machen. Ich glaube, bei Gem kenne ich leider nicht so, da gibt es vielleicht auch ein bisschen einfache Zugänge für solche Parameter. Aber ansonsten geht das alles über den Konfigurationspfeil. Okay. Ich würde ganz gerne auch einmal einen Begriff aufgreifen, der jetzt schon zweimal gefallen ist.

Den müssten wir, glaube ich, nochmal erklären. Was ist denn in diesem Zusammenhang eine Sybil-Attacke? Also was ist damit gemeint und wie verhindern diese Fidelity-Bonds das? Wer möchte das? Du gleich, Curemici. Ich könnte zum Beispiel die Liquidität, die ich habe, auf ganz viele Maker aufteilen. Vielleicht so viel, dass ich 80 Prozent der Maker damit erfasse. Und wenn dann ein CoinJoin gemacht wird, ist die Wahrscheinlichkeit dann relativ hoch,

dass ich vielleicht alle Maker-Positionen ausfülle. Und dann kann ich, da ich ja alle UTXOs kenne, bis auf den, der den CoinJoin macht, kann ich den halt 100 Prozent nachvollziehen. Das kann mit diesen Fidelity-Bonds verhindert werden, indem sie das einfach teuer machen. Ja, super. Sehr gute Erklärung. Thorsten, ich war dir eben so ein bisschen ins Wort gefallen. Du wolltest noch was ergänzen oder fragen?

Nee, das war auch ganz genau so. Ich wollte auch den Einwurf machen, dass wir unsere Hörer nicht links liegen lassen, sondern auch nochmal den Begriff Sybil-Attack noch mal erklären für die Leute, die nicht wissen, was das ist. Einfach der Vollständigkeit halber. Aber nochmal eine kurze Rückfrage. Das mit den Fidelity-Bonds ist im Endeffekt ja auch nochmal als Erklärung, ist ja im Endeffekt wie so ein, wenn ich bei Robosatz zum Beispiel oder bei Bisk eine Transaktion mache,

dass ich da im Endeffekt "skin in the game" habe. Also ich hinterlege in Anführungszeichen eine Kaution in irgendeiner Form, die halt darlegt, dass ich quasi es ernst meine, wie ihr es gerade schon selber gesagt hattet. Ist die denn obligatorisch oder ist das, wie ihr gerade sagt, ist das optional?

Die ist optional. Also man kann sich auch entscheiden, keine zu hinterlegen, aber der Taker, wie gerade schon richtig angesprochen, der wäre natürlich gut beraten, mehr Maker reinzunehmen, die halt die Fidelity-Bond eingestellt haben, weil er möchte ja selber hinterher nicht de-anonymisiert werden durch diese Sybil-Attacke eben.

Und deshalb wäre es einfach smart, die reinzunehmen. Teilweise kann es natürlich vorkommen, wenn man jetzt extrem viele Coinjoins machen möchte, mit extrem vielen Partnern, dass man vielleicht gar nicht genug Leute findet, die eine ausreichend hohe Fidelity-Bond drin haben. Da nimmt man sich vielleicht noch ein paar rein, die keine drin haben. Das ist wieder frei konfigurierbar.

Aber Grundeinstellungen gibt es auch. Da ist beispielsweise ein Viertel nicht mit Fidelity-Bonds in der Grundeinstellung. Die Grundeinstellung ist auch, es gibt mehrere Verfahren, die man wählen kann, wie die Maker ausgewählt werden vom Taker. Und die Grundeinstellung ist aber eben mit Fidelity-Bonds gewichtet nach ihrer Größe. Aber es ist auch immer ein Zufallsfaktor dabei, dass man halt nicht immer die gleichen wählt.

Also das ist auch ganz wichtig, ist auch ein Grundprinzip bei Joinmarket, dass da auch immer bei der Auswahl Zufall dabei ist, damit da nicht immer die gleichen quasi gewinnen.

Haben wir da, nochmal ganz kurz Rückfrage, haben wir da irgendeine Form von Identitäten, also dass man da bei Joinmarket sich eine Art Reputation aufbauen kann, also dass man wiedererkennen kann mit den Personen oder mit diesen Entitäten oder Liquiditätsgebern, habe ich schon mal Runden gemacht und die haben sich in der Vergangenheit irgendwie durch irgendeine Reputation bewährt. Gibt es so Systeme da in dem Fall?

Man könnte höchstens über die Fidelity-Bonds gehen, weil die sind halt für die Zeit fest, auch wenn sich jetzt der Joinmarket-Name oder der Nickname, den man dort hat, der automatisch generiert wird, auch verändert. Der Fidelity-Bond, der bleibt ja bestehen mit seinen Parametern, Höhe, Größe und die Festlegezeit, wo es halt festgeschrieben ist. Also darüber könnte man das machen und man kann ja auch wirklich die einzelnen Maker auswählen, wenn man das möchte. Also die Möglichkeit gibt es auch.

Aber es gibt kein Reputationssystem, es gibt keine Bewertung, dass man sagen kann, also mit dem Maker habe ich jetzt schon gute Erfahrungen, mir gebe ich jetzt fünf Sterne, sondern man kann tatsächlich nur auswählen über die Fidelity-Bond, wie hoch man seine Sicherheit da ansetzen möchte. Es gibt allerdings, glaube ich, das ist automatisiert auch in der Software, ein Bestrafungssystem.

Das heißt, wenn einer davor durchaus gefallen ist, einfach die Transaktion nicht zu unterschreiben, kommt er quasi erstmal auf eine schwarze Liste. Das gibt es schon, habe ich aber jetzt auch noch nicht erlebt. Okay, wollen wir noch ein bisschen über das Setup sprechen.

Wie richtet man JM ein?

Also der Systemling hat ja so ein bisschen erklärt gehabt, was man tun muss. Ich glaube, die wichtigste Frage ist, brauche ich jetzt meine eigene Node oder kann ich einfach irgendeinen Client mir installieren und eine Software laufen lassen? Vielleicht mal da loslegend, wie ist da das notwendige Setup, um überhaupt Joint Market nutzen zu können? Ja, man braucht auf jeden Fall eine eigene Node, aber das kann eine Brune Node sein. Also es gibt zum Beispiel die Joining Box.

Das ist wirklich ein komplettes System inklusive der Node mit einer textbasierten GUI. Das ist quasi dieses Joining Box im Rahmen von Raspberry Pi, das benutze ich. Aber es gibt es auch als Standalone. Wenn man einen Raspberry Pi rumfliegen hat, da sind die Anforderungen viel geringer als jetzt beispielsweise eine Lightning Node. Dann kann man den benutzen und man kann einen Brune Node benutzen.

Und da gibt es zum Beispiel, wenn man dem Ganzen vertraut, kann man auch schon kleinere Brune Blockchains runterladen, sodass man dann auch relativ schnell dort in ein produktives System kommt. Und die Systemanforderungen sind ganz gering. Von der VPS hat der OpenNorms, der diese Joining Box dort macht, ein Gigabyte Speicher, einen Prozessor und 32 Gigabyte an Festplattenspeicher angegeben als Anforderungen. Und damit kommt man schon.

Was man allerdings mit einem Brune Node nicht machen kann, ist, dass man eine alte Wallet dann wieder dort ein Recover damit macht. Das geht mit einer Brune Node nicht, weil die dann die Information nicht hat. Aber zum Neuaufsetzen kann man da mit relativ schmalen Ressourcen dann auskommen. Okay, aber man braucht eine eigene Node. Es kann aber auch eine Brune Node sein. Genau. Sehr gut. System Link, wolltest du noch was ergänzen? Nee, wunderbar. Richtig so.

Und ich glaube am komfortabelsten für alle Leute, die generell schon diese Fertiglösung haben, ganz einfach klicken, install, über diese Node-Lösung wie den Umbral. Da ist das sehr schnell auszuprobieren und auch kein großer Aufwand für Leute, die nicht so technisch unterwegs sind. Weil diese Node-Lösungen, die sind ja heutzutage schon relativ einfach zu installieren, würde ich sagen. Und sehr benutzerfreundlich. Also ich kenne es jetzt nur von meiner Node. Ich benutze eine MyNode.

Und da muss man erst mal JoinMarket installieren und dann noch, also natürlich kann man dann auch schon JoinMarket nutzen, aber ich habe dann obendrauf noch Jam installiert, quasi die GUI dafür. Weil ich finde das im Umgang halt einfach sehr, sehr viel einfacher, statt auf der Command Line zu arbeiten. Da habe ich ein bisschen Respekt vor. Also da ist halt der Joining Box ein sehr guter Kompromiss. Das ist eine textbasierte GUI, mit der man sehr viel machen kann.

Einfach, die nimmt einem quasi diese Kommandozeilen, Befehle ab, sondern da hat man dann Eingabemasken, alles textbasiert, optisch nicht so schön, aber funktioniert sehr gut und man hat doch ein bisschen mehr Zugang dazu, als man es jetzt beispielsweise bei Jam hat. Das ist so ein guter Kompromiss zwischen Kommandozeilen und einer relativ einfachen, aber doch relativ beschränkten Web-Oberfläche dann. Okay, worin liegt die Beschränkung bei Jam?

Ja, also wenn ich in die Telegram-Gruppen von Jam reingehe, da fehlen dann schon sehr viele Informationen oder sind dann schwer zugänglich. Und mit Joining Box kriegt man doch ein bisschen mehr Informationen dann zurück und man ist auch näher quasi am System dann dran und hat auch viel mehr Optionen, dort in den verschiedenen Menüs auszuwählen. Also da kann man sich ein bisschen mehr dem System annähern oder einfacher dem System annähern.

Okay, aber auf Kosten von zunehmender Komplexität, wenn ich das jetzt richtig verstehe, oder? Es ist optisch nicht so schön. Naja, ich meine jetzt nicht nur die optische Komplexität, sondern auch das Handling ist glaube ich etwas komplexer. So stelle ich mir das jetzt gerade vor. Ich kenne leider Joining Box nicht. Also wer einen Raspi-Blitz gewöhnt ist, der kennt Joining Box gut. Und wir haben das quasi die gleiche... ...Gluey dahinter. Okay, wie ist es bei dir System Link?

Nutzt du Jam oder nutzt du auch Joining Box oder JoinMarketQT? Ja, ich habe es alles mal ausprobiert. Das Joining Box habe ich auch mal installiert gehabt. Aber ich würde jetzt sagen, dass dieses Jam ist schon für mich das ansprechendste, weil es halt wirklich sehr schick aussieht.

Man kann es im Browser eben öffnen und was den großen Vorteil mitbringt, wenn ich jetzt die Node bei mir zu Hause im Netzwerk habe, dann kann ich da auch von meinem Handy drauf zugreifen, weil es einfach nur eine Adresse im Netzwerk ist und könnte dann quasi vom Handy auch meine Coin Joins beobachten, wie weit die da sind und eventuell neu durchführen oder halt über den Handy-Browser von meinen gemixten Coins das irgendwo hinschicken.

Und das ist nochmal ein Vorteil, den weder Wasabi noch Samurai Walpole hatte früher. Und ja, ich gebe dem Curemici da auf jeden Fall recht, dass man nicht so viele Auswahlmöglichkeiten hat, so viele Einstellungsmöglichkeiten. Aber gerade das mag ja eine bewusste Designentscheidung sein und für manche Leute dann besser sein. Thorsten, hast du noch was? Also wir können gerne, ich glaube, alle Lösungen werden wir auf jeden Fall verlinken.

Das ist ja der geneigte Zuhörer, der sich das jetzt mal näher mit befassen möchte, dass er sich mal die unterschiedlichen Sachen angucken kann und dann einfach für sich entscheiden kann, was ihm am ehesten liegt. Wenn man sowieso schon eine eigene Node hat, dann ist die Installation, glaube ich, relativ simpel, sofern sie denn funktioniert. Ich habe das hier bei mir lokal auf der Node auch mal funktioniert.

Ja, klappt die Installation, aber interessanterweise nicht, weil sie irgendwie während der Installation abbricht. Also keine Ahnung, woran das liegt, aber das ist ein anderes Thema. Und ja, bei Jam ist es, glaube ich, vom Projekt her noch das Jüngste.

Also gerade wenn ihr sagt, dass da noch einiges, also quasi wenn das rudimentär ist von den Funktionen, vielleicht kommt da in Zukunft ja auch noch, dass die Sachen, die jetzt quasi aktuell noch in der QT-Version oder dann in dem Join-In-Market dann enthalten sind, dass das dann vielleicht auch noch in die Web-Oberfläche Einzug hält in Zukunft. Wobei Jam voll funktionsfähig ist, also es fehlt nichts. Ja, es funktioniert schon.

Das Thema ist, glaube ich, mehr, dass Jam ist halt anders als bei Samurai oder auch bei Wasabi ist da halt keine Firma dahinter, sondern es ist halt ein Open-Source-Projekt, wo Leute sich halt mal in ihrer Freizeit hinsetzen und Jam entwickelt haben. Und die Software ist auch noch, das ist auch noch mal immer fett auf der Webseite drauf, es ist immer noch in einem Beta-Status.

Also gut, ich bin jetzt kein Software-Fachmann, aber es ist, glaube ich, immer noch mit sehr viel Vorsicht zu genießen, was einem da geboten wird. Ich meine, Beta-Software steht doch sowieso fast auf jeder Software, die im Kontext von Bitcoin ist irgendwie noch drauf. Also ich glaube, LND läuft auch immer noch die ganze Zeit im Beta-Stadium. Bei Bitcoin Core bin ich mir nicht sicher, aber LND auf jeden Fall. Also alles, was mit Lightning zu tun hat, in jedem Fall.

Ja, gut, also Joint Market ist die perfekte Lösung für Coinjoins.

Hohe On-Chain Gebühren

Alles gut, alles super, uneingeschränkte Empfehlung. Oder gibt es vielleicht doch noch ein paar Downsides? Wer möchte? Es gibt sicher, also das kann ja nicht die perfekte Lösung sein. Ja, das ist die im Link, hau rein. Genau, und zwar leitet sich ein gewisser Nachteil von diesem Orderbook-Modell ab, wo halt die vielen Maker sich bereit erklären, die Liquidität für einen Taker bereitzustellen.

Das bedeutet nämlich auch, dass der eine Taker, der jetzt den Coinjoin durchführen möchte, die gesamten On-Chain-Transationsgebühren zahlen muss. Und da wir ja nicht nur von einem Input, einem Output sprechen, sondern gerne mal von 15 Inputs und 10 Outputs, ist das durchaus schon eine größere Transation, die da ordentlich ins Geld gehen kann.

Bei den anderen Lösungen, gerade bei Wasabi, hat man sich die Transationsgebühren On-Chain geteilt mit den anderen Leuten, die mit dabei sind in der einen Transation und ist so deutlich günstiger weggekommen.

Bei Samurai Whirlpool ist das ja so gelaufen, dass man in der ersten Runde, wenn man zum ersten Mal in diesen Pool reingegangen ist, hat man einmal die Transationsgebühren für die ganze Runde bezahlt und danach hat man diese kostenlosen Remixes bekommen, was immer eine gewisse Zeit gedauert hat, aber da hat man dann zusätzliche Coinjoin-Runden ohne das Zahlen der Transationsgebühren bekommen.

Das war ein sehr angenehmes Angebot und jetzt bei Joinmarket ist es halt so, dass man für jede Runde, die man als Taker in Anspruch nehmen möchte, quasi die volle Gebühr zahlen muss plus die Gebühren, die man den Maker geben muss, wobei die eigentlich gar nicht so richtig ins Gewicht fallen, im Vergleich zu den Transationsgebühren.

Das heißt, ich bin immer abhängig vom allgemeinen Fee-Market und ich kann es noch nicht mal genau beeinflussen, weil ich natürlich, sobald ich als Taker reingehe und Coinjoin mache, kann es ja auch ein bisschen dauern, bis alle Coinjoin-Transaktionen durchgeführt sind und in der Zeit kann natürlich der Fee-Markt sich bewegen.

Nur, dass man da klar ist, dass es eine gewisse Unsicherheit darüber gibt, wie hoch sind denn jetzt eigentlich die Transaktionsgebühren für den Coinjoin, den ich mit Joinmarket durchführe. Wobei in der Grundeinstellung ist es so, dass das Joinmarket Bitcoin Core Fee-Estimation nutzt und dies normalerweise sehr auf der sicheren Seite, was halt auch ein Nachteil ist.

Also, das gerade für Anfänger, auch als ich Anfänger war, das war auch in einer Umgebung, wo die Gebühren relativ hoch waren, das war schon ein teures Leergeld, was man da bezahlt hat. Aber danach kann man sich, wenn man halt Mempool kennt und wie man Gebühren dort bestimmt, kann man das schon auch dann konfigurieren, dass das entsprechend die Transaktion mit einer vernünftigen Fee geht, was das Ganze dann deutlich günstiger macht.

Aber man ist trotzdem natürlich, wenn man bei 100 Satz pro Euro wie weit ist, bei enormen Kosten, wenn man mit 8 oder 10 Makern dort einen Coinjoin macht. Das ist halt sehr teuer. Da muss man sich dann überlegen, ob das dann die Sache wert ist zu dem Zeitpunkt. Ansonsten sollte man halt immer auf günstigere Gebühren warten. Hochgebühren, das ist ähnlich wie Kanälen öffnen bei Lightning, sollte man halt immer machen, wenn es gerade günstig ist. Ja, genau, eine sehr ähnliche Erfahrung.

Diese Fee-Estimation von Bitcoin Core, die ist wirklich heimtückisch, muss man sagen. Und da wäre jetzt mal eine absolute Empfehlung für alle, die das vielleicht nochmal in Jam ausprobieren. Man kann die Transaktionsgebühren einstellen nach Block Target, dass halt gesagt wird, okay, man möchte jeweils mit jeder neuen Mixrunde in die nächsten drei Blöcke reinkommen. Dann macht Bitcoin Core diese Einstellung und sagt so ungefähr, welche Fee dafür notwendig ist.

Und ja, auf der sicheren Seite hat der Curemici gerade gesagt, das mag ein Euphemismus sein, aber wenn man sich mal wundert, beim Mempool Space, wenn man da reinguckt, warum Leute irgendwie 400 Satz pro WB zahlen, obwohl auch 40 gereicht hätten, das kommt dadurch zustande, weil diese Fee-Estimation teilweise dermaßen falsch liegt.

Und ich habe da jetzt, ja, letzte Woche habe ich mal hier in Vorbereitung auf die Folge nochmal eine alte UTXO, die ich eben noch in Samurai drin hatte, habe ich da mal in Joint Market reingeschoben. Und da wurden dann so mit diesem Durchlauf 13 Transaktionen, glaube ich, gemacht, 13 Coin-Join-Runden. Und ja, teilweise habe ich da dreifach überbezahlt, dieses Overpaid dreifach oder auch siebenfach.

Und siebenfach over zu bezahlen bei einem Umfeld von 40 Satz pro WB, das ist richtig ins Geld gegangen. Also bei einer 5-Millionen-UTXO, die ich reingegeben habe, habe ich 1,3 Millionen Satz an Fees gezahlt, nur On-Chain-Fees. Boah. Also das sind 600 Euro, die weg waren. Das ist maximal ungünstig.

Zumal, wenn man mal guckt, ich habe mir das hinterher durchgerechnet, habe jede Coin-Join-Runde mal einmal im Mempool angeln geguckt und verglichen, was denn die minimal nötige Vieh gewesen wäre, um in den Block reinzukommen. Und da hätte ich dann mir eine Millionen Satz sparen können von diesen 1,3 Millionen, um reinzukommen. Also das ist wirklich eine Million Satz, die komplett nur für eine schlechte Vieh-Estimation weggegangen sind.

Also hat man da jetzt in der Software gar keine Möglichkeit, das irgendwie nach oben hin zu begrenzen, dass man sagen kann, absolut möchte ich nur so und so viel bezahlen dann. Oder kann man das insofern nur steuern, dass man halt sagt, okay, ich will so und so viele Mixing-Partner mit drin haben, was ja dann auch quasi die Anzahl der Inputs natürlich auch dann und die Outputs natürlich auch beeinflusst.

Was aber auf der anderen Seite natürlich wieder der Trade-Off ist, je weniger Mixing-Partner. Ich habe das weniger Privatsphäre, habe ich natürlich in dieser einen Coin-Join-Runde. Aber auf der Kehrseite ist es natürlich so, jeder Input, jeder Output erzeugt ja höhere Gebühren in dieser jeweiligen Transaktion. Ja, es gibt einen Parameter in der Konfiguration "Absolute High Fee" oder "Absolute Fee", da kann man das begrenzen nach oben hin.

Aber der Parameter ist per se relativ hoch eingestellt, den sollte man sich dann halt angucken. Aber noch besser ist natürlich wirklich, die passenden Fees zu machen.

Was aber natürlich auch wieder das Problem bedingt für die Maker, wenn jemand dann sich daneben legt nach unten, kann es sein, dass relativ lange dann die UTXOs belegt sind, weil man hat dann erstmal keine Chance, wobei man auch dann, glaube ich, eine "Child Pays for Parent"-Transaktion machen kann, als Maker, um das Ganze zu beschleunigen. Das geht aber dann auch natürlich entsprechend ins Geld, weil man natürlich für alle anderen Maker das dann auch entsprechend mitbezahlen muss.

Also meine Empfehlung wäre da auf jeden Fall, wenn man jetzt dieses Jam nutzt, nicht diese Blockhöhe als Ziel zu setzen für die Fees-Dimension, sondern man kann da auch einstellen, dass man eine SAT-Pro-VWide-Zahl feststellt. Das ist aber eben nicht der Standard und da würde ich jedem, bevor er das verwendet, einmal kurz umzustellen, dass er diese SAT-Pro-VWide einstellt auf ein Ziel, was ungefähr aktuell marktüblich ist. Okay, das wollte ich jetzt auch nochmal zusammenfassen.

Also jetzt zwei Empfehlungen nehme ich da jetzt mit raus. Das eine ist, auf einen günstigen Fee-Environment zu warten, also zu schauen, dass die Fees vielleicht nicht ganz so explodiert sind und man hunderte SATs pro VWide pro Transaktion zahlen muss. Das ist das eine. Und zum zweiten halt in der Konfiguration zu schauen, dass man da ein maximales Limit für SATs per VWide festlegt. Und damit kriegt man so ein bisschen das zumindest unter Kontrolle, was die Gebühren angeht.

Und immer, wenn man eine einzelne Aktion macht, schauen, man kriegt ja die Parameter der Transaktion angezeigt, gucken, ob die Fees dann vernünftig sind. Das sollte man auf jeden Fall machen. Und ansonsten kann man dann noch die Transaktion einfach nicht veröffentlichen und dann passt das auch.

Man sollte halt Zeit mitbringen, beziehungsweise wenn man halt über längere Zeit mixen will, erst mal einen Coinjoin reinmachen und dann halt vielleicht auf die Maker-Seite gehen und die Liquidität bereitstellen, weil dann werden die Gebühren halt durch die Coinjoins der anderen dann bezahlt. Setzt aber voraus, dass man selber schon mal einen Coinjoin gemacht hat, bevor man als Maker da auftritt, oder? In Jam sieht man immer, die kriegen dann so ein Label, die UTX-Os, die man hat.

Und wenn da draufsteht, dass es ein CJ-out ist, dann kann man dieses UTX-O gut verwenden, um als Maker aufzutreten. Ja, also es ist vernünftig, um da die Links halt auch entsprechend aufzubrechen. Das wäre nämlich jetzt auch meine Frage gewesen, welchen Vorteil habe ich denn als Taker aufzutreten? Vielleicht verstehe ich das gerade in dem Moment halt nicht.

Also welchen Vorteil habe ich denn als Taker aufzutreten, wenn ich dafür nur Gebühren bezahlen muss, aber trotzdem im Endeffekt dann, klar kann ich mir natürlich aussuchen, mit wie vielen Leuten ich dann in einem Coinjoin rein sind sein will, aber wenn ich ja Liquidität bereitstelle als Maker, in dem Fall, habe ich ja die gleichen Vorteile. Ich kann es nur nicht beeinflussen. Ja, ich glaube, du hast nicht ganz die gleichen Vorteile.

Du hast nämlich die Sache, du weißt nicht, wann das Ganze fertig ist. Du bist halt darauf angewiesen, dass irgendjemand, irgendein Taker dein Angebot annimmt und wenn man selber mal so ein Coinjoin gemacht hat, dann kann man ja sehen, woher die UTXO kam, die der entsprechende Maker dafür verwendet hat und die liegen dann teilweise schon mal drei Monate brach. Das heißt, die werden drei Monate nicht angefasst, diese Angebote.

Und das heißt, um da viele Coinjoin-Runden zu machen, kann halt schon mal ziemlich lange dauern, bis man die hinter sich hat. Und zudem ist ja der Taker immer der Koordinator und der wüsste ja dann auch, welche Inputs jetzt ihm gehören und welche nicht. Das heißt, klar, du hast dann mehrere Coinjoin-Runden, an denen du mitmachst, aber da weiß immer der Taker, welche Outputs von wem sind.

Das könnte dann, ja, also ist jetzt nicht öffentlich, diese Information, aber du weißt, diese Coinjoins sind nicht perfekt, weil es immer eine Partei gab, die rein theoretisch loggen könnte, welche Inputs von dir sind und welche Outputs von dir sind. Ah, okay. Ja, gut.

Deswegen ist dann auch die Empfehlung, dass man halt, wenn man halt sagt, man hat einen Stack, der dann da regelmäßig durchläuft, sage ich jetzt mal über viele Runden, dass man da die unterschiedlichen Positionen dann irgendwie dann immer wieder einnimmt, ob Taker oder Maker. Ja, so würde ich es machen und halt die erste Mix haben. Cool. Ja, was haben wir denn sonst noch?

Komplexität der Software

Also, wir haben jetzt viel über die Gebühren gesprochen, was jetzt ja durchaus schon wahrscheinlich für viele schon eine große Abschreckung ist, für Leute, die jetzt sich mühsam ihre Subs zusammengestackt haben und dann sagen, okay, ich will jetzt ein bisschen Privatsphäre haben und dann muss ich da irgendwie jetzt gerade bei deinem Extrembeispiel Systemling, was du gerade genannt hast, das ist natürlich schon enorm gewesen, wenn da irgendwie mehr als ein Fünftel dann oder irgendwie 25 Prozent

dann von dem UTXOs dann irgendwie in Onchain-Gebühren flöten gehen. Das ist natürlich nicht so schön dann. Aber, Curemici, du hattest eben schon mal ein paar Mal gesagt, dass man einiges auch noch irgendwie über Kommandozeile und über Config-Files und sowas anpassen muss, wenn man es vielleicht nicht über Jam dann 100 Prozent macht.

Das ist natürlich auch noch so eine Sache, dass das ja dann vielleicht für Einsteiger nicht so einfach zu verstehen ist, wie vielleicht für diese integrierten Wallets, wie wir es halt bei Wasabi oder Samurai bzw. Sparrow hatten. Das stimmt auf jeden Fall. Also, man muss sich da schon ein bisschen mit beschäftigen. Was halt auch ein Punkt ist natürlich, wenn man als Maker auftritt, dass sich die Liquidität über die verschiedenen Mixsteps verteilt.

Das heißt, wenn man da auch auftreten will, braucht man natürlich auch eine gewisse Liquidität, wenn man dort auch vernünftig mixen will. Und deswegen macht es aus meiner Sicht relativ wenig Sinn, wenn man mit kleinen Beträgen von einer Million Sats oder so dort als Maker einsteigt. Die werden da wahrscheinlich relativ lange liegen oder werden sich dann halt über mehrere in kleinere Teile zerlegen.

Auf der anderen Seite ist es natürlich auch ein Vorteil, wenn man länger mixt, hat man über die verschiedenen Outputs natürlich auch einen breiten Strauß an verschiedenen UTXO-Größen, die man dann gegebenenfalls einsetzen kann. Und wenn man die dann über einen Coinjoin raus holt und vielleicht das Change dann, wenn es nur möglichst klein ist und das dann irgendwo auf eine Spendenadresse schickt, dann hat man da eine sehr, sehr gute Privacy für diese Transaktion.

Also das ist der Vorteil von der ganzen Verteilung über die verschiedenen Stufen dort. Wir hatten jetzt hier noch das Stichwort Tor-IRC aufgeschrieben. Was ist da so die Herausforderung bei Joinmarket? Ja, wenn man dort in die Protokolle reinguckt, verliert das doch relativ häufig die Verbindung und verbindet sich wieder neu und so weiter. Also das Ganze ist nicht stabil, funktioniert aber trotzdem relativ gut.

Aber es ist halt auf der Zeitschiene, muss man etwas Geduld dann teilweise mitbringen. Okay, also das ist der zweite Take-away. Genau, das wäre jetzt noch das zweite Take-away. Also man muss auf jeden Fall die Gebühren beachten und man sollte Zeit mitbringen, weil das Ganze sehr langsam abläuft. Liegt dabei vielleicht auch daran,

Liquiditätsfragen

dass die Liquidität auf dem Joinmarket nicht so tief ist, wie man sie vielleicht aus Samurai und Wasabi gewohnt ist, oder? Ja, wobei es sich mittlerweile auch einiges getan hat. Wenn man vor einem halben Jahr geschaut hat, da waren vielleicht 100 Maker in der Größenordnung und mittlerweile sind da schon 300 oder 400 zu sehen. Also da hat sich schon einiges auch getan. Das Marktfeld ist deutlich breiter geworden.

Was aber auch erstaunlich ist, der Systemling hat es auch schon gesagt, also manche haben da richtig Coins in dieser Hot Wallet. Also ich habe jetzt einen gesehen, der hatte da 170 Bitcoin liegen. Also da würde ich auch nicht mehr so gut schlafen. Aber das ist natürlich auch ein Problem, wenn man natürlich mit so einer Liquidität da reingeht und einen entsprechenden Fidelity-Bond hat, hat man natürlich auch immer eine relativ hohe Wahrscheinlichkeit, dass man in die Coin Joins reinkommt.

Und das schränkt natürlich auch ein bisschen das Durchmischen ein. Der wird dann relativ häufig auftauchen, wenn diese "Wale" dort ihre Liquidität reinbringen. Und sind natürlich auch immer gut zu erkennen, weil die 160, die gehen dann über die vielen Stufen und man weiß, das ist immer diese eine Partei, die dort tätig ist.

Aber ist da eine mögliche Attacke drin zu sehen, dass vielleicht irgendeine Regulierungsbehörde jetzt sagt, komm, 160 Bitcoin ist für mich ein Klacks, die stelle ich jetzt zur Verfügung und kann dafür aber mir schön die Joint Market Coin Joins anschauen? Theoretisch geht das natürlich. Ich glaube, die US-Staat hat 60.000 Bitcoin. Damit könnte man, wenn man es drauf anlegen würde, könnte man schon den Joint Market ganz schön aufmischen, glaube ich.

Aber ob das bei denen auf dem Schirm ist und wenn Joint Market wirklich dann eine große Größe im Coin Join oder Mixing Markt wird, ob das sich dann ändert, aber dann wird auch, glaube ich, deutlich mehr Liquidität dort zur Verfügung gestellt. Von daher denke ich, es ist immer schwer. Und durch die Fidelity-Bonds ist es natürlich, dort Markt beherrschen zu werden, deutlich schwieriger geworden, als es vielleicht vorher gewesen ist.

Aber noch mal ganz kurz zur Ergänzung zu den Mengen, die dann in Hot Wallets liegen. Also ich glaube, Samurai war, glaube ich, an seinem Peak, irgendwie sowas zwischen 6.000 und 8.000 Bitcoin, die da, glaube ich, über alle Pools hinweg dann irgendwie in dem System drin lagen. Und die waren ja auch alle in der Hot Wallet.

Und wenn man natürlich das Potenzial, was jetzt tendenziell nicht mehr über Whirlpool gecoin joined werden kann, was jetzt, wenn jetzt nur ein kleiner Bruchteil davon irgendwie in Joint Market reinfließt, dann ist es das Potenzial, dass da jetzt ja Liquidität reinkommt, ja eigentlich enorm. Wenn man das vergleicht, dass da irgendwie vielleicht ein paar hundert Bitcoin insgesamt dann drin sind oder irgendwie, ich weiß nicht, könnt ihr das abschätzen, wie hoch die Gesamtliquidität da drin ist?

Sieht man das? Ja, ich habe gerade das Orderbook hier offen bei mir und ich sehe gerade hier diesen 170er Wall dabei, aber es gibt schon größeren. Ich sehe jetzt gerade einen 338er Wall noch dabei, also 338 Bitcoin drin. Und wenn ich mir das mal so grob überschlage, würde ich als Gesamtsumme ungefähr so 6.000 bis 700 Bitcoin sehen, die hier gerade im Orderbook drin sind. Ja, aber genau, im Vergleich dann dazu ist dann ungefähr 10% von dem, was Samurai dann als Potenzial hatte.

Ich glaube, Wasabi ist von den Mengen sogar noch größer. Das ist, weiß nicht, ob das irgendwo kommuniziert wird, aber da ist durchaus auf jeden Fall Potenzial, was da noch an Liquidität, glaube ich, bei Joint Market jetzt reinfließen könnte dann mittelfristig dann. Was ja dann auch wieder Vorteile bringt dann für alle, weil einfach mehr, dass dann die Uniquitätszett einfach größer wird, weil ich mehr potenzielle Mixing-Partner dann einfach habe und mehr Entropie dann erzeugen kann.

Ja, das ist richtig. Wenn man sich halt dafür entscheidet, rüberzugehen, klar, da werden sich bestimmt ein paar entscheiden und da als Maker auftreten, wobei man jetzt nicht Joint Market als 1 zu 1 Alternative zu Wasabi oder Samurai verstehen darf, weil ja die Privatsphäre-Garantien sind nicht so einfach zu durchschauen wie bei Samurai gerade.

Die haben ja ein sehr transparentes System gehabt, wo man weiß, okay, die Outputs sind immer in gleicher Größe und da ist es schwer herauszufinden, wem jetzt was gehört. Aber das haben wir bei Joint Market eben nicht und ich bin nicht ganz so sicher, wie Anonyme dahinter herauskommt. Natürlich, desto mehr Runden, desto besser.

Aber wenn man sich diese Transaktionen mal im Mempool anguckt, man kann teilweise schon erkennen, wer da jetzt als Taker auftritt, also welche Inputs vom Taker sind und auch welche Outputs wahrscheinlich von dem Taker sind. Das kann man mit einer gewissen Wahrscheinlichkeit schon raussagen, einfach anhand der Metriken, wie zum Beispiel, welcher Change zurückgeht.

Bei den Outputs hat man auch immer noch einen gewissen Change dabei, weil die Maker, die haben ja nicht genau UTXOs in der Größe, wie ich gerade jetzt mixen möchte. Da geht immer Change zurück.

Das kann man sehr einfach tracken und in diesen Standardkonfigurationen versucht der Joint Market, die ganzen UTXOs, die man hat, über so ein gewisses Zeitfenster, so ein bis zwei Tage, durch ungefähr 10 bis 13 Mixes oder sowas durchzuhauen und da kann man schon grob abschätzen, in welchen zeitlichen Abständen die UTXO wiederverwendet wird.

Das heißt, wenn ich jetzt sehe, ein Output von einem vorherigen Coin Join wird nach 12 Stunden wieder in einem Coin Join verwendet, ja, dann ist es entweder ein Maker, der extrem viel Glück hat, dass er so schnell wiederverwendet wurde, oder es ist der wahrscheinlichere Fall, nämlich, dass es die zweite Mixrunde ist.

Ja, ist vielleicht ein guter Hinweis, dass man das vielleicht gerade jetzt hinter dem Hinblick, dass wir keine gleich großen Poolgrößen oder UTXO-Größen haben, wo man einfach dann in dieser Gesamtmenge dann irgendwie untergeht, dass wir da durchaus schon Sachen haben, die man nachvollziehen kann oder die gerade dann vielleicht dann noch Firmen, die sich darauf spezialisiert haben, dann trotzdem dann erkennen können.

Also vielleicht da dann auch so nochmal der Disclaimer, dass man da auch vorsichtig sein sollte, wie sehr man dann irgendwie darauf vertraut, dass die Privatsphäre dann da, die da rauskommt, hoher auch immer ist, ne? Vielleicht dann auch an der Stelle nochmal der kurze Hinweis.

Wir hatten letztes Jahr, hatte ich mit Chris zusammen nach der Zitadelle in Innsbruck, nee, in Graz, so rum, hatten wir nochmal eine Folge auch über die Heuristiken gemacht, die quasi so Chain-Analyse-Firmen benutzen, um herauszufinden, wie UTXOs zusammengehören. Also vielleicht da der Hinweis nochmal, wen das nochmal im Detail interessiert. Also diese zwei Sachen sind ja im Endeffekt immer dieses Common Ownership.

Also ich gucke, welche UTXOs gehören zusammen und was ist der Change und was ist dann die eigentliche Transaktion. Das sind im Endeffekt die beiden Sachen, die die Firmen immer herausfinden wollen, um so dann halt Cluster zu bilden und so dann halt herauszufinden, okay, das und das geht dann, die Transaktionen gehören dann in diese Gruppe von Personen oder von Entitäten, in irgendwelcher Form auch immer.

Also da vielleicht nochmal der Hinweis, wer da reinhören möchte, kann das gerne auch nochmal machen, verlinken wir auch nochmal.

Best Practise JoinMarket

Können wir da irgendwie nochmal Best Practices irgendwie draus ableiten? Also wie sollte ich mich jetzt als, also im Idealfall kann diese Folge jetzt irgendwie drei, vier User begeistern, zu sagen, jetzt möchte ich auch mal Joint Market austesten. Wir hatten das Thema Gebühren, dass man sich das anschauen muss. Ja, gibt es denn weitere Best Practices, wie man als Taker auftreten soll?

Also gibt es da irgendwie so drei, vier Dinge, auf die ihr vielleicht achtet, Kurumiki und Systemling, wenn ihr so einen Joint Market, Coin Join plant oder durchführt? Ihr geht einfach rein. Ich nehme ein großes UTXO und schmeiße es einfach rein und dann gucken wir, was da hinten bei rauskommt. Also was ich mache, wenn ich dort aus diesen Wallets, was auf eine andere UTXO bringe, ist normalerweise, dass ich immer einen Sweep mache, also ohne Change.

Das heißt, man kann auch in der Wallet, kann man ganz normal die UTXOs locken und dann kann man halt den Betrag, den man bezahlen will, kann man dann quasi als einzelnen freischalten und dann kann man einen Sweep machen von dieser Mix Steps und dann hat man halt keinen Change und dann wird natürlich die Heuristik dann auch wieder schwieriger. Also das ist so eine Sache, die ich immer mache.

Du musst mir nochmal erklären, weil der Sweep ist, wenn ich rausgehen möchte aus meiner Joint Market Wallet. Genau, wenn ich irgendwas bezahlen möchte, dann am besten per Sweep, sodass man da keinen Change hat. Weil dann ist der Link zwischen der Joint Market Wallet, wo dann vielleicht ein Change nochmal in Coins gemixt würde, ist dann einfach weg. Das ist dann einfach eine Transaktion aus einem gemixten UTXO. Ja, okay, habe ich soweit verstanden.

Vielleicht verwechsel ich da jetzt auch gerade was, aber ich hatte irgendwie abgespeichert, dass der Sweep jetzt auch nochmal ein Coin Join ist. Also es ist auch wieder eine kollaborative Transaktion, oder? Man kann diesen Coin Join mit einem Sweep verbinden und das heißt in GEM hat das nochmal einen bestimmten Namen. Also ich weiß, dass es da den Sweep gibt. Genau, der heißt nämlich Sweep, das ist quasi, dass man dort den ganzen gesamten Mix Steps nimmt und den dann ohne Change weiterbringt.

Weiterbringt, okay, also ob es jetzt um etwas zu bezahlen oder ins Cold Storage reinzuschieben, genau, okay, das macht man am besten mit einem Sweep, weil kein Change Output dabei rauskommt. Und wenn man aber nicht den genannten Mix Steps leeren will, sondern nur vielleicht eine passende UTXO Größe nehmen will, dann sollte man halt die entsprechenden anderen UTXOs in den Mix Steps dann entsprechend locken. Okay, was ist das dem Link von dir noch, irgendwie Best Practice Empfehlungen?

Ja, und zwar, wir haben ja gerade schon angesprochen, man kann da viel einstellen, wie viele Mixing-Partner man gerne hätte, wie viele Runden man hat und die Versuchung ist natürlich, nach unserem vorherigen Teil zu den Gebühren, ist natürlich da, vielleicht ein paar Runden weniger zu machen, vielleicht nicht ganz so viele Partner mit reinzunehmen, weil dadurch die Transaktion schlanker wird und günstiger, aber gerade das würde einen hinterher wieder weniger anonym machen, weil man heraussticht.

Es hat schon Vorteil, wenn man mit den Default-Einstellungen CoinJoint, weil man so ein größeres Anonymitäts-Set hat, wenn ich jetzt sage, ich möchte mal sparsam sein und ich nehme immer nur vier Partner mit in den CoinJoint rein, dann kann man ja gucken, man kann diese Joint-Market-Transaktion relativ einfach auf der Blockchain erkennen und wenn da irgendwie fünf von diesen CoinJoints sind, die jetzt immer nur vier Partner dabei haben,

dann werden die zusammengehören und jetzt habe ich es ja hier im Podcast gesagt und dann weiß jeder, ah, die sind gerade vom System-Link. Super Hinweis, ja, super, danke. Thorsten, sollen wir noch ein paar Fragen hinten drauf setzen zu Joint-Market? Gibt es da noch was, was offen ist? Also vielleicht, wir hatten gerade jetzt so die Best-Practice, aber jetzt vielleicht dann einfach nochmal, wie kann man jetzt am besten starten? Wo finden wir vielleicht Ressourcen?

Dass man das vielleicht auch nochmal jetzt erwähnt, dann für den geneigten Hörer, der jetzt sagt, okay, ich will mir das mal anschauen, wo finde ich mehr als jetzt das, was wir jetzt hier erzählt haben? Gibt ja wahrscheinlich dann jointmarket.org oder sowas als Webseite, glaube ich, dann für das eigentliche Projekt, werden wir auf jeden Fall nochmal verlinken. Ich weiß nicht, habt ihr noch Ressourcen, wo man sich noch anderweitig informieren kann?

Also dieser Joint-Market-Client-Server heißt, das glaube ich, unter GitHub, da sind eigentlich alle Ressourcen gebündelt unter GitHub. Okay, ja. Ich fand die Dokumentation von Jam ist auch sehr einschlagerfreundlich, weil sie auch nochmal so ein bisschen so die Motivation und die Philosophie hinter der Joint-Market überhaupt, allgemein Coinjoins erklärt.

Das ist sicherlich nochmal für Leute, die sich jetzt das erste Mal mit dem Thema Coinjoin beschäftigen, nochmal eine gute Quelle, um da einzusteigen, sich das nochmal durchzulesen. Das würde ich nochmal empfehlen. Ja, kann man auf jeden Fall alles verlinken. Wer des Englischen mächtig ist, kann sich auch das Video angucken von BTC Sessions.

Der hat ein sehr gutes Tutorial-Video gemacht, wie man diesen Jam gut nutzen kann und das Ganze nochmal als Video aufbereitet, was sie anschauen sich, aber halt auf Englisch. Können wir gerne, wenn du uns das vielleicht nochmal raussuchst, dann packen wir es auch mit in die Show-Nodes, dann haben wir da auf jeden Fall eine gute Ergänzung zu der Folge hier. Cool. Ja, gut. Haben wir noch irgendwelche Punkte, die wir jetzt besprechen wollen? Nee, ich glaube, für heute reicht es erstmal.

Sehr gut. Mit Hinblick auf die Zeit sind wir, glaube ich, jetzt auch relativ rund für die, die wir jetzt begeistert haben für JoinMarket, können sich das gerne jetzt mal anschauen. Wir werden bei dem Thema auf jeden Fall dranbleiben, weil das Thema ist, glaube ich,

aktueller denn je. Wir haben es ja gesagt, das ist auch Teil jetzt hier von unserer losen Privacy-Serie und wir haben auch eigentlich noch Themen gehabt, die wir heute auch noch besprechen wollten, aber wie gesagt, mit Hinblick auf die Zeit werden wir das vertagen, aber wir können schon mal sagen, wir werden uns auf jeden Fall in Zukunft noch mal andere Lösungen oder Möglichkeiten anschauen, wie man im Bitcoin-Netzwerk Privatsphäre herstellen kann,

die vielleicht dann auch abseits von On-Chain ist, sei es dann halt über Lightning oder über Swaps zu Monero oder eCash oder andere möglichen Sachen. Also das werden wir auf jeden Fall in dieser Runde noch mal in einer zweiten Folge noch mal in der nahen Zukunft noch mal auffassen, dass wir da quasi in die Richtung auch noch mal was für euch dann bereit haben. Jo, dann Jan-Paul. Ja, dann noch mal an euch, liebe Zuhörer, der Hinweis, dass wir ein Value-for-Value-Podcast sind.

Das heißt, wir würden uns sehr freuen, wenn ihr uns mit ein paar Satzen unterstützt. Ihr könnt streamen, ihr könnt boosten, ihr könnt auf unsere Webseite gehen, da gibt es eine Seite "Unterstütze uns", da gibt es noch mehr Möglichkeiten. Seit neuestem übrigens auch eine Silent-Payment-Adresse, wer das mal austesten möchte. Damit helft ihr uns auf jeden Fall, diesen Podcast zu betreiben und ihr haltet ihn werbefrei und bekommt hier 100% Bitcoin-Content auf die Ohren.

Und damit würde ich sagen, gehört das letzte Wort unseren beiden Gästen. Curemici, vielleicht magst du beginnen. Ja, passend zur Joint Market Privatsphäre ist ein Recht, das wir auf jeden Fall als Bürger verteidigen sollten. Und das ist ein Tool, das auf jeden Fall dabei hilft. Sehr schön. Systemling. Ja, ich sag nur "Free Samurai". Und dann sagen wir "Focus on the Signal, not on the noise". Dankeschön und tschüss. Ciao.

[Musik]

ThorstenThorsten

Not Signal. Focus on the Signal, not on the noise.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android