Indice

HTLC o Hash Time Locked Contract sono un tipo di smart contract o smart contract utilizzati per creare canali di pagamento.

UUna delle tecnologie più potenti all’interno linguaggio di programmazione de Bitcoin Script sono i noti Contratto HTLC o Hash Time Locked. Questi sono un tipo di contratti intelligenti o contratti intelligenti la cui capacità principale è quella di creare canali di pagamento o canali di pagamento. In questo modo, gli HTLC consentono la costruzione di tecnologie come Rete Lightning (LN) entrambi Bitcoin come negli altri criptovalute compatibile con questa capacità. Ciò significa che HTLC consente la creazione di protocolli di secondo livello in grado di accelerare notevolmente la scalabilità di Bitcoin. Tutto questo senza rinunciare alla sicurezza di questo blockchain.

Tuttavia, gli HTLC sono molto più di un semplice contratto intelligente. Sono l’unione di diverse altre tecnologie che alla fine consentono una funzionalità molto più complessa e secondo le esigenze di crescita di Bitcoin.

In questo articolo di Bit2Me Academy imparerai di più sui dettagli e sulle potenzialità di questo algoritmo blockchain.

Origine dell’HTLC

L’origine degli HTLC risale alla necessità di creare meccanismi che consentano una maggiore scalabilità in Bitcoin. Curiosamente, le prime idee che hanno portato all’HTLC sono piuttosto originali, curiose e persino problematiche in alcuni casi, come puoi vedere di seguito:

Il canale nSequence di Satoshi Nakamoto

La prima idea che ha portato all’HTLC è venuta proprio dal Satoshi Nakamoto, con il cosiddetto nSequenza Canali. Questi tipi di canali di pagamento vengono creati utilizzando il OPCODE nSequenza e nLockTime. In questo modo si potrebbe creare un sistema in cui l’utente potrebbe inviare una transazione con un valore di nLockTime (un blocco temporale) e un nSequence (un valore che consente la sostituzione della transazione con un altro). In questo modo, l’utente può effettuare un determinato importo di acquisti e pagamenti “istantanei”.

Verrebbero quindi aggiunti a una transazione finale che sostituirebbe la transazione iniziale prima che nLockTime e nSequence iniziali fossero definitivamente chiusi. In questo modo la nuova transazione pagherebbe tutte le spese degli acquisti effettuati nella stessa operazione.

Questo è possibile perché:

  1. Le nSequenze sono state progettate per consentire la sostituzione delle transazioni nel MemPool, se questo valore non è stato contrassegnato con il valore esadecimale 0xFFFFFFFF, poiché se è stato contrassegnato con quel valore il TX non può essere sostituito. In effetti, questo piccolo disegno è stato ciò che ha portato alla creazione del Sostituisci con Commissione o RBF. L’idea alla base del suo utilizzo nei canali nSequence era di aggiungere operazioni di pagamento in un TX e sostituirlo nel mempool, fino a quando detto TX non è stato considerato come transazione finale (contrassegnandolo con 0xFFFFFFFF nella sua nSequence).
  2. Con nLockTime, verrebbe fissato un limite di tempo in modo che i minatori possano finalmente prendere il TX e confermarlo. Fatto curioso, nLockTime funziona solo se nSequence è diverso da 0xFFFFFFFF, quindi effettivamente questo valore serve a garantire che i canali nSequence vengano truffati, garantendo il pagamento al venditore dopo un po’, anche se il canale non è stato chiuso da nSequence.

Certamente si tratta di una soluzione molto elementare, a senso unico (solo il creatore del TX poteva gestirla), con un tempo di vita limitato (l’uso di nLockTime e nSequence non consente operazioni infinite) e senza regole di consenso sicuro (tutto accade nella mempool dove nulla è confermato). Ma comunque, era ancora un’idea rivelatrice.

E vedere Bitcoin come un mezzo per creare canali di pagamento e costruire sistemi basati sul suo OP_CODE ha aperto molte possibilità, qualcosa che Nakamoto ha mostrato con grazia con questa idea. Il migliore? Questa idea era applicabile dalla versione 0.1.0 di Bitcoin, quindi fa parte del protocollo sin dal suo inizio.

Canali Spilman e CLTV

Altre due forme ben note di canali di pagamento sono Canali Spilman e i canali CLTV. Il primo di questi è stato proposto da Jeremy Spilman, in cui le transazioni multi-firma sono combinate con l’uso di nLockTime per evitare trappole che consentono il furto di fondi. Fondamentalmente, un Canale Spilman è composto da:

  1. Crea una transazione multi-firma 2 su 2 in cui l’acquirente e il venditore creano il canale di pagamento. La transazione viene solo creata, ma non trasmessa alla rete fino a quando non viene eseguita l’intera operazione. Questa prima transazione è nota come operazione di finanziamento.
  2. Successivamente viene creata una transazione che spende quella precedente utilizzando nLockTime che garantisce il pagamento del TX multi-firma. Questa transazione viene consegnata al venditore, che la firma e la restituisce all’acquirente.
  3. Il primo TX viene inviato alla rete per conferma, e una volta confermato puoi iniziare a ordinare quello che vuoi, dal momento che il canale di pagamento è stato aperto.
  4. Ora con ogni nuova transazione di pagamento, viene creato un TX che spende la transazione di finanziamento (la prima transazione creata). Questa operazione invia il pagamento di quanto richiesto al venditore e restituisce il resto all’acquirente. L’acquirente può spendere quanto vuole finché la sua operazione di finanziamento lo consente, se supera il limite, non potrà continuare a spendere. Se hai finito di spendere, chiudendo il canale con una modifica, questa andrà automaticamente all’acquirente.

Questo sistema può essere creato anche utilizzando OP_CODE, OP_CHECKLOCKTIMEVERIFY(CLTV). In questo caso, il CLTV consente solo l’inserimento di nuove condizioni per la chiusura del canale di pagamento che evitano alcune trappole (ad esempio il venditore non vuole chiudere il canale di pagamento quando si vuole smettere di consumare). Inoltre, l’uso di CLTV riduce al minimo i passaggi poiché non è necessario creare la seconda transazione del canale Spilman.

Queste due esperienze iniziali sono state ciò che ha portato alla creazione di HTLC, che poi ha portato alla creazione di Lightning Network. Questo al fine di implementare un secondo livello nella rete blockchain di Bitcoin per gestire le transazioni al di fuori di essa attraverso i canali di pagamento. Ciò è stato possibile grazie al lavoro di Joseph Poon e Tadge Dryja, che hanno ideato questo sistema nel 2016.

Come funzionano gli HTLC?

Il funzionamento dell’HTLC ricade su due parti molto importanti. Il primo è la sua capacità di eseguire hashlock, ovvero blocchi tramite hash delle transazioni che vengono effettuate. E il secondo è la capacità di eseguire blocco temporale, o blocchi temporali di quelle stesse transazioni. Queste due funzioni insieme sono ciò che consente agli HTLC di eseguire transazioni a determinate condizioni concordate nell’esecuzione del contratto. Soprattutto, queste transazioni sono protette a livello di hash e tempo. Questo li rende molto sicuri rispetto ai modelli di canale di pagamento iniziali, come il canale nSequence.

L’idea alla base è che quando un partecipante è interessato a fare una transazione, può contattare un’altra persona e raggiungere un accordo. Questo accordo consente a entrambi di eseguire transazioni a condizioni che entrambi accettano. Pertanto, entrambe le parti possono essere sicure che non ci saranno imbrogli nelle loro operazioni. Ciò fornisce la garanzia che i fondi non possono essere accessibili in modo dannoso in anticipo. E, allo stesso tempo, che le operazioni effettuate siano completate correttamente.

Per fare ciò, l’HTLC crea un hash univoco della chiave privata della transazione che viene consegnato a ciascuna delle parti (ciò che è possibile tramite l’hashlock). In questo modo, ciascuna parte deve partecipare alla transazione sia per aprire che per chiudere il canale di pagamento. Senza entrambi gli hash, la transazione (una volta aperta) non può essere chiusa per richiedere il pagamento. Questo forza la comunicazione tra le parti in modo che la fine della transazione sia firmata insieme.

Una seconda protezione aggiuntiva è data dal timelock, con il quale viene specificato un tempo ragionevole affinché chi partecipa alla transazione possa compiere le azioni necessarie affinché la transazione si svolga senza disagi. Trascorso tale tempo e l’operazione non si chiude, vengono eseguite le condizioni secondarie di tale operazione, che consentono di recuperare i fondi ai proprietari originari. Certo, le condizioni possono essere diverse, ma lo scopo del timelock è quello di dare il tempo alle parti di chiudere bene il canale, senza ricorrere a istruzioni secondarie.

Il modello di contratto HTLC è stato progettato pensando al lancio di Lightning Network di Bitcoin, una rete di pagamenti istantanei off-chain che ne beneficia per offrire sicurezza ai suoi utenti.

Principali usi di HTLC

L’uso principale degli HTLC è nella creazione di canali di pagamento, come descritto da Poon e Dryja nel loro lavoro su Lightning Network. Infatti, grazie agli HTLC, questo tipo di sistema è sicuro e consente una comunicazione bidirezionale, sia tra i partecipanti e creatori del canale, sia tra la rete. catena laterale e la catena principale delle criptovalute in cui viene eseguito detto HTLC. In questo senso, gli HTLC sono un metodo affidabile per costruire questo tipo di funzioni di pagamento avanzate, come ha dimostrato finora LN.

Un altro uso importante degli HTLC è in scambi atomici o scambi atomici. Grazie alla loro capacità off-chain, gli HTLC possono intercomunicare due diverse blockchain e consentire ai loro utenti di eseguire scambi atomici istantanei che possono quindi passare senza problemi alla catena principale.

Pro e contro di HTLC

Uno dei maggiori vantaggi degli HTLC è facilitare le transazioni sui canali di pagamento P2P. In questo modo è facile creare una rete di nodi che gestiscano tutti questi canali off-chain e instradare questi pagamenti in modo che le parti ricevano i pagamenti in sicurezza. In questo modo, senza la necessità di affidarsi a nodi intermedi, è possibile creare una gigantesca rete di pagamento, quasi istantanea, sicura e a bassissimo costo.

Un altro punto a favore degli HTLC è che le transazioni di pagamento possono essere protette con condizioni ben specificate. In questo modo è possibile evitare il furto di fondi o azioni dannose da parte di parti all’interno del sistema.

Inoltre, gli HTLC forniscono alla rete Bitcoin un grande miglioramento nella sua scalabilità e capacità di effettuare micropagamenti. Questo mentre riduce i colli di bottiglia sulla catena, le commissioni vengono ridotte e la rete si ridimensiona per servire sempre più persone.

Tuttavia, non tutto è positivo. Molti esperti del mondo della crittografia hanno riscontrato alcuni problemi negli HTLC. Innanzitutto c’è il punto di tracciabilità delle operazioni, il che significa che i pagamenti effettuati con HTLC non sono anonimi. Un altro svantaggio è che gli HTLC possono portare a sistemi più complessi e quindi a software con problemi di sicurezza non rilevati.

Quanto sai, Cryptonuta?

Gli HTLC sono un vero modo per migliorare i sistemi di pagamento utilizzando Bitcoin?

CERTO!

I canali di pagamento sin dai tempi di Satoshi Nakamoto, sono stati visti come la via da seguire per migliorare l’esperienza di pagamento utilizzando Bitcoin. Ciò ha portato gli sviluppatori e gran parte della comunità Bitcoin a vedere i canali di pagamento (incluso HTLC) come il futuro dei pagamenti istantanei, a partire dalla tecnologia leader in questo senso, Lightning Network (LN).

Altre alternative a HTLC

Nonostante i vantaggi offerti dall’implementazione degli HTLC, alcuni sviluppatori hanno il loro interesse focalizzato sullo sviluppo di nuove alternative a questi smart contract. Gli sviluppatori dell’ecosistema Lightning Network stanno unendo le forze per apportare profondi cambiamenti a questa rete. Ciò nell’ottica di utilizzare PTLC nell’esecuzione di transazioni con un livello di privacy molto più elevato rispetto a quelle attualmente offerte da HTLC.

Altri contratti intelligenti che stanno emergendo nell’esecuzione di transazioni multi-firma come Fittone. Tutto cerca di raggiungere una nuova era di contratti intelligenti nella rete Bitcoin che danno maggiore privacy, versatilità e sicurezza alle transazioni.