Cryptocurrency and Blockchain

Mercury Layer Lightning Latch Exchange Protocol

Commerceblock veröffentlichte a neues Atomaustauschprotokoll zur Verwendung mit Statuszeichenfolgen auf ihrem Mercury Layer-Protokoll. HSM Server hat Funktionen zur Unterstützung des atomaren Austauschs zweier Statusketten sowie zur Anwendung eines atomaren Austauschs einer Statuskette für eine Lightning-Zahlung eingeführt. Dies ist das erste Beispiel für konkret definierte und konstruierte Interaktionen zwischen Staatsketten und dem Lightning Network. Die Synergie zwischen den beiden Protokollen wurde postuliert, seit das Konzept einer Zustandskette ursprünglich von Ruben Somsen vorgeschlagen wurde, insbesondere um die Einschränkung der gleichzeitigen Übertragung einer gesamten UTXO-Zustandskette zu lösen.

Grundlegende Statechain-Austausche

Um neue Austauschprotokolle zu unterstützen, muss der HSM-Server seinen Datenbankeinträgen neue Felder hinzufügen, um jede von ihm unterstützte Statuskette zu verfolgen. Um den Austausch von Statechain zu Statechain zu erleichtern, muss der Server Folgendes befolgen:

  • Batch_id: ein Wert zum Zuordnen der in einer Gruppe ausgetauschten Statusfolgen.
  • Batch-Zeit: eine Zeit, die einen Zähler startet, nach der die Statuszeichenfolgen „wiederhergestellt“ werden können, wenn der Austausch fehlschlägt.
  • Gesperrt: Ein Wert, der angibt, ob die Statuskette gesperrt und auf regelmäßige Übertragungen beschränkt ist.

Dadurch kann der HSM-Server alle notwendigen Variablen verfolgen und anwenden, um einen sicheren atomaren Austausch zu gewährleisten. Beim Starten eines Austauschs müssen Benutzer direkt miteinander kommunizieren, um eine gemeinsame Batch_ID zwischen ihnen einzurichten. Von diesem Punkt an tauschen sie alle notwendigen Informationen aus, um eine normale Statuskettenübertragung zu ermöglichen, und senden diese Informationen zusammen mit der Batch_ID und der Batch-Zeit an den Server. Sie starten im Wesentlichen den regulären Transferprozess, hängen aber auch die Variablen an, um die einzelnen State Chains als Teilnehmer an einem Austausch miteinander zu verbinden und die Länge des Timeouts dafür.

Zu diesem Zeitpunkt wendet der Server eine Sperre auf jede Statuskette an, indem er im Übertragungsprozess dieselbe Batch_ID verwendet. Bis das Zeitlimit abgelaufen ist oder alle Statuszeichenfolgen in seiner Datenbank, die dieselbe Batch_ID verwenden, von den aktuellen Eigentümern entsperrt wurden, genehmigt der Server keine Übertragungen. Das Interessante daran, wie HSM die Swap-Logik anwendet, ist, dass es keine Rolle spielt, wer zuerst den Server kontaktiert. Wenn der Server eine Nachricht mit einer Batch-ID empfängt, überprüft er jede Statuszeichenfolge in seiner Datenbank und legt für diese Batch-ID bereits eine Batch-Zeit fest. Dadurch wird sichergestellt, dass unabhängig davon, wer den Tausch zuerst registriert, alle denselben Zeitwert für die Timeout-Funktion verwenden.

Zu diesem Zeitpunkt überprüft und lädt jeder am Austausch beteiligte Client die Nachrichten herunter, die das Übertragungsprotokoll initiiert haben, und sendet nach Überprüfung ihrer Richtigkeit eine Nachricht an den Server, um seine Statuskette zu entsperren und dadurch Übertragungsbeschränkungen aufzuheben. Jedes Mal, wenn jemand versucht, eine Übertragung auf der Empfängerseite einer der am Austausch beteiligten Statusketten abzuschließen, überprüft der Server, ob alle Statusketten mit derselben Batch_ID entsperrt sind. Wenn auch nur einer mit der zugehörigen Batch_ID noch gesperrt ist, schließt der Server eine Übertragung für keinen von ihnen ab. Wenn ein Handel vor Ablauf der Zeitüberschreitung fehlschlägt, schränkt der Server weiterhin den Abschluss der Handelsübertragung ein, ermöglicht es den aktuellen Eigentümern jedoch, eine neue Übertragung zu initiieren, um den Handel effektiv abzubrechen.

Blitzverschluss

Die Lightning-Latch-Funktion, die es Ihnen ermöglicht, eine State-Chain gegen eine Lightning-Zahlung einzutauschen, funktioniert sehr ähnlich wie der State-Chain-to-State-Chain-Austausch. Hier sind die neuen Felder, die der Server für den Lightning-Austausch verfolgen muss:

  • Batch_id: ein Wert zum Zuordnen der in einer Gruppe ausgetauschten Statusfolgen.
  • Batch-Zeit: eine Zeit, die einen Zähler startet, nach der die Statuszeichenfolgen „wiederhergestellt“ werden können, wenn der Austausch fehlschlägt.
  • Vorbild: Das Vorbild der Lightning-Zahlung, das vom HSM-Server generiert wird.
  • Locked_1 und lock_2: Es gibt zwei Sperrfelder für Lightning Exchange, eines von jedem beteiligten Benutzer.

Genau wie beim Statechain-zu-Statechain-Austausch erstellen und teilen Benutzer eine zufällige Batch_ID. Der aktuelle Besitzer des Statusstrings sendet dann eine Nachricht mit der beteiligten Batch_ID und dem Statusstring an den Server und fordert ihn auf, ein Hashlock-Pre-Image für eine Lightning-Zahlung zu generieren. Dieser Benutzer erstellt dann mithilfe dieses Vorabbilds eine Lightning-Rechnung, und der zweite Benutzer kontaktiert den Server, um zu bestätigen, dass er das Vorabbild erstellt hat. Der aktuelle Eigentümer der Statuskette beginnt dann mit der Übertragung der Statuskette und lädt die Übertragungsnachricht auf den Server hoch.

Nachdem er dies bestätigt hat, initiiert der zweite Benutzer, der versucht, gegen die Statechain zu handeln, die Lightning-Zahlung. Derzeit ist der Server der einzige mit dem Vorabbild, sodass der Eigentümer des Staatssenders die Zahlung noch nicht abschließen kann. Nachdem der aktuelle Eigentümer die ausstehende Lighting-Zahlung überprüft hat, sendet er dem Server eine Entsperrnachricht, um die erste Sperre in der Statuskette aufzuheben. Der Empfänger prüft abschließend die Übertragungsnachricht, und wenn sie gültig ist, sollte der Server auch seine Sperre entfernen.

Sobald nun beide Sperren entfernt sind, übermittelt der HSM-Server das Pre-Image an den aktuellen Eigentümer der State Chain, um die Lightning-Zahlung abzuschließen und die Übertragung der State Chain an den Empfänger abzuschließen.

Dieses Schema erfordert das Vertrauen, dass der Betreiber der staatlichen Kette ehrlich arbeitet. Dies stellt jedoch grundsätzlich keine Änderung gegenüber dem bereits bestehenden Vertrauensmodell der Verwendung einer staatlichen Kette im Allgemeinen dar. Der Betreiber hat zu keinem Zeitpunkt die Kontrolle über die Gelder der Benutzer oder erfährt von den Lightning-Zahlungsdetails.

Was ist der Punkt ?

Dieses Muster ist weit entfernt von der ursprünglich vorgeschlagenen Interaktion zwischen übereinander gestapelten Zustandsketten und Lightning-Kanälen, aber selbst als einfacher Ausgangspunkt bietet es funktionalen Nutzen für bestehende Lightning-Benutzer. Die Neuausrichtung der Kanäle ist für viele Knoten notwendig. Wenn die Kapazität vollständig auf die eine oder andere Seite verschoben wird, ist der Nutzen dieses Kanals für die Weiterleitung von Zahlungen begrenzt. Aufgrund der steigenden On-Chain-Gebühren und des Handels zum und vom teureren Lightning Network haben viele Unternehmen und Benutzer damit begonnen, mit Liquid als Mechanismus zu experimentieren.

Statechains bieten einen alternativen Mechanismus zu einer föderierten Sidechain, um einige der mit der Kanalbilanzverwaltung verbundenen Kosten zu senken. Anstatt direkt zur Hauptkette wechseln oder eine Seitenkette nutzen zu müssen, können Gelder in eine staatliche Kette umgetauscht und dort gehalten werden, bis sie für den erneuten Umtausch der Gelder innerhalb eines Kanals benötigt werden. Ähnliche Einsparungen bei den Gebühren können erzielt werden, während Sie dennoch die Möglichkeit behalten, Ihr Geld einseitig in der Hauptkette einzufordern.

Ein weiterer potenzieller Anwendungsfall (TRIGGER-WARNUNG) wäre die Möglichkeit effizienterer Märkte für den Handel mit Ordnungszahlen. Da es sich bei Ordnungszahlen lediglich um ein Indexierungssystem handelt, das Pfade durch den Transaktionsverlauf zu bestimmten Satoshis zurückverfolgt, können sie problemlos außerhalb der Kette auf eine Staatskette übertragen werden. Diese Dynamik könnte in Kombination mit Lightning Latch günstigere und schnellere Off-Chain-Einkäufe ermöglichen. Jemand könnte einen Marktplatz schaffen, auf dem sie sofort außerhalb der Kette im Lightning Network verkauft werden könnten.

Es ist sogar möglich, dass Lightning-Kunden eines Tages irgendwie wissen könnten, welche spezifischen Lightning-Knoten-Zustandskettenbetreiber glauben, dass Latch zur Weiterleitung von Zahlungen verwendet werden könnte, indem Zustandsketten zwischen verschiedenen Knoten weitergeleitet werden, anstatt herkömmliche Lightning-Kanäle zu verwenden.

Im Hinblick auf reine Übertragungen von Zustandskette zu Zustandskette bietet dies die Möglichkeit einer Nachrichtenübermittlungsschicht, um Coinjoin als ein System neu zu erstellen, das Münzen außerhalb der Kette mischt, ähnlich wie Original-Mischfunktion in Commerceblocks erster Statechain-Implementierung.

Lightning Latch und die Statechain-Swap-Funktionalität sind zwar ein sehr einfacher Ausgangspunkt, öffnen aber die erste Tür für die Integration von Statechains in das bestehende Lightning-Netzwerk – und andere ähnliche Schichten, die in der Zukunft kommen werden – auf eine Weise, die es allen ermöglicht, sich nahtlos zu integrieren und so zu funktionieren ein einziges Netzwerk hinsichtlich Zahlungsrouting und Liquiditätsmanagement. Auch wenn wir über die Notwendigkeit und den Nutzen von Pakten debattieren, gibt es immer noch viel Raum, um mit dem, was wir bereits haben, weiterzumachen.

Hier können Sie dem Commerceblock-Team zuhören, wie es die Logik jenseits des Protokolls erklärt:

Und für eine technischere Erklärung hier:

About the author

smirow

Leave a Comment