CLTV o CheckLockTimeVerify è un'interessante funzionalità di blocco temporale che esiste in Bitcoin progettata per consentire ai suoi script di eseguire pianificazioni temporali avanzate sulle loro transazioni. Una funzione che permette di programmare script avanzati adeguati alla sempre crescente richiesta di funzioni all'interno di Bitcoin.
Lall'arrivo di Bitcoin, insieme alla tecnologia innovativa Blockchain, ha aperto un mondo di possibilità; denaro programmabile compreso. Sì, come senti, denaro programmabile. Bitcoin integra molte funzioni e una di queste funzioni è nota come Verifica tempo di blocco Verifica (CLTV), che lo rende possibile per uscite non spese (UTXO) di Bitcoin sono bloccati e non possono essere spesi fino a quando non è arrivato un tempo determinato in precedenza.
La funzione CLTV è stato integrato in Bitcoin Core attraverso la forcella morbida BIP-0065, in cui il suo sviluppatore Peter Todd descrivere il nuovo codice operativo (OP_CODE) OP_CHECKLOCKTIMEVERIFY. Questa funzione consente a una transazione eseguita in Bitcoin di rimanere bloccata nel tempo e non diventare effettiva fino al raggiungimento di una data, ora o altezza di blocco specifici.
Pertanto, la funzione CLTV è molto utile e positiva per vari casi d'uso all'interno del sistema Bitcoin. Ad esempio, per il risparmio a lungo termine di fondi destinati al pagamento dell'università o alla laurea di un parente. È anche possibile pianificare pagamenti futuri per date specifiche, come noleggi, servizi, appuntamenti medici o persino un'eredità intelligente tra gli altri.
Allo stesso modo, questa funzione è particolarmente importante per l'apertura di nuove alternative di pagamento. Ad esempio la creazione Canali a pagamento in stile CLTV. Queste canali di pagamento Consentono transazioni al di fuori della blockchain mantenendo tutta la sicurezza e i vantaggi di una transazione convenzionale avvenuta all'interno della catena. Inoltre, la funzione CLTV consente anche la creazione di altre alternative come rimborsi o trust a tempo limitato. Le applicazioni e i casi d'uso che questa funzione ha sono davvero infinite.
Come funziona CLTV?
Quando un utente stabilisce ed esegue una transazione con il codice OP_CHECKLOCKTIMEVERIFY, gli output di detta 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 Times (Unix Timestamp) o sulle altezze dei blocchi all'interno della blockchain. Cioè, è necessario stabilire una condizione in uno qualsiasi di questi parametri per fare un confronto con l'ora corrente. Così lui OP_CHECKLOCKTIMEVERIFY controlla l'elemento superiore della pila con il blocco temporale (nLockTime) stabilito nella transazione. Se, durante questo confronto, si scopre che la condizione è stata soddisfatta, lo script può essere eseguito, altrimenti lo script fallirà.
Le condizioni per il fallimento dello script in una transazione CLTV sono le seguenti:
- Che lo stack sia vuoto e che non vi sia un tempo definito per il codice per eseguire il confronto e la verifica.
- Che, come già accennato, l'elemento superiore dello stack è inferiore a quello della condizione stabilita per sbloccare le uscite non spese. Ciò indica che il tempo necessario per sbloccare la transazione non è trascorso.
- Un'altra condizione di errore si verificherà se il blocco temporale stabilito viene misurato in altezza del blocco e l'elemento superiore dello stack utilizza misurazioni del tempo (in secondi) o viceversa.
- Campo nSequence di questa voce è impostato su 0xFFFFFFFF.
Poi, Una transazione CLTV può essere inclusa nella blockchain solo una volta che ha superato il tempo o la condizione stabiliti. 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. Ma la relazione e la portata di entrambi vanno molto oltre. Da un lato, nLockTime garantisce che Bitcoin possa pianificare l'esecuzione delle transazioni a una certa altezza di blocco (blocco temporale del blocco) o per timestamp o timestamp (blocco temporale specifico). Con questo, Bitcoin consente la possibilità di programmare i pagamenti utilizzando questi parametri.
D'altra parte, 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ù semplice 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 mobilitato 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 mobilitare i fondi presenti Contenuti. Questa è una funzionalità unica che CLTV può offrire e nLockTime da solo non può.
Quanto sai, Cryptonuta?
CLTV è in grado di modificare le proprietà dello script nel tempo e in determinate condizioni?Certo!
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 far crollare 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. Questo finché non ottieni il prodotto desiderato. Il resto dei fondi ti verrà restituito in una transazione di restituzione per ogni micro-transazione che effettui. Mentre il commerciante potrà richiedere il pagamento finale accumulato, che sarà stato effettuato senza far crollare la blockchain e per il quale Maria ha pagato solo una commissione.
Esempio di come funziona CLTV
Se Maria vuole vedere un video, ma per questo deve pagare 1 sat per secondo guardato. Non è conveniente per Maria eseguire queste transazioni di 1 sat al secondo tramite una transazione convenzionale in Bitcoin. Poiché per questo devi pagare la commissione per ogni transazione che effettui. Inoltre, è necessario attendere la conferma della transazione in un blocco; cosa succede ogni 10 minuti in Bitcoin.
Vedendo che non è conveniente, Maria decide di creare un canale di pagamento. In questo canale effettuerai un deposito a un indirizzo multi-firma di 0.5 BTC, che equivale a 50.000.000 satoshi. Sia il commerciante che Maria avranno accesso all'indirizzo multi-firma. Quindi, quando Maria inizia a visualizzare il video, firmerà una transazione in cui invierà 1 seduta al commerciante per il primo secondo visualizzato. E 49.999.999 posti a un indirizzo di cambio della tua iscrizione.
Questo processo verrà ripetuto più volte finché Maria continua a guardare il video. Cioè, continuerà a firmare micro-transazioni e pagare la quantità di satoshi equivalente ai secondi che vede del video e depositando i suoi resi in un indirizzo di ritorno. Se Maria ha visualizzato solo 2 secondi di video, firmerà una nuova transazione, ma questa volta per 2 si è seduto per il commerciante e 49.999.998 si è seduto per il suo indirizzo di ritorno. Se hai visto solo 3 secondi, firmerai un'altra transazione, ma questa volta 3 si sono seduti per il commerciante e 49.999.997 si sono seduti per il tuo indirizzo di ritorno.
Durante questo processo, il commerciante non rivendicherà né firmerà 1 transazione sat o 2 sat ricevute. Piuttosto, aspetterà che Maria veda tutto ciò che vuole dal video e richiederà il pagamento finale. Cioè, la transazione più grande. Il resto delle transazioni effettuate all'inizio non verranno firmate poiché comporterebbe una doppia spesa. Quindi il commerciante dovrebbe scegliere la transazione più grande contenente tutti i satoshi ricevuti, in questo esempio la transazione 3 satoshi.
Inoltre, alla fine il merchant firma una sola transazione, questa è quella che verrà aggiunta alla blockchain e sarà l'unica per la quale dovrà essere annullata la commissione corrispondente ai miner. Inoltre, Maria può implementare un file Transazione CLTV all'inizio per garantire la restituzione dei fondi depositati nell'indirizzo multi-firma. Se imposti un determinato orario per la firma della transazione da parte di entrambi e per qualsiasi motivo, uno o nessuno di voi potrà firmarla prima di tale orario. Così Maria può riavere i suoi soldi. Poiché se la transazione non viene firmata prima della condizione stabilita, Maria può firmare la transazione e riavere i suoi soldi dopo che è trascorso il tempo stabilito.
Quindi in breve il codice OP_CHECKLOCKTIMEVERIFY offre un vantaggio positivo per l'implementazione di smart contract. Ciò garantisce quindi l'integrità dei fondi fino al raggiungimento della data e ora stabilita o dell'altezza del blocco. Pur evitando errori di sistema da parte di malleabilità delle transazioni.