@YuriyBum334

Нашел способ убить биткоин. Прав ли я?

Мы уже успели привыкнуть, что биткоин и блокчейн можно априори считать неуязвимыми для попыток взлома и разрушения. В основе его лежит механизм proof-of-work, требующий определенное количество нулей в начале полученного от SHA256 хеша, что получается крайне редко, чем и объясняется ценность добытых монеток. Допустим, я хочу всех надуть. Для этого я дописываю соло майнер с подкруткой, сводящей сложность на нет, например:

for(i = 0; i<=Difficulty; i++) {
BlockHash[i] = '0';
};

Теперь у меня все хеши из правильных превращаются в валидные для системы. Далее я отключаюсь от сети и на локальном компьютере мгновенно штампую 2К "блоков". Если их хеш попытаться вычислить заново, обман тут же вскроется, но кто ж видит то? По завершении процесса, я снова подключаюсь.

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

Я нигде не нашел информацию о том, что система заново вычисляет хеши уже добытых блоков, во избежание подобного. Может, я не прав?
  • Вопрос задан
  • 507 просмотров
Решения вопроса 1
polym0rph
@polym0rph
Основатель Bits.media
Есть атаки типа скрытой генерации цепочек, но в PoW системах это очень рискованно и дорого, в отличие от того же PoS.
Описанное же выше не пойдет по куче причин, основные ошибки в логике сейчас изложу, а за подробностями копайте документацию или код:

1. Там не количество нулей важно, а чтоб хэш был меньше или равен таргету. Про нули обычно рассказывают для упрощения понимания новичкам. Как и про самую длинную цепь.
2. Сеть принимает валидной не самую длинную, а самую сложную цепь. Чаще всего это самая длинная, но не обязательно.
3. Все узлы проверяют приходящие к ним блоки, и если там хэши не совпадут с содержимым, вылезут даты за допустимые пределы и т.п., то блок будет отвергнут. Сеть - это не обособленный орган принятия решений, это сеть независимых узлов, каждый из которых принимает решения. И просто не ретранслируют то, что считают невалидным. Так что ваши липовые блоки дальше ближайших узлов вообще не уйдут.
4. Во многих клиентах есть захардкоженые "контрольные точки" на некоторых старых блоках, чтобы даже если вскроется какая-то такая злая уязвимость, нельзя было быстро всю цепочку переписать у всех.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы