locking script

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

Uno locking script, script di blocco, è una condizione di spesa impostata su un'output: specifica le condizioni che devono essere soddisfatte per spendere l'output in futuro. Storicamente, il locking script era chiamato scriptPubKey, perché di solito conteneva una chiave pubblica o un indirizzo Bitcoin (hash della chiave pubblica).

Il termine locking script potrebbe essere più adatto perché aiuta a comprendere la gamma molto più ampia di possibilità di questa tecnologia di scripting.

Nella maggior parte delle applicazioni bitcoin, quello che chiamiamo locking script apparirà nel codice sorgente come scriptPubKey.

Il locking script viene anche chiamato witness script (vedi segwit) o più in generale puzzle crittografico.

Questi termini significano tutti la stessa cosa, a diversi livelli di astrazione.

Per sbloccare il locking script e quindi poter spendere l'UTXO su cui è impostato, è necessario eseguire lo script di sblocco o unlocking script corrispondente per vedere se soddisfa la condizione di spesa.

Il fatto che le transazioni siano bloccate con gli script significa che possono essere bloccate in una varietà di modi diversi, richiedendo una varietà di chiavi diverse. Per ottenere meccanismi di blocco diversi, vengono utilizzati degli opcode diversi, ad esempio:

  • OP_CHECKSIG, che verifica una chiave pubblica rispetto a una firma, è la base del classico indirizzo P2PKH
  • OP_CHECKMULTISIG controlla in modo analogo i multisig
  • OP_CHECKLOCKTIMEVERIFY o CLTV e OP_SEQUENCEVERIFY o CSV costituiscono la base di timelock più complessi
  • OP_RETURN che consente una transazione non spendibile, che viene di solito utilizzato per trasportare dati


aggiornato il 2022-09-30