|
24 октября 2013, 9:38:56 PM | # 1 |
Сообщения: 469
цитировать ответ |
Re: Строительство multisig адрес
Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome" Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e подробнее... Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru Может кто-нибудь показать мне, где в Bitcoin источнике строительство multisig адресов происходит? Я нашел способ createmultisig в script.cpp, который создает объект CSCRIPT, но я не могу видеть, где именно, что конвертируется в адрес base58. Я пытаюсь убедиться, что я понимаю, как именно это делается. Я знаю, что написано Вот, но я не получаю правильный результат Вот, так что мне нужно как-то проверять каждый шаг. Спасибо за любые указатели.
|
25 октября 2013, 2:56:18 PM | # 2 |
Сообщения: 1302
цитировать ответ |
Re: Строительство multisig адрес
Получил 1806 Биткоинов
Реальная история. Я не уверен, что основной клиент, но вот некоторые Гетто код PHP, который работает. Я использовал его, чтобы создать кучу multisig адресов p2sh.
Код: (multisig.php) Функция createmultisig ($ nReq, $ ключи, $ sortkeys = TRUE) { $ Отлаживать = FALSE; // Я всегда сортировать ключи, так что я в конечном итоге с каноническим адресом p2sh для любого заданного набора ключей и параметров // если вы проверяете это против другой реализации, отключить сортировку, или поместить их в отсортированном порядке перед вызовом другого кода если ($ sortkeys) сортировать ($ ключи, SORT_STRING); // P2SH multisig в Bitcoin требует ключей между 2 и 16 (включительно) // это представляется в основном быть из-за PUSH_x опкодами однобайтными, 0x52 до 0x60 если ($ nReq<2 ИЛИ $ nReq>16 ИЛИ $ nReq>подсчитывать (ключи $)) возвращают FALSE; // структура P2SH multisig очень просто. Этот короткий блок компонует redeemscript $ Rs = CHR (0x50 + $ nReq); в то время как (список ($ ключ, $ Val) = каждый ($ ключи)) { $ БПК = HEX2BIN ($ Val); $ Rs = CHR (STRLEN ($ БПК)) $ БПК..; } $ Rs = CHR (0x50 + счетчик ($ ключи)). $ Rs = CHR (0xAE). // этот блок затем поворачивает искупит скрипт в адрес. // отладочные линии позволяют легко проверить каждый шаг сравнения с литературными примерами если ($ отлаживать) эхо "В: ". $ RS."\ п"; $ Ч = хэш ("sha256", $ Р.С., TRUE); если ($ отлаживать) эхо "ЧАС: ".bin2hex ($ ч)."\ п"; $ H2 = хэш ("ripemd160", $ Ч, TRUE); если ($ отлаживать) эхо "H2: ".bin2hex ($ h2)."\ п"; $ H3 ="\ x05". $ H2; если ($ отлаживать) эхо "H3: ".bin2hex ($ h3)."\ п"; $ H4 = хэш ("sha256", $ H3, TRUE); если ($ отлаживать) эхо "H4: ".bin2hex ($ h4)."\ п"; $ H5 = хэш ("sha256", $ H4, TRUE); если ($ отлаживать) эхо "H5: ".bin2hex ($ h5)."\ п"; $ CHK = зиЬзЬги ($ h5,0,4); если ($ отлаживать) эхо "Chk: ".bin2hex ($ ЧК)."\ п"; $ Addr_bin = $ h3 $ ЧК. если ($ отлаживать) эхо "адр: ".bin2hex ($ addr_bin)."\ п"; $ Адр = encodeBase58 ($ addr_bin); если ($ отлаживать) эхо $ адр."\ п"; вернуть массив ("redeemScript"знак равно>bin2hex ($ RS),"адрес"знак равно>$ Адр); } |
25 октября 2013, 5:39:58 PM | # 3 |
Сообщения: 469
цитировать ответ |
Re: Строительство multisig адрес
Спасибо за предложение. Проблема у меня была оказался вниз blockchain.info не принимать сырые multisig передатчиках. Я нашел еще один способ (с помощью электрума) на данный момент.
|