Каждый выход содержит небольшую программу, скрипт блокировки. Чтобы потратить его, вход предоставляет часть для разблокировки. Узлы запускают их вместе: если программа заканчивается true, трата действительна.
Стековая машина
Скрипт работает на стеке: элементы помещаются, а операции берут элементы сверху и помещают результаты. Классическая запись для оплаты в старом формате выглядит так: OP_DUP OP_HASH160 <хеш публичного ключа> OP_EQUALVERIFY OP_CHECKSIG. В переводе: скопируй предоставленный публичный ключ, получи его хеш, проверь, совпадает ли он с тем, что в выходе, затем проверь подпись относительно него.
Ограничен намеренно
В скрипте нет циклов и общей памяти. Каждая программа завершается быстро, и каждый узел может предсказать стоимость ее проверки. Это делает его гораздо менее выразительным, чем языки некоторых других блокчейнов, и гораздо более простым для понимания.
- Мультиподпись: требуется несколько подписей из набора ключей.
- Хеш-блокировки: требуется раскрытие секрета, хеш которого известен, как это делает Lightning.
- Временные блокировки: запрещают трату до определенной даты или высоты блока.