Мы немного перепрыгнули BIP-16. Ладно.
Да. Это я на радостях))
Как я понял до BIP16 использовались
P2PK и
P2PKHBIP 16 подарил нам
P2SHЧто в свою очередь очен изменило архитектуру и добавило плюшки вроде MUTLISIG.
А сам SegWit уже в
P2WPK, P2WSHНет, немного не так.
Были
P2PK и
P2PKH и
m-of-n MSIG - стандартные выходы
Но уже этот зоопарк из трех вариантов был излишним. Хотелось иметь один вариант, для простоты.
И это был BIP-16 то есть
P2SHТеперь по сути scriptPubkey заносился внутрь scriptSig и может быть практически любым.
А в scriptPubkey оставался только хэш этого скрипта.
Использование
P2SH на 99% это мультисигнатурные транзакции
Но, повторюсь, там под капотом может лежать любой скрипт и изредка
встречаются редкие экземпляры.
Для совместимости
P2PK и
P2PKH и
m-of-n MSIG оставили стандартными и доступными
к использованию, но
m-of-n MSIG - он очень неудобный, чересчур много места занимает
в базе неизрасходованных выходов, поэтому в последних версиях клиента есть даже настройка
"не считать такой выход стандартным и не майнить его" - такое подталкивание юзеров к тому,
чтобы этим не пользовались.
Сегвит (версии v0) добавляет два стандартных выхода (не помню как называются)
и еще может быть завернут в P2SH