Contratto di blocco temporale con hash (HTLC)
Che cos’è un contratto Hashed Timelock (HTLC)?
Un contratto Hashed Timelock (HTLC) è un tipo di contratto intelligente utilizzato nelle applicazioni blockchain per eliminare il rischio di controparte consentendo l’implementazione di transazioni con scadenza temporale. In termini pratici, ciò significa che i destinatari di una transazione devono riconoscere il pagamento generando una prova crittografica entro un determinato periodo di tempo. In caso contrario, la transazione non avrà luogo.
Gli scambi atomici, il trading cross-chain tra criptovalute viene spesso ottenuto utilizzando HTLC. Inoltre, anche la rete Lightning (LN) di Bitcoin impiega HTLC.
Punti chiave
- Un contratto di blocco temporale con hash (HTLC) riduce il rischio di controparte nei contratti intelligenti decentralizzati creando efficacemente un deposito a garanzia basato sul tempo.
- Questo tipo di contratto intelligente richiede che il destinatario di un pagamento lo riconosca entro un certo periodo di tempo o lo rinunci.
- I pagamenti tramite HTLC sono condizionali e quindi hanno vantaggi in termini di efficienza per le transazioni blockchain. Questa proprietà rende HTLC uno strumento fondamentale utilizzato dalla rete fulmini.
Come funziona un contratto Timelock con hash
Un contratto Hashed Timelock (HTLC) utilizza diversi elementi delle transazioni di criptovaluta esistenti. Ad esempio, le transazioni HTLC utilizzano più firme, che consistono in una chiave pubblica-privata, per verificare e convalidare le transazioni. Ma ci sono due elementi che distinguono HTLC dalle transazioni di criptovaluta standard o dai normali contratti intelligenti.
Il primo elemento è l’hashlock. Un hashlock è un hash, o versione di un crittograficamente strapazzate chiave pubblica generata dal creatore di una transazione. La chiave privata associata viene quindi utilizzata per sbloccare l’hash originale. In HTLC, la parte originaria genera una chiave e l’ha hash. L’hash viene memorizzato in una pre-immagine che viene successivamente rivelata durante la transazione finale. Gli HTLC sono programmati per scadere dopo un certo periodo di tempo o numero di blocchi generati, creando una data di terminazione nota.
Il secondo elemento importante di HTLC è un blocco temporale. Due diversi timelock vengono utilizzati per impostare vincoli di tempo sui contratti generati utilizzando HTLC. Il primo è CheckLockTimeVerify (CLTV). Utilizza una base dei tempi per bloccare e rilasciare bitcoin. Ciò significa che i vincoli di tempo sono codificati e le monete vengono rilasciate solo a un’ora e una data specifiche o a un’altezza specifica della dimensione del blocco.
Il secondo è CheckSequenceVerify (CSV). Non dipende dal tempo. Invece, utilizza il numero di blocchi generati come misura per tenere traccia di quando finalizzare una transazione.
Per condurre una transazione utilizzando HTLC, le parti interessate devono aprire canali tra loro.
Esempi reali di timelock con hash
Supponiamo che Alice voglia scambiare il suo Bitcoin con Litecoin da Bob. Una tipica transazione HTLC tra di loro avviene come segue:
- Alice genera un hash dalla sua chiave privata e lo invia a Bob sulla blockchain di Litecoin. Genera anche un’immagine preliminare dell’hash creando una transazione nominale. Questa pre-immagine l’aiuterà a convalidare e finalizzare la transazione.
- Bob genera anche un hash dalla sua chiave e lo invia ad Alice. Oltre a questo, crea una pre-immagine conducendo una transazione nominale (in Litecoin) con Alice.
- Una volta che Alice riceve la transazione Litecoin di Bob, la firma utilizzando la chiave originale che è già disponibile con lei nella pre-immagine. Bob fa lo stesso da parte sua, usando la sua chiave privata per sbloccare la transazione di Alice.