у входа
scriptSig это результат подписи публичного ключа с опкодом подписи, приватным ключом подтверждающим владение кошельком
Я это увидел где-то так
scriptSig = sign(pubkey + OP_CHECKSIG, privKey),
Не в этом суть.
есть scriptPubKey - это некоторая функция
есть scriptSig - по сути дела это параметры передающиеся в функцию
валидация проходит если scriptPubKey ( scriptSig ) = 1
Это оригинальный концепт.
Потом подумали - а нахер нам иметь разные функции? давайте сделаем одну
но будем выполнять её хитро. То есть выполнение такое
return scriptPubKey ( scriptSig ) == 1 && executeLast ( scriptSig ) == 1
условно говоря, сперва выполняется по-старому алгоритму завещанному сатоши,
а потом еще выполняется сам последний операнд
при этом выполняются всякие проверки подписей.
Это BIP-16
А потом еще подумали и решили, а давайте если последний операнд имеет определенный формат,
то будем еще одну проверку делать, а сам код этой проверки вынесем в другое место?
Ладно, смысл в том, что пока вы не поймете в чем суть BIP-16 вы о сегвите не поймёте
Я вас только запутаю