segwit вложен в p2sh

Я понимаю, что адреса P2SH используются для того, чтобы «неосведомленные» кошельки SegWit могли создавать выходные данные, которые могут быть потрачены кошельками SegWit (пожалуйста, поправьте меня, если я что-то не так понял). Для новых клиентов, я думаю, я понял: они проверят, что скрипт, содержащийся в свидетеле, совпадает с хэшем скрипта, и выполнят его.

Чего я не понимаю, так это того, как этот вывод может быть потрачен клиентом, поддерживающим segwit, в глазах старого клиента. Потому что это явно не похоже на то, что каждый может потратить. Как это работает?

Спасибо.

Почему не похоже, что каждый может потратить?
Мое заявление исходит из убеждения, что адрес p2sh был сгенерирован путем кодирования hash160 <хэш программы-свидетеля> op_equal. Я нашел это: github.com/bitcoinbook/bitcoinbook/issues/440 . Это означает, что расшифровка делает его доступным для старых клиентов, верно?
В дополнение к предыдущему комментарию: github.com/bitcoin/bips/blob/master/… . Клиенты Segwit используют непустой scriptSig при расходовании выходных данных, полученных от старых клиентов.

Ответы (1)

На bitcointalk была более длинная ветка обсуждения, я привожу две ссылки:

https://bitcointalk.org/index.php?topic=2333913.msg23758008#msg23758008

https://bitcointalk.org/index.php?topic=1682183.msg21389041#msg21389041

(Обе темы стоит прочитать целиком). Вкратце: прежде чем узлы начнут разговаривать друг с другом, они проверяют возможности. И узел segwit уменьшит информацию для узла без segwit, чтобы он мог понять детали транзакции.