CLTV

acronimo di: Check Lock Time Verify

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

CLTV è un'interessante funzionalità di timelock che esiste in Bitcoin progettata per consentire ai suoi script di eseguire pianificazioni temporali avanzate sulle transazioni. CLTV rende possibile bloccare output (UTXO) che non possono essere spesi fino a quando non è arrivato un tempo determinato in precedenza.

CLTV è stato introdotto a dicembre 2015 nel soft fork definito dal BIP-0065, nel quale lo sviluppatore Peter Todd descrive il nuovo Opcode OP_CHECKLOCKTIMEVERIFY. Questa funzione consente a una transazione Bitcoin di rimanere bloccata nel tempo e non diventare effettiva fino al raggiungimento di una data e ora o uno specifico block height.

CLTV può essere utile per casi nei quali si vuole pianificare pagamenti futuri per date specifiche.

Come funziona CLTV Quando un utente stabilisce ed esegue una transazione con il codice OP_CHECKLOCKTIMEVERIFY, gli output di questa transazione saranno attivati solo quando la condizione stabilita sarà soddisfatta e non quando la transazione sarà eseguita. Ciò significa che la transazione viene eseguita correttamente ma le criptovalute rimarranno bloccate nel tempo fino a un momento futuro.

Il codice OP_CHECKLOCKTIMEVERIFY viene eseguito come parte di uno script Bitcoin e la sua programmazione si basa sull'uso di Unix Timestamp o su blockheight all'interno della blockchain.

Le condizioni per il fallimento dello script in una transazione CLTV sono le seguenti:

  1. che lo stack sia vuoto e che non vi sia un tempo definito per il codice da eseguire il confronto e la verifica.
  2. che l'elemento superiore dello stack sia inferiore a quello della condizione stabilita per sbloccare gli output. Ciò indica che il tempo necessario per sbloccare la transazione non è trascorso.
  3. Un'altra condizione di fallimento si verificherà se il timelock stabilito viene misurato in block height e l'elemento superiore dello stack utilizza misurazioni del tempo (in secondi) o viceversa.
  4. il campo nSequence di questa voce è impostato su 0xFFFFFFFF.

Una transazione CLTV può essere inclusa nella blockchain solo una volta che ha superato il tempo o le condizioni stabilite. Una volta che ciò accade, le transazioni CLTV vengono immediatamente verificate e aggiunte alla blockchain e vengono considerate spese.

Relazione CLTV e nLockTime Sia CLTV che nLockTime sono due funzioni che consentono a Bitcoin di programmare azioni che dipendono dal tempo o dall'altezza del blocco per la loro corretta esecuzione. nLockTime garantisce che Bitcoin possa pianificare l'esecuzione delle transazioni a una certa block height o timestamp, mentre CLTV consente di aggiungere un ulteriore livello di verifica e programmazione a nLockTime. Questo perché CLTV prende nLockTime e verifica che sia presente un insieme aggregato di condizioni pianificate per la sua attivazione, una situazione che era molto più diretta con nLockTime originale. CLTV consente anche di alterare alcune condizioni originali della transazione se determinate condizioni sono soddisfatte.

Ad esempio, un indirizzo multi-firma 2 su 3, che non è stato mosso in un certo periodo di tempo, può modificare i suoi parametri di autenticazione in 1 su 3, in modo che alcune delle persone inizialmente autorizzate possano movimentare i fondi in esso contenuti. Questa è una funzionalità unica che CLTV può offrire che nLockTime da solo non può fare.

Una delle maggiori caratteristiche di CLTV è che il suo utilizzo consente la creazione di script che possono facilmente modificare le condizioni per l'attivazione di un evento o transazione nella blockchain di Bitcoin.

Implementazione di CLTV Una delle potenzialità più grandi e più importanti della funzione CLTV è quella di consentire la creazione di canali di pagamento e che questi possano essere implementati correttamente. Attraverso i canali di pagamento è possibile creare micro-transazioni al di fuori della blockchain. Tutto questo senza dover pagare tante commissioni per ognuna e senza appesantire la blockchain.

Nei canali di pagamento, un utente può effettuare una transazione a un altro depositando una certa quantità di criptovalute in un file indirizzo multi-firma (MultiSig). Entrambi gli utenti avranno accesso a quell'indirizzo. E l'utente che esegue la transazione può firmare piccole transazioni che verranno fatte all'altro utente da quei fondi.


aggiornato il 2022-03-16