Так что я пишу небольшой инструмент, который рассекает Bitcoin wallet.dat, главным образом, потому что я хочу, чтобы лучше понять, как работает Bitcoin.
И я вижу, что результаты операций имеют значение (число Bitcoins) и кучу байтов, которые проходят через маленький Forth-подобный язык сценариев, встроенный в Bitcoin. Например.:
[ 'TxOut: значение: 100,00 Сценарий: DUP HASH160 6fad ... ab90 EQUALVERIFY CHECKSIG']
Во-первых: это меня немного нервничал, что Bitcoin имеет язык сценариев в нем, несмотря на то, что это очень простой язык сценариев (без петель, никаких указателей, ничего, кроме математики и криптографии). Это заставляет меня нервничать, потому что она является более сложной, и осложнением является врагом безопасности. Это также делает его более трудным для создания второго, совместимой реализации. Но я думаю, что я могу получить по этому поводу.
Глядя на код, новые транзакции проверяются нажатием подпись, в то открытый ключ на стек интерпретатора, а затем запустить скрипт TxOut (сделал я правильно?).
Могу ли я написать код для создания транзакции с любым действительным сценарием в TxOut?
Например. я мог создать TxOut с сценарием: OP_2DROP OP_TRUE
... создать монету можно было бы потратить на кого?
И гибкость в типах монет, созданных причину его закодированный таким образом?