Il linguaggio con cui ogni transazione definisce le condizioni per spendere i bitcoin che trasferisce.
Quando ricevi bitcoin, quei fondi non vengono associati al tuo nome ma a un piccolo programma che stabilisce a quali condizioni potranno essere spesi. Per spenderli occorre fornire i dati che soddisfano quel programma, e ogni nodo li esegue per verificare che tornino. Nel caso più comune la condizione è una sola — dimostrare con una firma di possedere la chiave privata corrispondente — ma lo stesso meccanismo permette di richiedere più firme, oppure di rendere i fondi spendibili solo dopo una certa data.
Il linguaggio è volutamente limitato: non ha cicli e non può eseguire calcoli arbitrari. È una scelta di progetto, non una mancanza. Ogni nodo del mondo deve poter verificare ogni transazione in fretta e con un costo prevedibile, e un linguaggio più potente renderebbe impossibile garantirlo.
Vedi anche: Transazione, UTXO, Firma digitale, Multi-sig (multifirma), Taproot, Nodo (full node).