Wäre es möglich Atomic Swaps mit Monero und Bitcoin durchzuführen?

Litecoin und Vertcoin testen derzeit ab 2017-08 Atomic Swaps mit Bitcoin. Wäre Atomic Swaps mit Monero möglich?

Antworten (2)

Um einen Atomic Swap durchzuführen, benötigen Sie im Wesentlichen zwei Dinge:

  1. Die Fähigkeit, 2-von-2-Multisignaturen durchzuführen. Grundsätzlich unterstützt dies jede Kryptowährung, einschließlich Bitcoin und Monero, allerdings mit unterschiedlichem Grad an Benutzerfreundlichkeit. In Bitcoin können Sie den Opcode CHECKMULTISIG verwenden; In Monero (und schließlich Bitcoin, hoffe ich) können Sie 2-Party-Schnorr-Signaturen erstellen, die privater und kompakter sind, aber Interaktion erfordern. In Ethereum können Sie 2-Party-ECDSA-Signaturen erstellen, die komplex und lästig, aber durchaus machbar sind (oder vielleicht können Sie einen Multisig-Vertrag verwenden, aber diese sind nicht atomar und haben eine super seltsame Semantik, also Vorsicht).
  2. Die Möglichkeit, Transaktionen bei Zeitüberschreitung zurückzuerstatten, sodass die andere Partei ihr Geld zurückbekommt, wenn eine Partei auf halbem Weg durch das Protokoll verschwindet. Dies geschieht mit Bitcoin Locktimed Transactions oder OP_CSV.

Leider hat Monero derzeit keine Möglichkeit, Rückerstattungen vorzunehmen. Ich glaube, es hat zeitgesteuerte Transaktionen, aber diese sind nicht verwendbar, da Monero es Ihnen nicht erlaubt, unbestätigte Coins auszugeben, was bedeutet, dass Sie Ihre Coins aufstellen müssten, bevor Sie eine Rückerstattungstransaktion durchführen, und ein Fenster lassen, in dem Ihre Coins stecken bleiben. Ich erwarte leider nicht, dass Monero jemals unbestätigte Transaktionen unterstützt, da diese schlecht mit ihren Ringsignaturen interagieren.

Auf der anderen Seite scheint etwas wie OP_CSV, bei dem sich die Ausgabebedingungen der Münzen nach einer Zeitüberschreitung ändern, ohne dass explizite Locktime-Transaktionen erforderlich sind, in Monero naiverweise unmöglich, da ihre Ringsignaturen erfordern, dass Ausgaben mit öffentlichen Schlüsseln und nicht mit Skripten gekennzeichnet werden. Außerdem kann jede Ausgabe höchstens einen öffentlichen Schlüssel haben, da sie höchstens ein Schlüsselbild haben muss, um Doppelausgaben zu vermeiden.

Glücklicherweise gibt es eine dritte Lösung, die von Pedro Moreno-Sanchez und AFAIK vorgeschlagen wird und nirgendwo geschrieben steht. (Ich würde mich über Kommentare freuen, die mich mit einem Artikel verlinken, ich habe davon durch die Gerüchteküche gehört, also bin ich vielleicht nur nicht auf dem Laufenden.) Dies funktioniert so, dass Ausgänge mit zwei öffentlichen Schlüsseln gekennzeichnet werden können, von denen jeder gleich ist Schlüsselbild. Wie können zwei Schlüssel das gleiche Bild haben? Im Wesentlichen werden Schlüsselbilder berechnet, indem öffentliche Schlüssel in andere öffentliche Schlüssel gehasht werden und das Ergebnis dann mit dem ursprünglichen geheimen Schlüssel multipliziert wird. Wenn der "Hash" jedes Schlüssels als der andere Schlüssel definiert ist, ist das Ergebnis dieses Prozesses dasselbe, egal welcher Schlüssel verwendet wird(insbesondere das den beiden Schlüsseln zugeordnete Diffie-Hellman-Geheimnis). Dies bedeutet, dass ein Schlüssel der ursprünglichen Partei gehören und eine Sperrzeit darauf haben kann, während der andere Schlüssel ein 2-von-2-Multisig-Schlüssel ist, der für den Austausch im kooperativen Fall verwendet wird. Beim Ausgeben ist nicht zu erkennen, welcher Schlüssel tatsächlich verwendet wird.

(OK, wenn die Sperrzeit abgelaufen ist, wird mit ziemlicher Sicherheit der Sperrzeitschlüssel verwendet, andernfalls muss es der Nicht-Sperrzeitschlüssel sein. Pedro hatte eine Lösung dafür, indem er Reichweitennachweise für die Sperrzeiten verwendet, aber ich habe das Gefühl, dass die Komplexität der Privatsphäre Verhältnis ist zu hoch und lenkt auf jeden Fall vom Wesentlichen ab.)

Dies wird derzeit in Monero nicht unterstützt, aber erwarten Sie, dass es später in einer Hardfork zu sehen ist, da die Fähigkeit, Atomic Swaps und schließlich Zahlungskanäle durchzuführen, etwas ist, an dem seine Entwickler und die Community sehr interessiert sind.

Das DLSAG-Papier ist am 29. Mai 2019 erschienen: eprint.iacr.org/2019/595 . Es gibt auch ein Video von der MoneroKon 2019, das es erklärt: youtube.com/watch?v=x4q38ndnQnw

Etwas spät, aber vielleicht will es ja trotzdem jemand wissen.

Damit ein Atomic Swap stattfinden kann, müssen beide (/alle) Parteien in der Lage sein, die Blockchain und alle dort stattfindenden Transaktionen zu beobachten. Denn wenn die erste Partei ihren Teil des Handels beansprucht, muss die zweite in der Lage sein, das Geheimnis aus der Transaktion der ersten Partei zu erfahren.

Wenn Sie sich jetzt einen Monero-Explorer ansehen, sehen Sie nichts. Die zweite Partei kann also das Geheimnis nicht erfahren und kann daher ihren Teil des Handels nicht beanspruchen.

Aus diesem Grund können Atomic Swaps (in ihrer jetzigen Form) nicht auf Monero stattfinden.