UTXO je uzamknuté podmienkou
Každý výstup transakcie nesie sumu a scriptPubKey. Keď ho nová transakcia použije ako vstup, poskytne scriptSig, witness alebo oboje podľa typu výstupu. Uzol vezme presnú predchádzajúcu transakciu, vykoná príslušné pravidlá a odmietne pokus, ktorý skončí neúspechom.
Bežné podmienky kontrolujú podpis, hash verejného kľúča, viac podpisov, časový zámok alebo hash preimage. Sieť nečíta občianske meno ani úmysel zmluvy; kontroluje iba údaje, ktoré protokol dokáže deterministicky overiť.
Zásobník namiesto bežnej aplikácie
Dáta a výsledky operácií sa ukladajú na zásobník. Opcode môže vložiť hodnotu, porovnať dve položky, zahashovať údaj alebo overiť podpis. Platný skript musí rešpektovať limity veľkosti, počtu operácií a konkrétnej verzie skriptu.
Script nemá všeobecné slučky a pri overovaní nemôže ľubovoľne volať internet, cenu na burze ani súkromnú databázu. Také obmedzenie zmenšuje priestor pre neukončiteľný výpočet a pomáha, aby všetky uzly dospeli k rovnakému výsledku.
Hash skriptu oddeľuje platcu od podmienky
P2SH podľa BIP 16 dovolilo odosielateľovi uzamknúť výstup hashom redeemScriptu. Celý skript a údaje potrebné na jeho splnenie ukáže až ten, kto výstup míňa. SegWit neskôr priniesol P2WSH a Taproot ďalší model skriptovej cesty.
Hash nepotvrdzuje, že skrytá podmienka je rozumná alebo obnoviteľná. Peňaženka musí poznať skript, kľúče a derivácie; samotná adresa na neskoršiu obnovu zložitej peňaženky nestačí.
Konsenzus a politika nie sú to isté
Konsenzuálne pravidlá určujú, čo smie byť v platnom bloku. Relay politika uzla je užší miestny filter toho, čo uzol prijme do mempoolu a prepošle. Transakcia môže byť konsenzuálne platná, ale neštandardná, takže sa bežnou cestou šíri ťažšie.
Ručne písať skripty s reálnymi peniazmi je rizikové. Chybná vetva môže mince zamknúť navždy; úspešný test jedného spôsobu minutia navyše nedokazuje bezpečnosť všetkých ostatných vetiev.