Большинство транзакций, выводимых на адреса P2SH, имеют следующий scriptPubKey:
HASH160 f45d94733d430261962932e0c847075195916a04 OP_EQUAL
Насколько я понимаю, эту транзакцию не нужно подписывать. Это правда?
Пользователю просто нужно предоставить redeemScript, HASH160 которого равен f45d94733d430261962932e0c847075195916a04.
Итак, если мы знаем, что:
HASH160(data1) = hash1
HASH160(data2) = hash2
и пользователь создает два выхода транзакции на адреса P2SH с помощью scriptPubKeys:
HASH160 f45d94733d430261962932e0c847075195916a04 OP_EQUAL
тогда scriptPubKey одинаков для обоих выходов транзакции, но почему redeemScript всегда отличается?
HASH160(data1) = hash1
HASH160(data2) = hash1
....
????
Транзакция P2SH
выполнит все, что redeemScript
вы предоставите, и это должна быть стандартная транзакция:
Транзакции, которые компенсируют эти минусы pay-to-script, считаются стандартными только в том случае, если сериализованный скрипт, также называемый redeemScript, сам по себе является одним из других стандартных типов транзакций. См. BIP16
Эти стандартные транзакции, такие как a, P2PKH
требуют подписи, поэтому, даже если вы предоставите право redeemScript
, если оно не будет выполнено успешно, весь tx станет недействительным.
Майк Д