1. Атакующий отправляет в сеть транзакцию с оплатой товара и в то же время в частном порядке майнит форк блокчейна (разветвление цепи блоков), где вместо этого включена транзакция двойной траты.
2. После ожидания п подтверждений торговец отправляет товар.
3. Если у атакующего к этому моменту получается посчитать более п блоков, он публикует свой форк и получает монеты обратно; в противном случае он может попытаться продолжить считать свой форк в надежде когда-нибудь обогнать сеть. Если этого никогда не произойдет, то атака считается захлебнувшейся, платеж остается совершенным, а средства остаются у торговца.
Вероятность успеха атаки — функция от хешрейта атакующего (как доли общего хешрейта сети) и числа подтверждений, которые будет дожидаться торговец перед тем, как выдать товар. Например, в случае, если атакующий контролирует 10 % хешрейта сети, но торговец ждет прохождения шести подтверждений, вероятность успеха атаки будет порядка 0,1 %.
Как описывалось в предыдущем разделе, атака >50 % преуспеет только в случае, если злоумышленник получит контроль над более чем 50 % хеш-мощности всей сети. Поскольку в этом случае злоумышленник может генерировать блоки быстрее, чем оставшаяся часть сети, он может попросту упорно наращивать блоки в своем форке до тех пор, пока его цепь не станет длиннее цепи, построенной "честной" сетью. Тогда никакое количество подтверждений не спасет от атаки.
Самую большую угрозу торговцам и провайдерам биткойн-сервисов несет атака >50 %. поскольку она также косвенным образом обеспечивает успех брутфорс-атаке. Но учитывая, до каких размеров выросла вычислительная мощность сети биткойна к настоящему времени, возникают большие сомнения в том, что такая атака когда-либо сможет быть успешно проведена.
Наибольшей проблемой биткойн-сети является то, что поверх нее понастроили слишком много централизованных сервисов. Почти каждая биткойн-биржа и каждый майнинг-пул представляют собой централизованные сервисы. Когда биткойн-биржа оказывается взломанной, это не оказывает влияния на блокчейн сам по себе, равно как и не открывает возможность к проведению атаки двойной траты. Но когда взламывают большой майнинг-пул, это может быть совсем друтой коленкор. К счастью для всех участников, сейчас в сети нет майнинг-пула биткойнов, который контролировал бы половину сети. Самые большие майнинг-пулы контролируют до 25 % общей вычислительной мощности сети. Гем не менее, если злоумышленник решит провести брутфорс-атаку для двойной траты биткойнов, то такой доли мощности сети ему будет достаточно.
Глава 11. Майнинг биткойнов
В этой главе…
✓ Разбираемся в основах майнинга
✓ Осмысливаем облачный майнинг
✓ Решаем, имеет ли смысл связываться с майнингом
Концепция майнинга биткойнов основывается на процессе создания новых биткойнов. Этот процесс будет идти вплоть до момента достижения предела в 21 миллион монет. Биткойны не появляются из воздуха, не выпускаются банками или правительствами. Они генерируются в ходе решения компьютерами сложных математических уравнений.
Без биткойн-майнеров новые монеты не попали бы в обращение. И хотя для большинства людей это и не стало бы проблемой, требующей немедленною решения, это также означало бы, что в сети перестали подтверждаться транзакции, что вызвало бы гораздо большее беспокойство. В условиях, когда в сети перестали бы считаться блоки, транзакции остались бы неподтвержденными, и получатели не смогли бы потратить свои монеты.
Но майнинг биткойнов нужен не только для создания новых монет. Он добавляет записи транзакций в открытый распределенный журнал транзакций, называемый блокчейном (более подробно о блокчейне — в главе 7). Каждая биткойн-транзакция должна быть записана в блок данных, и этот блок данных должен быть "вычислен" майнерами. Как только транзакция оказывается включенной в какой-то биткойн-блок, она получает первое подтверждение.
За последние несколько лет процесс майнинга биткойнов стал очень сложным и ресурсоемким. По мере того как все больше и больше людей соревнуются в попытках посчитать следующий биткойн-блок, неуклонно растет сложность, ассоциированная с этими математическими расчетами. По мере роста сложности частота нахождения новых блоков остается стабильно на уровне одного блока раз в десять минут — это делает возможным ожидание года окончания майнинга, когда последний блок будет найден.
Читать дальше