Hashed Timelock Contract (HTLC) - KamilTaylan.blog
8 Juni 2021 20:06

Hashed Timelock Contract (HTLC)

Was ist ein Hashed Timelock-Vertrag (HTLC)?

Ein Hashed Timelock-Vertrag (HTLC) ist eine Art intelligenter Vertrag, der in Blockchain-Anwendungen verwendet wird, um das Kontrahentenrisiko zu eliminieren, indem die Implementierung zeitgebundener Transaktionen ermöglicht wird. In der Praxis bedeutet dies, dass Empfänger einer Transaktion die Zahlung bestätigen müssen, indem sie innerhalb eines bestimmten Zeitraums einen kryptografischen Beweis erstellen. Andernfalls findet die Transaktion nicht statt.

Atomic Swaps, kettenübergreifender Handel zwischen Kryptowährungen wird häufig mithilfe von HTLCs erreicht. Darüber hinaus verwendet das Lightning Network (LN) von Bitcoin auch HTLCs.

Die zentralen Thesen

  • Ein Hashed Timelock-Vertrag (HTLC) reduziert das Kontrahentenrisiko in dezentralen Smart-Verträgen, indem effektiv ein zeitbasiertes Treuhandkonto erstellt wird.
  • Bei dieser Art von Smart-Vertrag muss der Empfänger einer Zahlung diese innerhalb eines bestimmten Zeitraums bestätigen oder verfallen lassen.
  • Zahlungen mit HTLCs sind an Bedingungen geknüpft und bieten daher Effizienzvorteile für Blockchain-Transaktionen. Diese Eigenschaft macht HTLCs zu einem grundlegenden Werkzeug, das vom Blitznetzwerk verwendet wird.

Wie ein Hashed Timelock-Vertrag funktioniert

Ein Hashed Timelock-Vertrag (HTLC) verwendet mehrere Elemente aus vorhandenen Kryptowährungstransaktionen. Beispielsweise verwenden HTLC-Transaktionen mehrere Signaturen, die aus einem privat-öffentlichen Schlüssel bestehen, um Transaktionen zu überprüfen und zu validieren. Es gibt jedoch zwei Elemente, die HTLC von Standardtransaktionen mit Kryptowährung oder normalen Smart-Verträgen unterscheiden.

Das erste Element ist das Hashlock. Ein Hash-Block ist eine gehashte oder kryptografisch verschlüsselte Version eines öffentlichen Schlüssels, der vom Absender einer Transaktion generiert wird. Der zugehörige private Schlüssel wird dann verwendet, um den ursprünglichen Hash zu entsperren. In HTLC generiert die Ursprungspartei einen Schlüssel und hasht ihn. Der Hash wird in einem Vorbild gespeichert, das anschließend während der endgültigen Transaktion angezeigt wird. HTLCs sind so programmiert, dass sie nach einem bestimmten Zeitraum oder einer bestimmten Anzahl von generierten Blöcken ablaufen und ein bekanntes Beendigungsdatum erstellen.

Das zweite wichtige Element von HTLC ist eine Zeitsperre. Zwei verschiedene Zeitsperren werden verwendet, um Zeitbeschränkungen für Verträge festzulegen, die mit HTLC generiert wurden. Der erste ist CheckLockTimeVerify (CLTV). Es verwendet eine Zeitbasis, um Bitcoins zu sperren und freizugeben. Dies bedeutet, dass Zeitbeschränkungen fest codiert sind und Münzen nur zu einer bestimmten Zeit und einem bestimmten Datum oder einer bestimmten Höhe der Blockgröße freigegeben werden.

Der zweite ist CheckSequenceVerify (CSV). Es ist nicht zeitabhängig. Stattdessen wird die Anzahl der generierten Blöcke als Maß verwendet, um zu verfolgen, wann eine Transaktion abgeschlossen werden muss.



Um eine Transaktion mit HTLC durchzuführen, müssen interessierte Parteien Kanäle miteinander öffnen.

Beispiele aus der Praxis eines Hashed Timelock

Angenommen, Alice möchte ihr Bitcoin gegen Litecoin von Bob eintauschen. Eine typische HTLC-Transaktion zwischen ihnen findet wie folgt statt:

  1. Alice generiert einen Hash aus ihrem privaten Schlüssel und sendet ihn an Bob in der Litecoin- Blockchain. Sie generiert auch ein Vorbild des Hashs, indem sie eine nominelle Transaktion erstellt. Dieses Vorbild hilft ihr, die Transaktion zu validieren und abzuschließen.
  2. Bob generiert auch einen Hash aus seinem Schlüssel und sendet ihn an Alice. Darüber hinaus erstellt er ein Vorbild, indem er eine nominelle Transaktion (in Litecoin) mit Alice durchführt.
  3. Sobald Alice Bobs Litecoin-Transaktion erhalten hat, signiert sie sie mit dem Originalschlüssel, der bereits im Vorbild bei ihr verfügbar ist. Bob tut es ebenfalls, indem er seinen privaten Schlüssel verwendet, um Alices Transaktion freizuschalten.