Как создать транзакцию p2sh со значением scriptsig OP_true?

Как я могу создать транзакцию p2sh со скриптом, содержащим только OP_TRUE, устраняя необходимость в цифровой подписи, которая будет транслироваться и майниться?

Также может кто-нибудь привести пример такой транзакции?

@ Майкл Фолксон Я вижу, что тег bitcoin-core-developmentбыл добавлен вами, но я не понимаю, как это связано с вопросом, можете ли вы объяснить?
@VojtěchStrnad: Не уверен, это было давно! Думаю, я думал, что это связано с функциональным тестом, но теперь удалено :)

Ответы (1)

Здесь у вас есть пример расходования транзакции из вывода P2PKH и создания вывода P2SH с OP_1.

И здесь у вас есть аналог , транзакция, проводящаяся из первой (со входным сценарием '0151') и генерирующая вывод P2PKH.

Я создал оба с использованием библиотеки Python, соавтором которой я являюсь. Вы можете проверить это здесь .

Я добавил новые транзакции, включая комиссию, чтобы гарантировать, что они попадут в блок.
Всегда ли выходной сценарий, который вы используете для финансирования транзакции p2sh, должен быть OP_HAS160 (хэш) OP_EQUAL?
Да, это структура любого сценария вывода P2SH.
Можно ли создать подобную транзакцию в основной сети?
Конечно. Однако вы должны быть осторожны, любой сможет выкупить его.
Будет ли транзакция со scriptsig 0151 считаться стандартной или нестандартной?
Стандартный AFAIK, это просто толчок данных.
Итак, как только выходной сценарий, который вы используете в качестве входных данных, имеет значение OP_HASH160 (хэш) OP_EQUAL , вы можете создать транзакцию p2sh с помощью scriptsig OP_TRUE, которая не требует цифровой подписи?
Вы немного путаетесь в понятиях. Если вы тратите UTXO типа P2SH, который инкапсулирует хэш OP_True, вы можете создать транзакцию P2SH, которая тратит его, просто помещая 1 в стек.
Так как же узнать, инкапсулирует ли он хэш OP_TRUE и как выглядит хеш OP_TRUE?
has160(A) = hash_Aнезависимо от того, сколько раз вы его вычисляете. Таким образом, хэш OP_True всегда будетda1745e9b549bd0bfa1a569971c77eba30cd5a4b
Итак, если utxo не инкапсулирует OP_TRUE, существует ли какой-либо другой код операции или комбинация кодов операций, которые можно использовать для создания транзакции, которую можно транслировать и майнить?
Да, комбинация op_code не имеет значения. Например, вы можете создать P2SH, инкапсулирующий OP_2 OP_EQUAL, а затем погасить его нажатием 2. Существует множество комбинаций, которые не подразумевают подписи.
Итак, существует ли какой-либо код операции или комбинация кодов операций, которые сделают транзакцию действительной независимо от того, что инкапсулирует выходной сценарий, и если нет, то как вы можете определить, что инкапсулирует выходной сценарий, чтобы создать scriptsig с необходимыми кодами операций?
Обновлены ссылки на blockstream.info, так как предыдущие ссылки на обозреватель блоков были удалены.