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)
Расписывать механизм полностью не стал.
мы всё понимаем