Я понимаю, что есть несколько вещей, которые необходимо проверить, чтобы транзакция была действительной: предыдущая транзакция должна быть правильной, никакой OP не может аннулировать транзакцию и т. д., но есть ли полный список того, что нужно проверить по порядку. узнать, действительна ли транзакция?
Например, должна ли транзакция иметь определенную структуру, чтобы ее можно было потратить, например, сценарий из TxIn должен скомпилироваться в закодированное сообщение, а сценарий TxOut должен правильно запустить OP_Checksig для этого конкретного сообщения? Если нет, можно просто удалить сообщение из TxIn, отправить собственное вредоносное сообщение и запустить для него OP_Checksig.
Какие шаги протокол требует от клиента, чтобы проверить, действительна ли транзакция?
В биткойн-вики есть довольно полный список проверок, которые делает клиент Satoshi: Protocol_rules .
Также есть раздел , посвященный проверке транзакций.
Я рекомендую использовать библиотеку биткора, созданную BitPay, которая имеет хорошо работающую функцию transaction.verify() .
Вы также можете попытаться декодировать транзакцию в шестнадцатеричном формате с помощью этого инструмента блочного шифрования, и если он правильно декодирует и присутствуют все компоненты действительной транзакции, то ваша транзакция должна быть готова к работе.
Я понимаю, что есть несколько вещей, которые необходимо проверить, чтобы транзакция была действительной: предыдущая транзакция должна быть правильной, никакой OP не может аннулировать транзакцию и т. д., но есть ли полный список того, что нужно проверить по порядку. узнать, действительна ли транзакция?
Вы проверяете цепочку, если она восходит к поколению, она действительна. Вы должны дождаться подтверждения, чтобы установить его в камне.
Какие шаги протокол требует от клиента, чтобы проверить, действительна ли транзакция?
Дэвид Шварц
Пиачу