Реальная история.
Для того, чтобы выкупить определенный выход транзакции, то транжире необходимо предоставить транзакции подпись и его Публичный:
<сиг><Публичных> DUP HASH160 <адрес> EQUALVERIFY CHECKSIG
Предоставленный Публичных получит (дублируются и) хэшируются HASH160 (SHA56 (Публичный)) и по сравнению с по указанному адресу. Но как это Публичный хэш может быть равен адресом, когда адрес также имеет контрольную сумму и сетевой префикс? Означает ли это, что дополнительные данные получает удалены из сценария в какой-то момент? Кроме того, есть ли причина, почему при условии, адрес в шестнадцатеричном формате вместо base58?
оно не адрес, который входит в выходной сценарий, но rmd160 20 байтов бинарного
делает base58 декодирование по адресу, вы можете убедиться, что контрольная сумма является действительным, и вы в конечном итоге с типом адреса, а затем 20 байт (160 бит), и именно эти 20 байт, что идет туда, где у вас есть <адрес> в приведенном выше.
<сиг> <Публичных> <Публичных> HASH160
EQUALVERIFY CHECKSIG
<Публичных> HASH160 -> что делает rmd160 (sha256 (Публичный)) и он должен генерировать одинаковые 20 байт:
<сиг> <Публичных> EQUALVERIFY CHECKSIG
EQUALVERIFY -> проверяет совпадение или ошибки
который оставляет нам:
<сиг> <Публичных> CHECKSIG
и CHECKSIG убеждается Публичное происходит от privkey, что сделали подписание
http://www.cs.princeton.edu/~tongbinw/bitcoinIDE/build/editor.html оленья кожа поддержка всех сценариев опкоды, но для большинства стандартных позволяет один шаг и увидеть вещи работать, и это хороший способ узнать сценарии