Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
28 апреля 2014, 3:57:50 PM   # 1
 
 
Сообщения: 3
Цитировать по имени
цитировать ответ
по умолчанию Re: Получить multisig адрес из Публичных в сделке

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Здравствуй!

Я пытаюсь получить адрес источника сделки с ассемблерным Публичным, который прекрасно работает для mainnet и testnet, но если источник является multisig адреса, полученный адрес недействителен.

Например, на testnet я создать этот адрес 2/3 2N8DirDvhxVEm61b3JMc75Hsdqe8aWg9Vvu, получить средства, а потом я создать этот ТХ обратно к "нормальный" адрес http://blockexplorer.com/testnet/tx/e7e04c76db37dc63cb903935c51ffe24b3019cb33e402346a271d3af503fe06b.
Vin.scriptSig.asm выглядит
Код:
"0 30440220481206604c5d12c8a6b020d822a65e0c2f9eeb536bdcdc668fab56247b30e44102202caf1fb53475495bd15fb42eaa5dd49fce70ae613e35a67055d7637c32997cac01 3045022100f5d9576238d7ed616646336feaafbf42e3a9331da65d3a76872c41aa709a3926022039f7090c07049853a941e69d9b31d9d0e6e9a34e91c16e67d516a91bba4ef02701 52210355f3c263aeb7859e53d3549d3c9bc99cd581154d16e259fe390e029d6bda5b7821030a53f844570b8c26794276e205cdeab87ab0d7802d2abb5116a5472e3adc7dc1210210b58f846754a9d0d70e226688e0693a241fd58e315d738399e40e68308b88f953ae"

Ни один из который не может быть преобразован обратно в 2N8DirDvhxVEm61b3JMc75Hsdqe8aWg9Vvu

Это будет возможно получить исходный адрес multisig в ​​ОМ?

Вероятно, документация https://en.bitcoin.it/wiki/Transactions#Input должны быть обновлены для multisig, на самом деле это объясняет только "два компонента, подпись и открытый ключ" которая не относится к такого рода сделок, правильно?

благодаря
reiven сейчас офлайн Пожаловаться на reiven   Ответить с цитированием Мультицитирование сообщения от reiven Быстрый ответ на сообщение reiven


Как заработать Биткоины?
Без вложений. Не майнинг.


29 апреля 2014, 1:54:58 AM   # 2
 
 
Сообщения: 352
Цитировать по имени
цитировать ответ
по умолчанию Re: Получить multisig адрес из Публичных в сделке

Получил 1806 Биткоинов
Реальная история.





Я не совсем уверен, что я понял, что вы пытаетесь выйти, но то, что у вас есть есть P2SH (оплата за скрипт-хэш) адрес. P2SH обсуждается ниже вниз страницы, вы ссылаетесь на:
https://en.bitcoin.it/wiki/Transactions#Pay-to-ScriptHash

Что сбивает с толку о том, что это можно было сделать до того multisig P2SH был введен, и некоторые документы, вы можете прочитать будет говорить о выполнении multisig традиционным способом, но в настоящее время, так как на практике multisig почти всегда означает, "multisig под P2SH", Люди иногда говорят о multisig сделки, не говоря уже о том, что он использует P2SH.

Sigscript вы писали:
Код:
"0 30440220481206604c5d12c8a6b020d822a65e0c2f9eeb536bdcdc668fab56247b30e44102202caf1fb53475495bd15fb42eaa5dd49fce70ae613e35a67055d7637c32997cac01 3045022100f5d9576238d7ed616646336feaafbf42e3a9331da65d3a76872c41aa709a3926022039f7090c07049853a941e69d9b31d9d0e6e9a34e91c16e67d516a91bba4ef02701
52210355f3c263aeb7859e53d3549d3c9bc99cd581154d16e259fe390e029d6bda5b7821030a53f844570b8c26794276e205cdeab87ab0d7802d2abb5116a5472e3adc7dc1210210b58f846754a9d0d70e226688e0693a241fd58e315d738399e40e68308b88f953ae
"

...состоит из:
- Ноль (для работы вокруг ошибки)
- Sig1
- Sig2
- Сериализованный скрипт, который, когда хэшируется и соответствующим образом закодированы (я должен был бы выглядеть это вверх - я не проверил, чтобы увидеть, если вещи, которые вы Отправленная работу, как я ожидал) должны сделать "адрес" что кто-то изначально заплатил, например, 2N8DirDvhxVEm61b3JMc75Hsdqe8aWg9Vvu.

Сериализованный сценарий (длинная вещь, которая приходит последним в вашей sigscript) должен десериализации к чему-то вроде:
Код:
2 Паб Паб Паб 3 op_checkmultisig

...так что вы также должны иметь возможность получить открытые ключи, используемые в подписях оттуда, если вы заинтересованы в них.
edmundedgar сейчас офлайн Пожаловаться на edmundedgar   Ответить с цитированием Мультицитирование сообщения от edmundedgar Быстрый ответ на сообщение edmundedgar

29 апреля 2014, 2:56:37 AM   # 3
 
 
Сообщения: 3
Цитировать по имени
цитировать ответ
по умолчанию Re: Получить multisig адрес из Публичных в сделке

Да, вы получили точку, что я пытаюсь сделать

Что я не могу найти (пока) в том, как "Deserialize" P2SH, который вы описываете. Можете ли вы привести мне некоторый свет на это?
Кроме чтения B13 это сказать "Версия 5 байт для основного сетевого адреса, 196 для адреса testnet" и сценарии начинается с 5, который сбивает с толку меня, потому что все это было сделано TXS на testnet.

Код:
52210355f3c263aeb7859e53d3549d3c9bc99cd581154d16e259fe390e029d6bda5b7821030a53f844570b8c26794276e205cdeab87ab0d7802d2abb5116a5472e3adc7dc1210210b58f846754a9d0d70e226688e0693a241fd58e315d738399e40e68308b88f953ae

Просто, чтобы вы знаете, этот тест ОГО было сделано на ядро-клиент v0.9.1 (я не знаю, если это может иметь отношение к вам)

благодаря
reiven сейчас офлайн Пожаловаться на reiven   Ответить с цитированием Мультицитирование сообщения от reiven Быстрый ответ на сообщение reiven

29 апреля 2014, 4:15:39 AM   # 4
 
 
Сообщения: 352
Цитировать по имени
цитировать ответ
по умолчанию Re: Получить multisig адрес из Публичных в сделке

Если я правильно понял версию байты идут в самом конце процесса, когда вы что-то преобразовать в базе 58 чек, который является форматом, разработанным для людей, транскрибировать и копирование и вставки. Не волнуйтесь, что вы не видите ничего, соответствующего его в шестнадцатеричном формате.

Я использую pybitcointools vbuterin для этого материала:
https://github.com/vbuterin/pybitcointools/blob/master/bitcoin/transaction.py

Я не могу проверить это на моем телефоне, но я думаю, что функция deserialize_script там должны работать, чтобы распаковать содержимое сценария p2sh. Там есть функция p2sh_script_address там тоже что должно позволить вам воссоздать адрес из сценария, но он выглядит как это трудно кодирует mainnet версии байт, так что вам, вероятно, нужно либо исправить это за testnet или вытащить внутреннюю часть функции и использовать его непосредственно с правильной версии байта. (Это только две строки ...)
edmundedgar сейчас офлайн Пожаловаться на edmundedgar   Ответить с цитированием Мультицитирование сообщения от edmundedgar Быстрый ответ на сообщение edmundedgar

29 апреля 2014, 3:27:58 PM   # 5
 
 
Сообщения: 3
Цитировать по имени
цитировать ответ
по умолчанию Re: Получить multisig адрес из Публичных в сделке

Удивительно, вы делаете мой день!

Я сделал небольшое изменение в transactions.py для поддержки testnet, и она работала гладко

Код:
>>> p2sh_scriptaddr (p2sh)
'3GfWnUzgM2jQtDxVdDzETLtNdHvQiL3GjL'
>>> p2sh_scriptaddr (p2sh, testnet = True)
'2N8DirDvhxVEm61b3JMc75Hsdqe8aWg9Vvu'

Большое спасибо за ваши ответы
reiven сейчас офлайн Пожаловаться на reiven   Ответить с цитированием Мультицитирование сообщения от reiven Быстрый ответ на сообщение reiven

30 апреля 2014, 12:38:07 AM   # 6
 
 
Сообщения: 352
Цитировать по имени
цитировать ответ
по умолчанию Re: Получить multisig адрес из Публичных в сделке

Рад слышать это сработало.

Я думаю, мы должны проверить, для каких-либо других мест, где pybitcointool может обрабатывать testnet но не и отправить запрос vbuterin тянуть. Может быть, лучше перейти в версии байта вместо флага testnet - таким образом, он должен работать для альта-монет, а также.
edmundedgar сейчас офлайн Пожаловаться на edmundedgar   Ответить с цитированием Мультицитирование сообщения от edmundedgar Быстрый ответ на сообщение edmundedgar



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW