1 mai 2021 14:49

Contract Hashed Timelock (HTLC)

Ce este un contract Hashed Timelock (HTLC)?

Un Hashed Timelock Contract (HTLC) este un tip de contract inteligent utilizat în aplicațiile blockchain pentru a elimina riscul de contrapartidă, permițând implementarea tranzacțiilor cu termen limită. În termeni practici, aceasta înseamnă că destinatarii unei tranzacții trebuie să confirme plata prin generarea dovezilor criptografice într-un anumit interval de timp. În caz contrar, tranzacția nu are loc.

Swap-uri atomice, tranzacționarea între lanțuri între criptomonede se realizează adesea folosind HTLC-uri. În plus, rețeaua Lightning (LN) a Bitcoin folosește și HTLC-uri.

Chei de luat masa

  • Un contract timelock (HTLC) reduce riscul de contrapartidă în contractele inteligente descentralizate prin crearea eficientă a unui escrow bazat pe timp.
  • Acest tip de contract inteligent impune destinatarului unei plăți să o recunoască într-o anumită perioadă de timp sau să o renunțe.
  • Plățile care utilizează HTLC sunt condiționate și au astfel beneficii de eficiență pentru tranzacțiile blockchain. Această proprietate face ca HTLC-urile să fie un instrument fundamental utilizat de rețeaua fulgerului.

Cum funcționează un contract Hashed Timelock

Un Hashed Timelock Contract (HTLC) folosește mai multe elemente din tranzacțiile criptomonede existente. De exemplu, tranzacțiile HTLC utilizează mai multe semnături, care constau dintr-o cheie publică-privată, pentru a verifica și valida tranzacțiile. Există însă două elemente care diferențiază HTLC de tranzacțiile standard cu criptomonede sau de contracte inteligente obișnuite.

Primul element este hashlock-ul. Un hashlock este o trunchiată sau omletă criptografic versiune a unei chei publice generată de inițiatorul unei tranzacții. Cheia privată asociată este apoi utilizată pentru a debloca hash-ul original. În HTLC, partea de origine generează o cheie și o hashează. Hash-ul este stocat într-o pre-imagine care este ulterior dezvăluită în timpul tranzacției finale. HTLC-urile sunt programate să expire după o anumită perioadă de timp sau un număr de blocuri generate, creând o dată de reziliere cunoscută.

Al doilea element important al HTLC este un timelock. Două timelocks diferite sunt utilizate pentru a stabili constrângeri de timp pentru contractele generate folosind HTLC. Primul este CheckLockTimeVerify (CLTV). Folosește o bază de timp pentru a bloca și elibera bitcoins. Acest lucru înseamnă că constrângerile de timp sunt codificate și că monedele sunt eliberate numai la o anumită oră și dată sau la o înălțime specifică a dimensiunii blocului.

Al doilea este CheckSequenceVerify (CSV). Nu depinde de timp. În schimb, folosește numărul de blocuri generate ca măsură pentru a urmări momentul finalizării unei tranzacții.



Pentru a efectua o tranzacție utilizând HTLC, părțile interesate trebuie să deschidă canale între ele. 

Exemple din lumea reală a unui Timelock Hashed

Să presupunem că Alice vrea să-și schimbe Bitcoin-ul cu Litecoin de la Bob. O tranzacție tipică HTLC între ele are loc după cum urmează:

  1. Alice generează un hash din cheia ei privată și îl trimite lui Bob pe blockchain-ul Litecoin. De asemenea, ea generează o pre-imagine a hash-ului prin crearea unei tranzacții nominale. Această pre-imagine o va ajuta să valideze și să finalizeze tranzacția. 
  2. Bob generează, de asemenea, un hash din cheia sa și îl trimite lui Alice. În plus, el creează o pre-imagine prin efectuarea unei tranzacții nominale (în Litecoin) cu Alice. 
  3. Odată ce Alice primește tranzacția Litecoin a lui Bob, ea o semnează folosind cheia originală care este deja disponibilă cu ea în pre-imagine. Bob face același lucru la final, folosind cheia sa privată pentru a debloca tranzacția lui Alice.