Ab Juli 2019 gibt es ungefähr 2.000 Kryptowährungen, aber es gibt keinen einzigen Austauschmechanismus zwischen verschiedenen Blockchains. In diesem Artikel betrachten wir vereinfacht, wie eine der Technologien des Austauschs ohne Vermittler angeordnet ist - Atom-Swaps.
Viel Spaß beim Lesen!

Atomic Swaps: Was ist das und womit isst es?
Atomic Swaps sind eine Reihe von Transaktionen auf beiden Blockchains, mit denen Sie Münzen ohne Beteiligung eines Dritten umtauschen und dem zweiten Teilnehmer des Umtauschs vertrauen können. Im Wesentlichen wird eine solche Transaktion erstellt, deren Ausgabe entweder in Gegenwart eines bestimmten Schlüssels oder nach einer bestimmten Zeit ausgegeben werden kann.
Nicht alle Blockchains ermöglichen die Implementierung von AtomicSwap. Es gibt zwei Hauptanforderungen:
- Unterstützung für intelligente Verträge (Generator dieser sehr "anfänglichen" Transaktion);
- Verwendung derselben Kryptomagie (Hash-Funktion).
Intelligente Verträge? Nein, nicht gehörtIntelligente Verträge sind im weitesten Sinne ein „nicht anhaftender“ Algorithmus, der Aktionen unter bekannten Bedingungen ausführt und sonst nichts. In unserem Fall kann ein intelligenter Vertrag als große Black Box betrachtet werden, die an die Adresse des Empfängers, die Adresse des Absenders, den Sendebetrag und die Geldaufbewahrungszeit weitergeleitet wird und eine eindeutige Kennung (Hash) zuweist. Die Ausgabe ist die gewünschte Transaktion mit den Bedingungen.
Hash und seine FreundeEine Hash-Funktion ist ein weiteres Zeichen aus einer Geschichte der höheren Mathematik. Konvertiert den Eingabestream in einen anderen Wert. Dieselben Daten ergeben dasselbe Ergebnis. Normalerweise ist die Eingabe eine große Zahl, die als geheimer Schlüssel bezeichnet wird, und die Ausgabe ist ein Hash. Das Zurückkonvertieren eines Hashs in einen geheimen Schlüssel ist nicht möglich.
Wenn alles reibungslos läuft
Betrachten Sie den Austausch zwischen Alice (ja, ja, Alice ist nicht mehr dieselbe) und Bob. Alice hat Bitcoin (btc), Bob hat Ether (eth). Beide Zeichen haben Adressen auf beiden Blockchains. Beispiel: Große Kryptowährungszeichen symbolisieren Blockchains.

Alice generiert einen Schlüssel (eine große Anzahl) und sagt bescheiden niemandem:

Basierend auf dem Schlüssel betrachtet sie den Hash:

Erstellt einen Vertrag mit einer eindeutigen Kennung, die einem Hash entspricht:

Sendet Geld an einen Vertrag. Jetzt kann sie sie nicht eine bestimmte Zeit verbringen (Zeitsperre):
Die Zeit ist abgelaufen oder ZeitsperreTimelock - die Zeit, nach der der Vertragsersteller das Geld zurückgeben kann, wenn er eine Transaktion eines bestimmten Typs sendet (nennen wir es "Rückerstattung"). Für diese Transaktion wird kein geheimer Schlüssel benötigt. Ein anderer Benutzer kann Geld für die im Vertrag angegebene Adresse des Empfängers abheben (wichtig: nicht seine eigene), wenn er eine Transaktion eines anderen Typs (nennen wir sie einlösen) mit dem geheimen Schlüssel sendet.
Im Allgemeinen ist der Mechanismus zur Verarbeitung von Vertragstransaktionen wie folgt:
if (transaction_type == "refund" and sender == contract_creater and timelock < now()) { send_to(creator_address); } else if (transaction_type == "redeem" and hash(secret_key) == contract_id) { send_to(receiver_address); }

Alice meldet den Hash an Bob. Jetzt kann er alle Vertragsfelder prüfen (überprüfen): Stellen Sie sicher, dass die Adressen korrekt sind, die Versandmenge, die Lagerzeit des Vertragsgeldes (der Zeitraum, in dem Alice sie nicht zurückziehen kann):

Wenn alles in Ordnung ist, erstellt Bob einen Vertrag für die zweite Blockchain ähnlich wie Alisinom (mit derselben Kennung). Der Empfänger und möglicherweise der Betrag ändern sich (wenn die Rate nicht 1 zu 1 ist).

Alice prüft den Vertrag:

Wenn sie alles verdreifacht, erstellt sie eine Transaktion auf Ethereum, die Geld für Bobs Vertrag ausgibt. Die einzige Möglichkeit, dies zu tun, besteht darin, einen Schlüssel bereitzustellen. Jetzt ist bekannt:

Alice bekommt eth:

Bob schaut auf den Schlüssel und erstellt eine Transaktion, die mit ihrem Schlüssel Geld für Alices Vertrag ausgibt:

Erfolg! Wölfe sind voll, Schafe sind in Sicherheit!
Wenn die Welt nicht perfekt ist
Manchmal kann jedoch etwas schief gehen. Es gibt zwei Stellen, an denen der Austausch fehlschlagen kann. Zu diesem Zweck gibt es einen Mechanismus, um das Geld an ihre rechtmäßigen Eigentümer zurückzugeben.
Angenommen, Alice als anständiges Mädchen hat Geld für einen Vertrag geschickt, aber nach einem Audit hat Bob seine Meinung über die Trennung von der Luft geändert:

Alice wartet auf den Ablauf der im Vertrag festgelegten Zeitsperre (z. B. 48 Stunden) und gibt die Blut-Pings zurück:

Eine andere Geschichte erzählt von der launischen Alice, die den atomaren Austausch nicht fortsetzen wollte, nachdem Bob den Vertrag erstellt hatte. Alternatives Szenario: Alice hat den Schlüssel verloren und kann dies nicht tun:

Bob wartet auf die Zeit, um das Geld zu sperren (es ist normalerweise weniger als das von Alice, so dass Alice das Geld von Bob nicht in letzter Minute abhebt und es dann nicht zurückgibt; zum Beispiel 24 Stunden). Alice gibt ihr Geld nach ihrer Zeitsperre zurück.

Fazit
Atomaustausch ist sehr praktisch für Punkt-zu-Punkt-Austausch unter Umgehung von Austausch und Vermittlern. Die Teilnehmer verpflichten sich, nur eine Provision für den Versand von Transaktionen zu zahlen.
Zusammenfassend können beim Austausch zwischen A und C an den Blockketten B1 und B2 folgende Schritte unterschieden werden:
- Initialisierung des Vertrages auf B1 durch Teilnehmer A;
- Hören eines Vertrags über B1 von Teil C;
- Initialisierung des Vertrages auf B2 durch Teilnehmer C;
- Hören eines B2-Vertrags von A;
- Bereitstellung eines Schlüssels und Abheben von Geld an B2 durch Teilnehmer A;
- Erhalten eines Schlüssels auf B2 durch Teilnehmer C;
- Geldabhebung bei B1 durch Partei S.
Die Technologie ist neu, wird aber bereits aktiv eingeführt. Vielleicht wird sie in naher Zukunft in der Lage sein, das zentralisierte und so ideologisch fremde für den Blockchain-Austausch zu ersetzen.