Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
1 апреля 2013, 5:03:01 PM   # 1
 
 
Сообщения: 539
Цитировать по имени
цитировать ответ
по умолчанию Re: Атака против некоторых смесительной P2P монеты схем

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
(Отказ от ответственности:. Этот пост не был проверен эксплойт или даже тестовый код, который я опирался только на код инспекции, так что я могу ошибаться)

Был обсужден (например, ) Относительно возможных схем монет смешивания. Я не какой-либо из них были реализованы, но многие люди выросли такие предложения.

Непосредственное решение для объединения нескольких операций из различных владельцев в один, пути объединения входов и выходов (возможно изменением выходного количеств, и добавления дополнительных выходов). Мы предполагаем здесь, что схема не использовать SIGHASH_ANYONECANPAY. Упрощенный протокол: сначала все стороны построить большую сделку смешивания, то все стороны подписывают свои входы в поворотах.

Существует тонкая "ошибка" в протоколе Bitcoin, что позволяет два различных входа одного и того же сделки должны быть подписаны той же подписью. Если родительский вывод содержит косую OP_CODESEPARATOR, то индекс вставляется в транзакцию, чтобы быть хэшированной будет пустыми.
(https://en.bitcoin.it/w/images/en/7/70/Bitcoin_OpCheckSig_InDetail.png кажется, не согласен с ним, и я думаю, что это ошибочно)

Тогда любой входной транзакции, чей родительский выход сценарии заканчивается OP_CODESEPARATOR вычислит тот же хэш, и поэтому они будут требовать подписи одного и того же сообщения. Идентичные подписи будут работать.

Атака

Предположим, что Алиса всегда смешивает свои монеты со случайными людьми с протоколом p2p, описанным выше. Каждый раз, когда она хочет отправить некоторые ранее полученные монеты X, она смешивает X со случайной группой.

Предположим, что Мэллори должен заплатить Алисе некоторые суммы х и у. Она строит две транзакции Tx и Ty, которые должны быть отправлены на адреса, указанные Алисой. Но в каждом выходном сценарии, последний опкод является OP_CODESEPARATOR. Я полагаю, эти сделки будут нестандартными, но Мэллори сумел отправить их шахтеру или мой блок с ними самими.

Алиса получает эти операции (*), и теперь она хочет провести Tx. Она начать строить большие сделки смешивания с некоторыми людьми, которые, среди других входов, затрачивают Tx.

Мэллори принимает также часть смешивания, но вместо того, чтобы обеспечить ее собственные предыдущие выходы, она обеспечивает выход Ty в качестве ввода, и выходной адрес, который она контролирует. Когда все стороны подписывают смесительный Тх, она сначала слушает Элис подписи, а затем повторяет его.

Теперь Алиса украл монеты в Ty.

Некоторое время назад я писал о возможных проблемах со сложностью метода подписания сценария, и я предложил просто вставить «*» в сценарии должны быть подписаны, вместо индекса месиво.

(*) Интересно, если клиент Satoshi распознает их как для себя.


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


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


21 июля 2013, 12:50:30 PM   # 2
 
 
Сообщения: 1106
Цитировать по имени
цитировать ответ
по умолчанию Re: Атака против некоторых смесительной P2P монеты схем

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





Тогда любой входной транзакции, чей родительский выход сценарии заканчивается OP_CODESEPARATOR вычислит тот же хэш, и поэтому они будут требовать подписи одного и того же сообщения. Идентичные подписи будут работать.

OP_CODESEPARATOR приходит только в аффект, когда он фактически выполняется: EvalScript () начинается с pbegincodehash = script.begin (); и только обновления pbegincodehash когда OP_CODESEPARATOR выполняется.

В scriptPubKey следующего вида:


<Публичных> OP_CHECKSIG OP_CODESEPARATOR


OP_CODESEPARATOR не имеет никакого эффекта. Интересно, что подпись является одинаковым для scriptPubKey, без OP_CODESEPARATOR вообще, из-за scriptCode.FindAndDelete (CSCRIPT (OP_CODESEPARATOR)); линия в SignatureHash (), но это ничего не меняет в отношении предложенного вами нападения.

Я действительно должен обойти написания некоторых связанных разделительные UnitTests; мы не имеем никакого права в настоящее время.
Peter Todd сейчас офлайн Пожаловаться на Питер Тодд   Ответить с цитированием Мультицитирование сообщения от Peter Todd Быстрый ответ на сообщение Peter Todd

22 июля 2013, 2:59:23 PM   # 3
 
 
Сообщения: 1484
Цитировать по имени
цитировать ответ
по умолчанию Re: Атака против некоторых смесительной P2P монеты схем

Я действительно должен обойти написания некоторых связанных разделительные UnitTests; мы не имеем никакого права в настоящее время.

+1

Родственное примечание: JSON тест векторные данные Bitcoin / bitcoin.git повторно используется в нескольких проектах: pynode, picocoin и теперь узел-libcoin.

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

22 июля 2013, 3:03:36 PM   # 4
 
 
Сообщения: 539
Цитировать по имени
цитировать ответ
по умолчанию Re: Атака против некоторых смесительной P2P монеты схем

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

22 июля 2013, 3:19:27 PM   # 5
 
 
Сообщения: 1106
Цитировать по имени
цитировать ответ
по умолчанию Re: Атака против некоторых смесительной P2P монеты схем

Я действительно должен обойти написания некоторых связанных разделительные UnitTests; мы не имеем никакого права в настоящее время.

+1

Родственное примечание: JSON тест векторные данные Bitcoin / bitcoin.git повторно используется в нескольких проектах: pynode, picocoin и теперь узел-libcoin.

pythion-bitcoinlib тоже, если я когда-нибудь вокруг заканчивал в UnitTests я написал.
Peter Todd сейчас офлайн Пожаловаться на Питер Тодд   Ответить с цитированием Мультицитирование сообщения от Peter Todd Быстрый ответ на сообщение Peter Todd



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW