Bitcoin Forum

Local => Кодеры => Topic started by: bitcoin007 on August 22, 2012, 10:44:32 AM



Title: Что там? в Глубине? ;-)
Post by: bitcoin007 on August 22, 2012, 10:44:32 AM
https://bitcointalk.org/index.php?topic=102395.0 (https://bitcointalk.org/index.php?topic=102395.0)

Люди понимающие в кодирование-программировании что там? Насколько опасно?

Благодарю

линки https://bitcointalk.org/index.php?topic=102470.0 (https://bitcointalk.org/index.php?topic=102470.0) Майнеры
           https://bitcointalk.org/index.php?topic=102435.0 (https://bitcointalk.org/index.php?topic=102435.0) Разное

ЗЫЖ  btcsec благодарю
<В структуре хэширования Меркла, которая используется в Bitcoin для подсчета заголовка блока, нашли уязвимость.
Например, merkle_hash ([A, B, C]) и merkle_hash ([A, B, C, C]) дают одинаковый результат.
Как результат, можно сделать два блока, которые имеют один хэш.
Непатченный Bitcoin можно было поиметь, отправив подправленный блок с дублирующимися транзакциями. Кошелек видит ошибку, но правильный блок скачать уже не сможет, т.к. считает, что у него уже есть блок с этим номером и правильным хэшем.

По сути это DOS - атака отказа в обслуживании, зная ее раньше, злоумышленники могли бы вывести из сети большую часть нод, прежде чем те получили бы исправления. Сейчас эта ошибка исправлена, по крайней мере у 80% сети, так что угрозы не представляет.>


Title: Re: Что там? в Глубине? ;-)
Post by: btcsec on August 23, 2012, 02:31:04 PM
Если урощенно, то вот (https://forum.btcsec.com/index.php?/topic/464-%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C-%D0%B2-%D1%85%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8/page__pid__3208#entry3208). Расписывать механизм полностью не стал.


Title: Re: Что там? в Глубине? ;-)
Post by: ArsenShnurkov on August 23, 2012, 03:52:27 PM
merkle_hash ([A, B, C]) и merkle_hash ([A, B, C, C]) дают одинаковый результат.

1) Где эта функция в коде (ссылки на web-интерфейс к git - можно давать прямо на строчки кода)

можно сделать два блока, которые имеют один хэш.

2) демонстрационный пример бы помог

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

3) Где кусок кода, который принимает решение и отклоняет блок

По сути это DOS - атака отказа в обслуживании, зная ее раньше, злоумышленники могли бы вывести из сети большую часть нод,

4) Что конкретно происходит с клиентом, принявшим неправильный блок?

Он перестает строить цепочку?
Если не перестает, то хорошо бы раскрыть в чем проблема, ну будет транзакция сдублирована, чем это страшно?

прежде чем те получили бы исправления.

5) Исправления кода, принимающего решение о блоках?
Или исправления в цепочке блоков?

Сейчас эта ошибка исправлена, по крайней мере у 80% сети, так что угрозы не представляет.

6) Каким образом ошибка исправлена (как было в коде, как стало в коде)?

7) Как получена оценка в 80%, если биткоин весь такой анонимный?

8]  Как надо было организовывать атаку, чтобы угроза была превращена в профит?
   (это надо в текст поближе к пункту 4)

Расписывать механизм полностью не стал.

мы всё понимаем


Title: Re: Что там? в Глубине? ;-)
Post by: Balthazar on August 23, 2012, 04:55:00 PM
Quote
4) Что конкретно происходит с клиентом, принявшим неправильный блок?

Он перестает строить цепочку?
Он перестает принимать новые блоки, т.к. считает их за потомков от инвалидного блока. В таком состоянии клиент будет находиться, пока не перекачаешь цепочку. Это позволяло отправить в даун уязвимые пулы, и сделать 51% атаку, пока можность сети мала.


Quote
7) Как получена оценка в 80%, если биткоин весь такой анонимный?
Вообще-то, ноды распространяют по сети информацию о себе (IP, порт, количество локальных блоков, номер версии клиента и номер версии протокола, а так же тип клиента). Анонимны только переводы, да и то при соблюдении мер предосторожности.

Хочется больше информации, читайте оригинальный топик, там есть ссылки.