Самую большую угрозу торговцам и провайдерам биткойн-сервисов несет атака >50 %. поскольку она также косвенным образом обеспечивает успех брутфорс-атаке. Но учитывая, до каких размеров выросла вычислительная мощность сети биткойна к настоящему времени, возникают большие сомнения в том, что такая атака когда-либо сможет быть успешно проведена.
Наибольшей проблемой биткойн-сети является то, что поверх нее понастроили слишком много централизованных сервисов. Почти каждая биткойн-биржа и каждый майнинг-пул представляют собой централизованные сервисы. Когда биткойн-биржа оказывается взломанной, это не оказывает влияния на блокчейн сам по себе, равно как и не открывает возможность к проведению атаки двойной траты. Но когда взламывают большой майнинг-пул, это может быть совсем другой коленкор. К счастью для всех участников, сейчас в сети нет майнинг-пула биткойнов, который контролировал бы половину сети. Самые большие майнинг-пулы контролируют до 25 % общей вычислительной мощности сети. Гем не менее, если злоумышленник решит провести брутфорс-атаку для двойной траты биткойнов, то такой доли мощности сети ему будет достаточно.
Глава 11. Майнинг биткойнов
В этой главе…
• Разбираемся в основах майнинга
• Осмысливаем облачный майнинг
• Решаем, имеет ли смысл связываться с майнингом
Концепция майнинга биткойнов основывается на процессе создания новых биткойнов. Этот процесс будет идти вплоть до момента достижения предела в 21 миллион монет. Биткойны не появляются из воздуха, не выпускаются банками или правительствами. Они генерируются в ходе решения компьютерами сложных математических уравнений.
Без биткойн-майнеров новые монеты не попали бы в обращение. И хотя для большинства людей это и не стало бы проблемой, требующей немедленною решения, это также означало бы, что в сети перестали подтверждаться транзакции, что вызвало бы гораздо большее беспокойство. В условиях, когда в сети перестали бы считаться блоки, транзакции остались бы неподтвержденными, и получатели не смогли бы потратить свои монеты.
Но майнинг биткойнов нужен не только для создания новых монет. Он добавляет записи транзакций в открытый распределенный журнал транзакций, называемый блокчейном (более подробно о блокчейне – в главе 7). Каждая биткойн-транзакция должна быть записана в блок данных, и этот блок данных должен быть “вычислен” майнерами. Как только транзакция оказывается включенной в какой-то биткойн-блок, она получает первое подтверждение.
За последние несколько лет процесс майнинга биткойнов стал очень сложным и ресурсоемким. По мере того как все больше и больше людей соревнуются в попытках посчитать следующий биткойн-блок, неуклонно растет сложность, ассоциированная с этими математическими расчетами. По мере роста сложности частота нахождения новых блоков остается стабильно на уровне одного блока раз в десять минут – это делает возможным ожидание года окончания майнинга, когда последний блок будет найден.
В наши дни затраты на электричество и вложения в оборудование при организации правильной биткойн-фермы весьма высоки. Домашний майнинг стал почти невозможным, разве что есть доступ к дешевому или бесплатному электричеству. Это главная причина, по которой оборудование подавляющего большинства биткойн-майнеров находится в Китае, где оптовые цены на электроэнергию значительно ниже, чем в большинстве стран мира. Увидеть своими глазами, на что похожа современная промышленная биткойн-ферма, можно здесь: https://www.youtube.com/watch?v=GNZ6Bg-Onj0.
Спускаемся в шахту
Для майнинга биткойнов не нужна кирка, канарейка или газовая лампа.
Основной целью майнинга является создание консенсусной экосистемы, чтобы биткойн-узлы могли определить, является ли транзакция действительной. Общеизвестно, что шесть подтверждений – это минимум, необходимый для того, чтобы средства, пришедшие в транзакции, можно было “официально” потратить.
Основная причина, по которой майнинг биткойна со временем все более и более усложняется и становится более ресурсоемким, заключается в том, что реализация алгоритма SHA-256 делает расчет хеша блока очень сложным. Каждый блок должен начинаться с определенною количества нулей, а это значит, что нужно предпринять довольно много попыток перед тем, как удастся найти правильное решение.