Show Posts
|
Pages: [1]
|
почитал я всякие разные форумы... и понял что менять надо что то здесь: "scriptSig" : { "asm" : "304502206efc8d7d7c481c77b1a4a63bb3177ab20d49a32c939c5e875baef7ac9370a8ac022100aa8dc1a5b405aff965e4f721eee98998f66f931ccb720fb555344c28fed951f901 022217e7b72aa617c34965c36b269c0141b78d17215e0aa82f06111fd6be59ea40", "hex" : "48304502206efc8d7d7c481c77b1a4a63bb3177ab20d49a32c939c5e875baef7ac9370a8ac022100aa8dc1a5b405aff965e4f721eee98998f66f931ccb720fb555344c28fed951f90121022217e7b72aa617c34965c36b269c0141b78d17215e0aa82f06111fd6be59ea40" } Оно закодировано в DER формате, если я правильно понял. Как это раскодировать?
|
|
|
ок, в этих двух приказах наконец то разобрался, если кому то из новичков будет интересно, то перед тем как подписывать транзакцию, надо разблокировать кошелек с помощью команды walletpassphrase <pass> <time> где time - время в секундах. теперь самое важное: как мне подготовить 2 почти одинаковые транзакции с разным ID? Ответили насчет того что надо поменять байт OP_0 на OP_PUSHDATA2. Ок, только где его найти? Судя по всему этот байт должен находится где то в подписи. { "txid" : "890b15aeeac3db018173aecc95087cca8c7ce3c997387e332c5a9bd65b9aa8d2", "version" : 1, "locktime" : 0, "vin" : [ { "txid" : "31600be5f8f783b5926466c263c3fcfd3fe9c41599169113500784390c602805", "vout" : 0, "scriptSig" : { "asm" : "304502206efc8d7d7c481c77b1a4a63bb3177ab20d49a32c939c5e875baef7ac9370a8ac022100aa8dc1a5b405aff965e4f721eee98998f66f931ccb720fb555344c28fed951f901 022217e7b72aa617c34965c36b269c0141b78d17215e0aa82f06111fd6be59ea40", "hex" : "48304502206efc8d7d7c481c77b1a4a63bb3177ab20d49a32c939c5e875baef7ac9370a8ac022100aa8dc1a5b405aff965e4f721eee98998f66f931ccb720fb555344c28fed951f90121022217e7b72aa617c34965c36b269c0141b78d17215e0aa82f06111fd6be59ea40" }, "sequence" : 4294967295 } ], "vout" : [ { "value" : 0.03940000, "n" : 0, "scriptPubKey" : { "asm" : "OP_DUP OP_HASH160 761d75822ab4c43ca15bffbcf206afc6a84e5e63 OP_EQUALVERIFY OP_CHECKSIG", "hex" : "76a914761d75822ab4c43ca15bffbcf206afc6a84e5e6388ac", "reqSigs" : 1, "type" : "pubkeyhash", "addresses" : [ "1BmY2V6YBicuHUYmNDL3K7mbMvk2yYkLEw" ] } }, { "value" : 0.00050000, "n" : 1, "scriptPubKey" : { "asm" : "OP_DUP OP_HASH160 a48e2c158f968db09f3c43e1fe317a9903184758 OP_EQUALVERIFY OP_CHECKSIG", "hex" : "76a914a48e2c158f968db09f3c43e1fe317a990318475888ac", "reqSigs" : 1, "type" : "pubkeyhash", "addresses" : [ "1G168kyFVmktKVzVGu9yrG4Ac1kje1My2k" ] } } ] } "scriptPubKey" : { "asm" : "OP_DUP OP_HASH160 761d75822ab4c43ca15bffbcf206afc6a84e5e63 OP_EQUALVERIFY OP_CHECKSIG", "scriptPubKey" : { "asm" : "OP_DUP OP_HASH160 a48e2c158f968db09f3c43e1fe317a9903184758 OP_EQUALVERIFY OP_CHECKSIG", Ткните пожалуйста пальцем куда именно надо написать OP_PUSHDATA2...
|
|
|
готовим две malleable транзакции с помощью createrawtransaction/signrawtransaction
Как я говорил, в этих всех приказах пока что разбираюсь слабо... createrawtransaction [{"txid":txid,"vout":n},...] {address:amount,...} получается здесь я должен буду все данные забить вручную, так? signrawtransaction <hex string> [{"txid":txid,"vout":n,"scriptPubKey":hex},...] [<privatekey1>,...] [sighash="ALL"] сюда напишу результат приказа createrawtransaction, так? P.S. Прошу прощения если вопросы глупые, понимаю что "гугл в помощь" и т.д, но время поджимает, поэтому и спрашиваю у тех кто в этом разбирается
|
|
|
Меняй байт OP_0 на OP_PUSHDATA2
Можно на примере этой транзакции показать где именно найти этот байт OP_0? "txid" : "890b15aeeac3db018173aecc95087cca8c7ce3c997387e332c5a9bd65b9aa8d2" Приказом getrawtransaction 890b15aeeac3db018173aecc95087cca8c7ce3c997387e332c5a9bd65b9aa8d2 показывает следующее: { "txid" : "890b15aeeac3db018173aecc95087cca8c7ce3c997387e332c5a9bd65b9aa8d2", "version" : 1, "locktime" : 0, "vin" : [ { "txid" : "31600be5f8f783b5926466c263c3fcfd3fe9c41599169113500784390c602805", "vout" : 0, "scriptSig" : { "asm" : "304502206efc8d7d7c481c77b1a4a63bb3177ab20d49a32c939c5e875baef7ac9370a8ac022100aa8dc1a5b405aff965e4f721eee98998f66f931ccb720fb555344c28fed951f901 022217e7b72aa617c34965c36b269c0141b78d17215e0aa82f06111fd6be59ea40", "hex" : "48304502206efc8d7d7c481c77b1a4a63bb3177ab20d49a32c939c5e875baef7ac9370a8ac022100aa8dc1a5b405aff965e4f721eee98998f66f931ccb720fb555344c28fed951f90121022217e7b72aa617c34965c36b269c0141b78d17215e0aa82f06111fd6be59ea40" }, "sequence" : 4294967295 } ], "vout" : [ { "value" : 0.03940000, "n" : 0, "scriptPubKey" : { "asm" : "OP_DUP OP_HASH160 761d75822ab4c43ca15bffbcf206afc6a84e5e63 OP_EQUALVERIFY OP_CHECKSIG", "hex" : "76a914761d75822ab4c43ca15bffbcf206afc6a84e5e6388ac", "reqSigs" : 1, "type" : "pubkeyhash", "addresses" : [ "1BmY2V6YBicuHUYmNDL3K7mbMvk2yYkLEw" ] } }, { "value" : 0.00050000, "n" : 1, "scriptPubKey" : { "asm" : "OP_DUP OP_HASH160 a48e2c158f968db09f3c43e1fe317a9903184758 OP_EQUALVERIFY OP_CHECKSIG", "hex" : "76a914a48e2c158f968db09f3c43e1fe317a990318475888ac", "reqSigs" : 1, "type" : "pubkeyhash", "addresses" : [ "1G168kyFVmktKVzVGu9yrG4Ac1kje1My2k" ] } } ] }
|
|
|
Всем доброго времени суток! Пишу дипломную работу, как вы наверное догадались на тему Биткоин. Было много шумихи по поводу краха MtGox и я решил попробовать провести пример того, как гибкость транзакции работает(я не хочу обманывать биржи и т.д поэтому буду использовать созданные мной самим транзакции, которые посылают BTC с одного моего адреса на другой). Теоретический шаги: 1) создаю TX1 с одним входом и одним выходом 2) пока она еще не подтверждена, нахожу ее в списке неподтвержденных транзакций, немного меняю подпись и отправляю уже измененную транзакцию обратно в сеть(TX2). Т.е в сети будут две по сути одинаковые транзакции(одинаковая сумма посылается с одного адреса на другой), но в следствии измененной подписи в TX2 у них будет разный хэш(TX ID). Никакого double-spending'а или чего то подобного. Практические шаги: 1) в Bitcoin QT открываю консоль, выписываю список неподтвержденных транзакции с помощью приказа getrawmempool 2) нахожу там нужную и выписываю ее: getrawtransaction "..." 3) получаю данные этой транзакции в hex форме, меняю какие то данные в подписи и отправляю обратно с помощью приказа sendrawtransaction "..." Теперь вопрос: что именно и каким образов я могу изменить в результатах приказа getrawtransaction "..."? Знаю что можно перевести эти данные в нормальный вид с помощью приказа decoderawtransaction, чтобы посмотреть в JSON виде что там к чему. Помогите пожалуйста студенту, буду очень благодарен! Всем заранее спасибо, Ержан P.S не прошу сделать всю работу за меня, прошу лишь подсказать что и где можно поменять. Изучаю ECDSA подписи, постепенно вникаю, но времени осталось до 17 апреля, надо сдать готовую работу.
|
|
|
|