Поле ScriptSig во время подписи транзакции P2PKH

В P2PKHтранзакциях содержимое после подписания транзакции содержит: <signature(with hash_flag)><public_key>. Однако, поскольку подпись не может подписать сама себя, в процессе подписи ScripSigполе временно устанавливается на определенное значение.

Согласно принятому ответу от Как выкупить базовый Tx? , поле временно устанавливается с ScriptPubKeyполем из того , что UTXOмы хотим выкупить (в данном случае a P2PKH ScriptPubKeyс RIPEMD160предыдущим адресом). Однако, согласно pybitcointools VButerin , в поле P2PKH ScriptPubKeyуказывается RIPEMD160ваш собственный адрес (тот, который вы используете в качестве источника, и какой закрытый ключ будет использоваться для подписи транзакции).

Я использовал функцию подписи pybitcointools несколько раз, и сгенерированные транзакции действительны, но ответ на вышеупомянутый вопрос был хорошо принят, поэтому на данный момент я совершенно не понимаю, что должно содержать поле.

Ответы (1)

В соответствии с принятым ответом из раздела Как выкупить базовый Tx?, поле временно устанавливается с полем ScriptPubKey из UTXO, которое мы хотим выкупить (в данном случае ScriptPubKey P2PKH с RIPEMD160 предыдущего адреса). Однако, согласно pybitcointools от VButerin, поле устанавливается с помощью P2PKH ScriptPubKey с RIPEMD160 вашего собственного адреса (тот, который вы используете в качестве источника, и какой закрытый ключ будет использоваться для подписи транзакции).

Ты дважды говоришь одно и то же.

Существовала транзакция T1 с выходом T1:0 , имеющим scriptPubKey P2PKH(K1) . Это транзакция, которая зачислила вас. В результате был создан UTXO со скриптом P2PKH(K1) и вашим собственным ключом K1 .

Вы пытаетесь создать транзакцию T2 с входом T1:0 и выходом T2:0 с помощью scriptPubKey P2PKH(K2) . Это расходная транзакция, которую вы подписываете с помощью K1 . Он отправляет деньги на K2 , но потребляет UTXO T1:0 со скриптом P2PKH(K1) .

Да, верно, долгие часы работы над одним и тем же, я думаю. Спасибо Питер.