Как создать действительную неподписанную транзакцию

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

Может ли кто-нибудь создать необработанную транзакцию и показать мне?

адрес отправителя: 1NsRUK6vmPbtQa8sSjeXVxeYQiGCGNi6W3

адрес получателя: 37KSBUjixDYxmgmTdepb79aso69vPZrLu2

Примечание. Это оба моих адреса, и их балансы равны 0.

Ответы (1)

Биткойн работает не так.

Биткойн не использует систему учетных записей и не использует адреса на уровне протокола. Расходы биткойнов означают, что вы тратите на выходе транзакции. Если для вас нет доступных выходных данных транзакции, вы не можете создать транзакцию. Таким образом, с адресами с нулевым балансом такая действительная транзакция не может быть создана.

Затем указанный вами «адрес отправки» требует цифровой подписи, чтобы тратить связанные с ним выходные данные. Это связано с тем, что этот тип адреса сообщает кошелькам, что должен быть создан вывод, который имеет форму, OP_DUP OP_HASH160 <hash> OP_EQUALVERIFY OP_CHECKSIGв которой адрес кодирует, <hash>а тип адреса указывает другие коды операций. Таким образом, вы не можете тратить выходные данные, связанные с этим адресом, не имея возможности предоставить действительную цифровую подпись, соответствующую открытому ключу, который хэшируется на <hash>.

Что вы могли бы сделать, так это получить вывод транзакции, сценарий которого выглядит примерно так OP_DUP OP_HASH160 <hash> OP_EQUAL. Это не требует подписи, но такой скрипт, даже если он может быть создан с предоставленным адресом, не соответствует этому адресу, потому что он не имеет конструкции, задаваемой типом адреса.

Таким образом, невозможно создать такую ​​действительную неподписанную транзакцию, потому что 1) нет выхода для траты и 2) адрес требует подписи, чтобы тратить из выходов, связанных с ним.


Такой сценарий без подписи, как я описал, не соответствует никакому адресу; нет типа адреса, который его определяет.

Выходной скрипт будет выглядеть так:

76a914ef0ffa5f1cc59bed17cf4e35ae9cbf396cddf17088

Расходы на транзакцию из этого скрипта будут выглядеть так:

0200000001deadbeef000000000000000000000000deadbeef00000000000000000000000000000000222103061e97605659c9dc77ed437cbc345ec41633888ae3b2c75fdd532db789cc476fffffffff01000000000000000016a914ef0ffa5f1cc59bed17cf4e35ae9cbf396cddf1708700000000
Итак, не могли бы вы привести пример сценария вывода транзакции и типа адреса, а также подобную транзакцию в шестнадцатеричном формате, пожалуйста?
Как что? Пример сценария, который я предоставил, не требует подписи?
да, а также пример того, как будет выглядеть транзакция в шестнадцатеричном формате и пример типа адреса,
Я обновил ответ примером. Обратите внимание, что пример фактически не тратит из каких-либо существующих выходов.
Но если бы вы создали транзакцию p2sh со значением scriptsig как OP_TRUE, используя такой сценарий вывода, было бы это невозможно?
Да, это было бы возможно, но также совершенно не связано с указанными вами адресами.
Итак, что произойдет, если вы измените код операции utxo, чтобы он мог быть потрачен без подписи?
Вы не можете изменить коды операций существующего UTXO. Изменение UTXO требует изменения транзакции, содержащей UTXO, и повторного майнинга блока, содержащего эту транзакцию, И всех блоков, следующих за ней. Это невозможно сделать, если у него нет закрытых ключей, участвующих в транзакции, которая также создала UTXO.