Cosa sono i covenant su Bitcoin? Una panoramica di CTV e CheckTXHASH

Il_Mars_
6 min readMar 2, 2024

Traduzione dell’originale a cura di Il_Mars_

Analizziamo una delle proposte che potrebbero aumentare le potenzialità delle transazioni Bitcoin.

Bitcoin è noto per la sua incapacità di eseguire smart contact e script arbitrari, ma come abbiamo descritto nei precedenti articoli del blog, consente di inserire in una transazione condizioni di spesa complesse.

Condizioni di spesa

Ogni indirizzo Bitcoin contiene una serie di condizioni di spesa. La più semplice è “il mittente di questa transazione possiede la chiave privata di questo indirizzo”. Esistono altre condizioni di spesa, come il blocco temporale, che consente di effettuare una transazione solo dopo un certo periodo di tempo, o il multisig, che richiede l’accesso a più chiavi private per effettuare una transazione.

Sebbene attualmente le condizioni di spesa su Bitcoin offrano già opzioni piuttosto avanzate, fanno tutte essenzialmente la stessa cosa: se la condizione di spesa è soddisfatta, i bitcoin possono essere spesi in qualsiasi modo il mittente scelga.

Covenant

Un covenant (= accordo, patto) è una condizione di spesa che introduce nuove opzioni per spendere dei bitcoin. Per fare un semplice esempio, un indirizzo Bitcoin potrebbe contenere un covenant che consente di inviare quei bitcoin solo a un altro indirizzo predeterminato; oppure potrebbe limitare quali UTXO possono essere spese da questo indirizzo Bitcoin.

Diamo un’occhiata più da vicino a due proposte che mirano a implementare questa funzionalità:

Check Template Verify (CTV)

CTV è una proposta per introdurre i covenant nello script di Bitcoin. Consente di utilizzare condizioni di spesa che verificano se i dati della transazione corrispondono a quelli stabiliti nel covenant effettuando l’hashing di alcuni dati della transazione e confrontandoli con i valori di hash predeterminati nel covenant.

Un UTXO bitcoin con 3 diverse condizioni di spesa

Poiché l’hash della transazione viene calcolato solo utilizzando gli input, gli output, la versione e il tempo di blocco, può essere calcolato in anticipo. Con un covenant CTV, un indirizzo Bitcoin si impegna a inviare in futuro solo le transazioni precalcolate.

Le transazioni precalcolate a cui si fa riferimento nei covenant

Ciò significa che prima di ricevere transazioni su questo indirizzo Bitcoin, è necessario sapere esattamente come si intende spenderle. Come vedremo in seguito, questo vincolo può avere dei vantaggi quando si tratta di proteggere i propri bitcoin.

CheckTXHASHVerify

Un’altra proposta per abilitare i covenant su Bitcoin è “CheckTXHashVerify”, che funziona in modo molto simile a CTV ma obbliga anche a rispettare determinati dati di transazione come condizione di spesa.

A differenza di CTV, CheckTXHashVerify non esegue il commit su un intero insieme di dati di transazione. Può invece focalizzarsi solo su alcuni dati della transazione, ad esempio il numero di input, output o il tempo di blocco. Un elenco esaustivo delle condizioni è disponibile qui.

Covenant ricorrenti

Un covenant ricorrente (recursive covenant) è un tipo di condizione di spesa che richiede che anche l’indirizzo successivo del destinatario includa quella stessa condizione di spesa. Un esempio reale è rappresentato dalle associazioni di proprietari di case negli Stati Uniti, che richiedono al proprietario di una casa di vendere la propria abitazione solo a chi manterrà la casa nell’associazione di proprietari, che a sua volta è vincolata alla stessa condizione.

I membri della comunità Bitcoin hanno messo in guardia dai covenant ricorrenti, perché temono che possano consentire pratiche invasive di AML e KYC, come ad esempio un covenant che inserisca nella whitelist solo alcuni indirizzi Bitcoin associati a informazioni KYC.

Esistono altre proposte di covenant che vanno ben oltre i risultati ottenuti dalle due implementazioni menzionate. Alcune di esse prevedono recursive covenant. CTV e CheckTXHashVerify non consentono questa tipologia di covenant perché richiedono che tutti i dati delle transazioni future (inclusi nell’accordo) siano noti al momento della creazione dell’indirizzo bitcoin.

Casi d’uso

I covenant su Bitcoin possono essere utilizzati in vari modi. Vediamo tre esempi:

Vault

Un modo per rendere la self custody potenzialmente più sicura e più pratica sono i vault. Un vault è un indirizzo Bitcoin in cold storage che può inviare fondi solo a un indirizzo predeterminato. Questo indirizzo Bitcoin predeterminato ha un blocco temporale, il che significa che può spendere solo dopo un certo periodo di tempo. Oltre al blocco temporale, ha anche un covenant che gli consente di riinviare i fondi all’indirizzo cold storage senza attendere che termini il periodo di blocco.

In questo modo è possibile costruire una wallet in grado di “annullare” le transazioni malevoli/errate entro un intervallo di tempo predefinito. Se il blocco temporale sull’indirizzo intermedio è, ad esempio, di 7 giorni, l’utente ha una settimana di tempo per “annullare” effettivamente una transazione in uscita che non intendeva inviare.

Congestion control

Un’altra caratteristica interessante che potrebbe essere abilitata dai covenant è il congestion control. Un utente Bitcoin potrebbe inviare una transazione intermedia con una commissione più alta e che include una transazione futura.

Una transazione con congestion control e una serie di transazioni successive.

Ciò significa che in tempi di commissioni elevate, dove un exchange di bitcoin dovrebbe solitamente inviare una transazione di grandi dimensioni con molti output costosi, può invece inviare una transazione con un unico output che si impegna a dividere i fondi in molti output quando le commissioni sono più basse.

Channel factory

I covenant potrebbero anche migliorare la scalabilità di Lightning. Le channel factory sono canali Lightning condivisi tra più di due parti. Consentono ai partecipanti di una channel factory di aprire canali tra loro senza la necessità di inviare transazioni aggiuntive on chain.

Una channel factory con tre partecipanti e tre canali

In una channel factory a 3 parti, ogni partecipante può inviare una transazione on-chain e ricevere 2 canali lightning. In una channel factory a 4 parti, si passa a 3 canali lightning per partecipante, e così via. Le channel factory permettono di ridurre lo spazio richiesto nei blocchi consentendo di aprire un maggior numero di canali Lightning per transazione on chain.

Conclusione

I covenant promettono di cambiare il modo in cui pensiamo alle condizioni di spesa su Bitcoin. Anche se al momento non ci sono piani precisi per attivare i covenant su Bitcoin, si tratta di un aggiornamento che potrebbe abilitare molte funzioni interessanti.

FAQ

Cosa sono i covenant su Bitcoin?
I covenant sono condizioni di spesa che introducono nuove opzioni per la gestione delle transazioni Bitcoin, consentendo un controllo più sicuro e specifico sulla spesa dei bitcoin.

Cos’è Check Template Verify (CTV)?
CTV è una proposta che consente agli indirizzi Bitcoin di impegnarsi a inviare transazioni precalcolate verificando se i dati delle transazioni corrispondono a valori hash predeterminati.

In cosa differisce CheckTXHashVerify da CTV?
A differenza di CTV, CheckTXHashVerify si impegna a rispettare determinati dati di transazione come condizione di spesa, consentendo un controllo più flessibile sulle transazioni.

Cosa sono i covenant ricorrenti?
I covenant ricorrenti richiedono che tutte le transazioni future provenienti da un indirizzo includano la stessa condizione di spesa, limitando potenzialmente le transazioni a un insieme predefinito di indirizzi.

Come si possono usare i covenant per i vault?
I vault utilizzano i covenant per creare depositi sicuri che possono inviare bitcoin solo a indirizzi predeterminati, migliorando la sicurezza.

Che cos’è il congestion control su Bitcoin?
Il congestion control utilizza i covenant per gestire la congestione della rete impegnandosi a effettuare transazioni future con commissioni potenzialmente più basse.

Come funzionano le channel factory con i covenant?
Le channel factory utilizzano i covenant per scalare la rete Lightning permettendo di aprire più canali per ogni transazione on-chain.

Grazie per essere arrivati fino alla fine di questo articolo! Se l’avete trovato utile, condividetelo per raggiungere più persone possibili. Non dimenticatevi di seguirmi su Twitter per non perdervi i miei contenuti relativi a Bitcoin!

--

--