Кто растолкует, как подписывать multisig rawtransaction (или где почитать, можно в л.с.)? И почему в explorer.novaco.in не отображается баланс multisig address?
Попробую показать на примере сделок с escrow
Алиса. Она хочет купить товар.
Вася. Он хочет продать товар
Доверенный посредник. Предоставляет гарантию, что во время сделки Алиса получит товар(или не потеряет деньги если возникнут проблемы), а Вася получит деньги.
1 Шаг. Все делятся публичными ключами и адресами.
Пусть у Алисы адрес 4VdtruSAsNsMyVmYCtoa2XjqQgtdkvXtib
у Васи адрес 4RbXB6PLfArhEFaKE94fBc84wNaNDamSCG
у доверенного посредника адрес 4GmD95dAf8w8zVcd2h3iTZGhkEzCKdqbS2
Каждый вводит
validateaddress [свой адрес]
в Novacoin-QT -> Помощь -> Окно отладки
Выводы будут такими:
validateaddress 4VdtruSAsNsMyVmYCtoa2XjqQgtdkvXtib
{
"isvalid" : true,
"address" : "4VdtruSAsNsMyVmYCtoa2XjqQgtdkvXtib",
"ismine" : true,
"watchonly" : false,
"isscript" : false,
"pubkey" : "0389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea88",
"iscompressed" : true,
"account" : ""
}
validateaddress 4RbXB6PLfArhEFaKE94fBc84wNaNDamSCG
{
"isvalid" : true,
"address" : "4RbXB6PLfArhEFaKE94fBc84wNaNDamSCG",
"ismine" : true,
"watchonly" : false,
"isscript" : false,
"pubkey" : "038ead244efdee3e4d42d2b187999f91e228a3b417cb19d3e664545e96febb788a",
"iscompressed" : true,
"account" : ""
}
validateaddress 4GmD95dAf8w8zVcd2h3iTZGhkEzCKdqbS2
{
"isvalid" : true,
"address" : "4GmD95dAf8w8zVcd2h3iTZGhkEzCKdqbS2",
"ismine" : true,
"watchonly" : false,
"isscript" : false,
"pubkey" : "02f4a249c28f14fc7a1b365108f92c34fe2f9c4ec2ccdecf2f964a87ab8b327d68",
"iscompressed" : true,
"account" : ""
}
2 Шаг. Создание multisig адреса, для вывода средств с которого требуется 2 подписи(из 3).
createmultisig 2 '["0389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea88","038ead244efdee3e4d42d2b187999f91e228a3b417cb19d3e664545e96febb788a","02f4a249c28f14fc7a1b365108f92c34fe2f9c4ec2ccdecf2f964a87ab8b327d68"]
Вывод будет таким
{
"address" : "9MUxduU61VpX35a4otkernJpVXrDXiVnmn",
"redeemScript" : "52210389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea8821038ead244efdee3e4d42d2b187999f91e228a3b417cb19d3e664545e96febb788a2102f4a249c28f14fc7a1b365108f92c34fe2f9c4ec2ccdecf2f964a87ab8b327d6853ae"
}
Теперь Алиса, Вася, доверенный посредник знают адрес и redeemScript
3 Шаг. Алиса переводит монеты за товар(плюс сумма 1 комиссии)на адрес 9MUxduU61VpX35a4otkernJpVXrDXiVnmn
После пересылки, она сообщает ID транзакции Васи и доверенному посреднику. (В Novacoin QT перейти во вкладку "Транзакции", выбрать нужную транзакцию, двойной клик левой кнопкой мыши, в появившемся окне "Детали транзакции" будет ID транзакции)
ID транзакции: cf3d32cc6ab43278e522b7cd21236cdfcaf87ae0895a08d747ee2cc69562639c
Вася получает ID транзакции, теперь он вводит в окне отладки:
getrawtransaction cf3d32cc6ab43278e522b7cd21236cdfcaf87ae0895a08d747ee2cc69562639c
Вывод:
010000000ae15954017f4464c01ddf78bc8152c55616abe40c76bcb5018c7234cd48e49e4c44b1d fbe000000006a47304402201470f1223d25aa54f1d33d0f25c03f46a1b7fae97f559b16052c4203 845bedb002203c88f61efc5a44bb0024b900ca0173bba55b365da6c81c9314ff0c7fcfbc5b88012 10389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea88ffffffff0150 9907000000000017a914c2668d9b367c1380feab712b954cfa8c4cace8428700000000
Далее Вася вводит
decoderawtransaction 010000000ae15954017f4464c01ddf78bc8152c55616abe40c76bcb5018c7234cd48e49e4c44b1dfbe000000006a47304402201470f1223d25aa54f1d33d0f25c03f46a1b7fae97f559b16052c4203845bedb002203c88f61efc5a44bb0024b900ca0173bba55b365da6c81c9314ff0c7fcfbc5b8801210389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea88ffffffff01509907000000000017a914c2668d9b367c1380feab712b954cfa8c4cace8428700000000
Вывод:
{
"txid" : "cf3d32cc6ab43278e522b7cd21236cdfcaf87ae0895a08d747ee2cc69562639c",
"version" : 1,
"time" : 1415176458,
"locktime" : 0,
"vin" : [
{
"txid" : "bedfb1444c9ee448cd34728c01b5bc760ce4ab1656c55281bc78df1dc064447f",
"vout" : 0,
"scriptSig" : {
"asm" : "304402201470f1223d25aa54f1d33d0f25c03f46a1b7fae97f559b16052c4203845bedb002203c88f61efc5a44bb0024b900ca0173bba55b365da6c81c9314ff0c7fcfbc5b8801 0389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea88",
"hex" : "47304402201470f1223d25aa54f1d33d0f25c03f46a1b7fae97f559b16052c4203845bedb002203c88f61efc5a44bb0024b900ca0173bba55b365da6c81c9314ff0c7fcfbc5b8801210389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea88"
},
"sequence" : 4294967295
}
],
"vout" : [
{
"value" : 0.49800000,
"n" : 0,
"scriptPubKey" : {
"asm" : "OP_HASH160 c2668d9b367c1380feab712b954cfa8c4cace842 OP_EQUAL",
"reqSigs" : 1,
"type" : "scripthash",
"addresses" : [
"9MUxduU61VpX35a4otkernJpVXrDXiVnmn"
]
}
}
]
}
Вася видит, что на их multisig адрес пришло 0.498 NVC, поэтому он отправляет товар Алисе.
4 Шаг. Доверенный посредник узнаёт у Алисы, что товар получен. Теперь он создаёт транзакцию перевода монет с multisig адреса на адрес Васи.
createrawtransaction '[{"txid" : "cf3d32cc6ab43278e522b7cd21236cdfcaf87ae0895a08d747ee2cc69562639c","vout":0,"scriptPubKey":"a914c2668d9b367c1380feab712b954cfa8c4cace84287","redeemScript":"52210389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea8821038ead244efdee3e4d42d2b187999f91e228a3b417cb19d3e664545e96febb788a2102f4a249c28f14fc7a1b365108f92c34fe2f9c4ec2ccdecf2f964a87ab8b327d6853ae"}]' '{"4RbXB6PLfArhEFaKE94fBc84wNaNDamSCG":0.497}'
Вывод:
010000002ce75954019c636295c62cee47d7085a89e07af8cadf6c2321cdb722e57832b46acc323dcf0000000000ffffffff0168950700000000001976a91482703c63239d3b82e0254e7d82335dd6258efa5b88ac00000000
Для подписи транзакции ему нужен приватный ключ:
dumpprivkey 4GmD95dAf8w8zVcd2h3iTZGhkEzCKdqbS2
Вывод:
MA.......................................................
Теперь доверенный посредник подписывает транзакцию и передаёт её Васе:
signrawtransaction '010000002ce75954019c636295c62cee47d7085a89e07af8cadf6c2321cdb722e57832b46acc323dcf0000000000ffffffff0168950700000000001976a91482703c63239d3b82e0254e7d82335dd6258efa5b88ac00000000' '[{"txid" : "cf3d32cc6ab43278e522b7cd21236cdfcaf87ae0895a08d747ee2cc69562639c","vout":0,"scriptPubKey":"a914c2668d9b367c1380feab712b954cfa8c4cace84287","redeemScript":"52210389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea8821038ead244efdee3e4d42d2b187999f91e228a3b417cb19d3e664545e96febb788a2102f4a249c28f14fc7a1b365108f92c34fe2f9c4ec2ccdecf2f964a87ab8b327d6853ae"}]' '["MA.............................."]'
Вывод:
{
"hex" : "010000002ce75954019c636295c62cee47d7085a89e07af8cadf6c2321cdb722e57832b46acc323dcf00000000b500483045022100a292214b954dd3390b08944d72bcc6c6185c5bc9f7b1dc46f7b3a29a72540fbf022057b41447894527801d8bcc982b9eb55e10e398a37182477a6dd608272e196381014c6952210389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea8821038ead244efdee3e4d42d2b187999f91e228a3b417cb19d3e664545e96febb788a2102f4a249c28f14fc7a1b365108f92c34fe2f9c4ec2ccdecf2f964a87ab8b327d6853aeffffffff0168950700000000001976a91482703c63239d3b82e0254e7d82335dd6258efa5b88ac00000000",
"complete" : false
}
Вася подписывает транзакцию своим ключом и посылает транзакцию в сеть:
dumpprivkey 4RbXB6PLfArhEFaKE94fBc84wNaNDamSCG
MF..............................................
signrawtransaction '010000002ce75954019c636295c62cee47d7085a89e07af8cadf6c2321cdb722e57832b46acc323dcf00000000b500483045022100a292214b954dd3390b08944d72bcc6c6185c5bc9f7b1dc46f7b3a29a72540fbf022057b41447894527801d8bcc982b9eb55e10e398a37182477a6dd608272e196381014c6952210389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea8821038ead244efdee3e4d42d2b187999f91e228a3b417cb19d3e664545e96febb788a2102f4a249c28f14fc7a1b365108f92c34fe2f9c4ec2ccdecf2f964a87ab8b327d6853aeffffffff0168950700000000001976a91482703c63239d3b82e0254e7d82335dd6258efa5b88ac00000000' '[{"txid" : "cf3d32cc6ab43278e522b7cd21236cdfcaf87ae0895a08d747ee2cc69562639c","vout":0,"scriptPubKey":"a914c2668d9b367c1380feab712b954cfa8c4cace84287","redeemScript":"52210389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea8821038ead244efdee3e4d42d2b187999f91e228a3b417cb19d3e664545e96febb788a2102f4a249c28f14fc7a1b365108f92c34fe2f9c4ec2ccdecf2f964a87ab8b327d6853ae"}]' '["MF..............."]'
Вывод:
{
"hex" : "010000002ce75954019c636295c62cee47d7085a89e07af8cadf6c2321cdb722e57832b46acc323dcf00000000fdfe0000483045022100cdeee74271ca439ff035c0770d832a6f10bc9e726f59cccc1bfa7c396e38509602201311d66e186f4bd8ae39aa0ec7f0575365e66e203305edbc010acef44c5ae75b01483045022100a292214b954dd3390b08944d72bcc6c6185c5bc9f7b1dc46f7b3a29a72540fbf022057b41447894527801d8bcc982b9eb55e10e398a37182477a6dd608272e196381014c6952210389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea8821038ead244efdee3e4d42d2b187999f91e228a3b417cb19d3e664545e96febb788a2102f4a249c28f14fc7a1b365108f92c34fe2f9c4ec2ccdecf2f964a87ab8b327d6853aeffffffff0168950700000000001976a91482703c63239d3b82e0254e7d82335dd6258efa5b88ac00000000",
"complete" : true
}
sendrawtransaction 010000002ce75954019c636295c62cee47d7085a89e07af8cadf6c2321cdb722e57832b46acc323dcf00000000fdfe0000483045022100cdeee74271ca439ff035c0770d832a6f10bc9e726f59cccc1bfa7c396e38509602201311d66e186f4bd8ae39aa0ec7f0575365e66e203305edbc010acef44c5ae75b01483045022100a292214b954dd3390b08944d72bcc6c6185c5bc9f7b1dc46f7b3a29a72540fbf022057b41447894527801d8bcc982b9eb55e10e398a37182477a6dd608272e196381014c6952210389e4cd6ed431a6309e9b0e762d8c8d8140c7bbb46315f6421970f6e42b40ea8821038ead244efdee3e4d42d2b187999f91e228a3b417cb19d3e664545e96febb788a2102f4a249c28f14fc7a1b365108f92c34fe2f9c4ec2ccdecf2f964a87ab8b327d6853aeffffffff0168950700000000001976a91482703c63239d3b82e0254e7d82335dd6258efa5b88ac00000000
Вывод:
ffbea7490761f9af084b912c81e8c1c3480a64df745dc8909a6bf5b286a74cdc
Всё. Вася получил монеты, Алиса получила товар.