Все правильно. Но Боб не может отправить любой ключ Publi c. Он должен предоставить Pubkey, связанный с адресом, с которого он берет 5 BT C для дальнейшей отправки. В конструкции Bitcon адрес ha sh для Pubkey.
В результате Ева не знает pubkey для адреса Боба и не может отправить транзакцию, которая тратит деньги Боба. Но, конечно, она умеет отправлять транзакции с pubkey по адресу, которым она владеет. Другими словами, Ева может потратить свои собственные деньги, и это нормально.
Если вы увидите подробности сценария Bitcoin , вы увидите типичный сценарий расходов:
ScriptPubKey = OP_DUP OP_HASH160 OP_EQUAL OP_CHECKSIG
Этот скрипт дублирует pubkey, хэширует одну копию, сравнивает хешированную копию с btc_address и, если равен, проверяет подпись. Как видите, ни один пабки не приемлем.