Как только я думаю, что я понимаю, я не понимаю, больше! Шаг три в потоке выше говорит о "гашение" поле подписи в индексе. Но это по сценарию TxOut, который не имеет знач / Публичный ... Я думал ...?
Я так понимаю это NewTx содержит объект TxIn ссылающийся на TxOut на объекте OldTx.
Выполнить 1: NewTx.TxIn.script только [<подпись> <Публичных>]
Выполнить 2: OldTx.TxOut.script находится ["OP_DUP OP_HASH160 <получатель адр хэш> OP_EQUALVERIFY OP_CHECKSIG"]
Таким образом, первый скрипт запускается первым, чтобы поставить сиговые и ключ в стек, затем второй скрипт запускается с стеком из первого сценария, который будет проверять открытый ключ соответствует адру и проверки подписи. Но я думал, что OldTx.TxOut.script не содержит подпись / Публичную. Но только TxOut.script содержит OP_CHECKSIG, который является то, что будет OP'ing проверки. Итак, что мне не хватает?
-Eto
Два сценария объединяются вместе, чтобы создать один сценарий, который выполняется. Если скрипт выполняется, и оставляет ИСТИНА в стеке, монеты разблокированы и могут быть потрачены.
Шаг 1, подпись помещается в стек.
Шаг 2, Публичный помещаются в стек. Стек содержит сверху: Публичных, подпись
Шаг 3, OP_DUP дублирует верхний элемент. Стек содержит сверху: Публичный, Публичный, подпись. (Дублируется, поскольку необходимы два экземпляра: один экземпляр будет потребляться OP_HASH160, другой OP_CHECKSIG)
Шаг 4, OP_HASH160 преобразует Публичный в addrhash. Стек содержит сверху: addrhash, Публичных, подпись.
Шаг 5, получатель адрес хэш помещается в стек, поэтому (при условии, что они совпадают) хэш появляется дважды. Стек из топа: addrhashR, addrhash, Публичных, подпись
Шаг 6, OP_EQUALVERIFY подтверждает, что addrhashR равна addrhash, потребляя оба. Транзакция завершается неудачей, если они не равны. Стек Сейчас: Публичный, подпись
Шаг 7, OP_CHECKSIG гарантирует, что подпись является действительной сделкой подписи относительно Публичного. Транзакция завершается неудачей, если не действует, оставляет TRUE, если действителен.
Мое предположение относительно того, что "гашение" значит - подпись не известна, в то время хэш создается, поскольку хэш необходим для подписи. Так что я бы предположил, что гашение означает, что заполнитель хешируется вместо подписи до его окончательного значения известны. Когда вы создаете транзакцию, вы подписываете, что сделки (новый не старый).