covenant

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

Attualmente, una transazione Bitcoin funziona nel seguente modo: quando si possiedono dei bitcoin bloccati in un determinato output e si vuole sbloccarli per utilizzarli, si crea una nuova transazione che dimostra che si ha la capacità di farlo.
Questa dimostrazione può avvenire attraverso la presentazione di una firma digitale valida, un hash corrispondente, o altri metodi.

Tuttavia, una volta dimostrato di avere il diritto di sbloccare quei bitcoin, si diventa il proprietario di tali bitcoin sbloccati e si è liberi di utilizzarli come si desidera. Non ci sono ulteriori restrizioni sull'uso di tali bitcoin.

Il concetto di "covenant" si riferisce a un tipo specifico di restrizione che può essere applicata a una transazione Bitcoin. Invece di limitarsi a seguire le istruzioni necessarie per sbloccare i bitcoin, il covenant richiede che anche la transazione risultante dallo sblocco dei bitcoin rispetti determinate limitazioni.

Un esempio tipico di covenant è il Check Template Verify (CTV).
Con il CTV, ad esempio, si può creare una condizione di sblocco che richiede che quando si sbloccano degli output, si possa creare solo una nuova transazione il cui hash sia compreso in una lista predefinita di hash, che rappresenta i template.

I Covenant sono una categoria di modifiche proposte alle regole di consenso di Bitcoin che consentirebbero a uno script di impedire a uno spender autorizzato di spendere a determinati altri script.

Nel contesto di Bitcoin, la definizione più utile di covenant è quando la scriptPubKey di un UTXO limita la scriptPubKey nel o negli output di una transazione che spende quell'UTXO.

Ad esempio, un Covenant può normalmente consentire la spesa solo a un insieme di script inseriti in una whitelist, come la restituzione di bitcoin al saldo dello stesso utente o la spesa a un indirizzo che consente la spesa a qualsiasi indirizzo arbitrario solo dopo un certo periodo di tempo.


aggiornato il 2023-06-21