Во многих криптовалютах TX состоит из массива входов TX и выходов TX.
Когда TX отправляется в сеть, у него уже есть подпись (в сценарии разблокировки).
Итак, мой вопрос: что мешает майнеру или кому-либо в сети использовать уже существующую разблокировку и изменить сценарии блокировки транзакций, а затем распространить транзакцию.
Потому что, насколько я понимаю, я могу предоставить подпись для разблокировки TXO, а кто-то использует мою подпись для изменения сценариев блокировки этих TX.
Подписи охватывают входы и выходы.
Если кто-то изменяет один из выходов в транзакции, требуется новая подпись. По сути, ваша подпись означает «разрешить использовать мой UTXO X для отправки A BTC в B, C BTC в D,…».
Потому что, насколько я понимаю, я могу предоставить подпись для разблокировки TXO, а кто-то использует мою подпись для изменения сценариев блокировки этих TX.
Принимая «P2PKH tx», скрипт разблокировки требует выполнения некоторых операций при трате tx:
<sig><pubkey><OP_DUP><OP_HASH160>pk hash<OP_EQUALVERIFY><OP_CHECKSIG>
Здесь у меня есть три сценария при изменении частей полей скрипта:
1.) изменить <sig>
и<pubkey>
майнер меняет часть с новой подписью и публичным ключом. Предполагая, что блок действительно проходит «до конца», у тратящего средства есть проблема, потому что его хеш больше не будет соответствовать хэшу.
2.) изменить только<sig>
майнер изменяет только часть с новой подписью. Теперь транжира будет соответствовать хэшу файла . Однако последняя команда <OP_CHECKSIG>
проверит оставшиеся части в стеке ( <new sig><pubkey>
), и это (очевидно) потерпит неудачу.
3.) изменить сценарий публичного ключа
когда что-либо в сценарии публичного ключа изменяется, процесс подписи завершится ошибкой. Во время создания подписанной транзакции область подписи заполняется скриптом публичного ключа, а затем подписывается. Позже, перед передачей tx, область sciptsig заменяется на <signature><pubkey>
. Поэтому, когда блок будет распространяться на другие узлы, они будут проверять этот блок и его транзакцию внутри и обнаруживать несоответствие подписи.
Питер подробно рассказал здесь о сценариях здесь: Каковы части сценария «Ввод» биткойн-транзакции?
и две ссылки, которые дополнительно помогают понять:
1) http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html
2) Книга Андреаса «Освоение биткойнов», 2-е издание, стр. 135 и далее.
Эдди
Питер Уилле
Питер Уилле
Эдди
Питер Уилле
Эдди
Питер Уилле