Текст книги "Биткойн для чайников"
Автор книги: С. Тригуб
Жанр:
Руководства
сообщить о нарушении
Текущая страница: 14 (всего у книги 17 страниц)
Одна из очень немногих вещей, которые могли бы нанести существенный вред сети Биткойн, – это так называемая «атака 51 %». Проще говоря (а мне нравятся простые формулировки, как и многим из вас), атака 51 % означает, что какой-то майнер или картель майнеров завладевает 51 % от общего количества вычислительных ресурсов сети. Это может привести к форку (разделению единого журнала транзакций, блокчейна. на два с определенного момента противоречащих друг другу варианта) сети биткойна. В результате будет создан новый «искусственный» вариант блокчейна, с точки зрения которого любые транзакции «старого» блокчейна будут недействительны.
Теория атаки 51%
Вероятность атаки 51 % в мире биткойна очень мала, хотя и не нулевая. Как только злоумышленник получит в свое распоряжение 51 % (или более) хеширующей мощности всей сети, он сможет по своему усмотрению блокировать новые транзакции или изменять их порядок, что позволит ему контролировать запись информации в блокчейн биткойна.
Атака 51 % может иметь неприятные последствия для сети биткойна в целом. Например, человек, группа лиц или компания, несущие ответственность за атаку 51 % в сети биткойна, получили бы возможность обращать транзакции на протяжении всего времени атаки. Транзакции с двойной тратой – возможностью потратить одни и те же биткойны дважды – в это время стали бы настоящей проблемой, ведь было бы невозможно понять, какая транзакция настоящая, а какая нет (мы поговорим об этом еще чуть позже в этой же главе).
Кроме того, лица, ответственные за атаку, могут помешать любой транзакции по выбору – или сразу всем – набирать подтверждения. К тому же стоит атакующим пожелать, и майнеры не смогут майнить правильные блоки в сети, при том что весь доход будет уходить к атакующим. Это основная из причин, по которым эксперты индустрии биткойна хотят быть уверены, что атака 51 % никогда не произойдет ни при каких обстоятельствах, хотя стопроцентной гарантии никто, конечно же, дать не может.
Но говоря об этой сугубо теоретической возможности, стоит упомянуть еще кое о чем. Чего злоумышленник (или злоумышленники) не сможет сделать, так это изменять транзакции, инициированные другими пользователями. Не смогут они также украсть биткойны других пользователей, ведь у них все равно не будет секретного ключа. Только собственные транзакции атакующих смогу! быть обращены, но даже одно только это может нанести сети биткойна значительный ущерб, ведь проведение транзакций другими пользователями также может стать невозможным, если атакующие решат помешать этим транзакциям получить подтверждения в сети. Подтверждения происходят в результате подписания новых блоков в биткойн-сети, и атака смогла бы полностью остановить этот механизм. Но создание монет из ничего или даже изменение награды за блок – это два базовых параметра сети, которые все равно никак нельзя изменить. В итоге получается, что, даже завладев 51 % вычислительной мощности сети биткойна, найдется не так уж и много вещей, на которые злоумышленники смогли бы повлиять.
Только теория
Надо понимать, что не все стратегии, сущее-твующие в теории, имеют шанс реализоваться в действительности. Именно к такой группе относится стратегия ״Атаки 51 %", по мнению подавляющего большинства блокчейн-експертов.
Зачем же тогда вообще обсуждать эту проблему? В мире биткойна считается, что необходимо тщательно изучать любые потенциальные дыры в сетевом протоколе до того, как злоумышленники получат возможность их использования. Всегда гораздо лучше заранее «перебдеть», чем потом сожалеть и пытаться исправить ситуацию, так что биткойн-девелоперы непрестанно работают, чтобы застраховать сеть от нанесения ей любого вреда.
По мере развития технологии девелоперам придется оставаться на переднем крае и принимать все технологические новинки близко к сердцу. Безопасность – постоянно меняющаяся сущность, и, если ей не уделять должного внимания, она может привести к многочисленным плохим последствиям. К счастью, биткойн-разработчики стоят на страже наших интересов.
Большинство экспертов в области безопасности ожидают, что в обозримом будущем атаки 51 % не произойдет. Нет каких-либо стимулов к атаке, кроме того что появится возможность двойной траты монет, которыми владеет сам злоумышленник. Если у злоумышленника мало монет, то проведение успешной (и, заметим, крайне дорогостоящей) атаки не принесло бы атакующему никакого монетарного вознаграждения. Если же у него большое количество монет, го проведение такой атаки способно их существенно обесценить, что вряд ли компенсируют попытки двойной траты, успешность которых тоже далеко не гарантирована.
Насколько вероятна атака 51%
Проведение атаки 51 % частным биткойи-майнером или хакером практически невозможно. Однако в последние годы некоторые из крупнейших майнинг-пулов подходили близко к тому, чтобы завладеть более чем пятьюдесятью процентами вычислительной мощности сети. Однако благодаря своевременно принятым мерам в отношении затронутых пулов потенциал доминирования единственного из участников сети был каждый раз успешно блокирован.
Узел Ghash.io, в прошлом один из крупнейших майнинг-пулов биткойна, неоднократно подходил к границе 51 % мощности сети. Последний раз Ghash.io пересек черту 51 % в июле 2014 года, вынудив биткойн-сообщество сесть за стол переговоров с владельцами пула и всем сообществом майнеров биткойна, чтобы найти решение.
Были разработаны меры, включавшие обязательство со стороны Ghash.io с этого момента никогда более не преступать порог в 29,99 % общего хешрейта (общая вычислительная мощность, определяемая как сумма мощностей всех майнеров) сети Биткойн. И несмотря на то что 29,99 % – это все равно слишком много для контроля со стороны одного майнинг-пула, это также может рассматриваться как буфер, чтобы помешать кому-то другому, кто захочет начать злонамеренную «атаку 51 %» на сеть.
Это был уже второй случай менее чем за год. когда Ghash.io был близок – или превзошел – уровень 51 % всей вычислительной мощности сети. В январе 2014 года Ghash.io также был близок к тому, чтобы завладеть 51 % хеш-мощности сети – результатом этого стало приостановление возможности регистрации в пуле новых пользователей на достаточно длительный период.
Впрочем, в мире майнинг-пулов ничего не остается постоянным, новые пулы появляются, набирают популярность, потом идут к закату и исчезают. То же самое произошло с Ghash.io. После 2014 года пул постепенно исчез с горизонта. Компания CEX.io – владелец узла Ghash.io – в конце 2014 года решила приостановить сервис облачного майнинга из-за того, что низкая цена биткойна делала бесприбыльной работу всего оборудования, используемого для майнинга в пуле Ghash.io. Если оборудование подразделения облачного майнинга CEX.io в будущем когда-либо будет включено вновь, будет интересно посмотреть, сможет ли Ghash.io стяжать былую славу.
На момент выхода книги вычислительная мощность сети биткойна делится между множеством майнинг-пулов. Самый крупный на текущий момент пул – китайский AntPool (в нем 17,8 % мощности сети); за ним следуют пул ВТС.Тор (11,7 %), Bixin (9.7 %) и BitFury (8 %). Актуальную информацию о распределении хеш-мощности можно получить на странице https://blockchain.info/pools.
Все вышеупомянутые пулы управляются китайскими операторами, что делает Китай страной, которой в настоящий момент принадлежит около половины вычислительной мощности сети биткойна.
Двойная тратаОдним из главных опасений в отношении биткойна является вопрос "Сможет ли хакер потратить свои монеты дважды?" Теоретически двойная трата могла бы произойти, и на практике она происходила. Тем не менее фактор риска, ассоциированный с таким событием, близок к нулю, поскольку шансы здесь в пользу биткойн-пользователя или торговца. Но что же такое атака двойной траты и как ее можно провести?
Атака двойной траты
Название говорит само за себя. Технически атака двойной траты позволяет одному пользователю дважды потратить все монеты, находящиеся у него на балансе. Например, если у кого-то в кошельке находится 5 биткойнов, то теоретически при реализации сценария двойной траты он мог бы потратить 10 биткойнов. Тем не менее в сети биткойна есть различные правила для предотвращения двойной траты, что делает ее крайне редким явлением.
Каждая биткойн-транзакция при ее распространении в блокчейне проверяется каждым отдельным узлом сети. Каждая биткойн-транзакция содержит ввод, эквивалентный последнему непотраченному выводу, на аккаунте, о котором здесь идет речь. Каждый непотраченный вывод может быть потрачен только однократно, что должно сделать двойную трату биткойнов невозможной.
Атака в спешке
И хотя атака двойной траты в настоящее время очень редка, все равно есть шансы, что кто-то может стать ее жертвой. Из соображений удобства интернет-торговцы и трейдеры склонны считать, что биткойн-платеж уже прошел даже при нуле подтверждений – это дает возможность атакующему потратить те же самые деньги еще раз. По мере того как транзакция набирает все больше подтверждений, шансы проведения двойной траты сокращаются экспоненциально.
Торговцы могут принять определенные меры предосторожности, чтобы обезопасить себя от атаки двойной траты. Во-первых, и в самых главных, это работа с биткойн-процессором платежей, который согласует риски на стороне торговца. – это шаг в правильном направлении. Большинство платежных процессоров защитят торговца от убытков даже в случае атаки двойной траты.
Во-вторых, торговцы и рядовые пользователи сети могут запретить входящие соединения в клиенте, чтобы он мог только сам соединяться с доверенными узлами. Эти действия сводят к нулю риск атаки двойной траты. Но даже если так, все равно лучше дожидаться как минимум шести подтверждений транзакции.
Против биткойн-сети могут быть применены различные типы атаки двойной траты. Мы только что обсудили атаку׳ "в гонке", которую можно провести, только пока транзакция не получила ни одного подтверждения.
Ожидание нескольких подтверждений – лучшее средство убедиться в том, что транзакция легитимна, даже если это и самый удобный вариант для торговцев.
Атака Финни
Еще одним популярным видом атаки двойной траты является атака Финни, которая требует участия биткойн-майнера сразу после того, как в сети был найден очередной блок. Меры предосторожности, предпринятые торговцем, не могут помешать успешному осуществлению атаки Финни, хотя для того, чтобы атака считалась успешной, злоумышленнику потребуется совершить вполне определенную последовательность действий. В целом этот метод достаточно дорогостоящ, что снижает риск проведения атак такого типа для торговцев и провайдеров сервисов.
Комбинация атаки "в спешке" и атаки Финни позволяет провести атаку Вектор76. Теоретически эта атака позволяет двойную трату биткойнов даже после первого сетевого подтверждения транзакции. Успешная атака будет стоить атакующему один блок – атакующий должен утаить этот блок и вместо того, чтобы распространить информацию о нем в сети, оттранслировать его атакуемому узлу в надежде, что успеет скрыться с товаром или воспользоваться сервисом до того, как сеть распознает атаку.
Брутфорс-атака
И последние, но не менее значимые – брутфорс-атака и атака >50 %. Для проведения обеих требуется неимоверное количество вычислительной мощности сети биткойна. Вероятность проведения любой из этих атак в настоящее время крайне мала, так как атакующему понадобилось бы получить контроль над существенным количеством всей майнинговой мощности сети биткойна.
Брутфорс-атака происходит так.
1. Атакующий отправляет в сеть транзакцию с оплатой товара и в то же время в частном порядке майнит форк блокчейна (разветвление цепи блоков), где вместо этого включена транзакция двойной траты.
2. После ожидания п подтверждений торговец отправляет товар.
3. Если у атакующего к этому моменту получается посчитать более п блоков, он публикует свой форк и получает монеты обратно; в противном случае он может попытаться продолжить считать свой форк в надежде когда-нибудь обогнать сеть. Если этого никогда не произойдет, то атака считается захлебнувшейся, платеж остается совершенным, а средства остаются у торговца.
Вероятность успеха атаки – функция от хешрейта атакующего (как доли общего хешрейта сети) и числа подтверждений, которые будет дожидаться торговец перед тем, как выдать товар. Например, в случае, если атакующий контролирует 10 % хешрейта сети, но торговец ждет прохождения шести подтверждений, вероятность успеха атаки будет порядка 0,1 %.
Как описывалось в предыдущем разделе, атака >50 % преуспеет только в случае, если злоумышленник получит контроль над более чем 50 % хеш-мощности всей сети. Поскольку в этом случае злоумышленник может генерировать блоки быстрее, чем оставшаяся часть сети, он может попросту упорно наращивать блоки в своем форке до тех пор, пока его цепь не станет длиннее цепи, построенной «честной» сетью. Тогда никакое количество подтверждений не спасет от атаки.
Самую большую угрозу торговцам и провайдерам биткойн-сервисов несет атака >50 %. поскольку она также косвенным образом обеспечивает успех брутфорс-атаке. Но учитывая, до каких размеров выросла вычислительная мощность сети биткойна к настоящему времени, возникают большие сомнения в том, что такая атака когда-либо сможет быть успешно проведена.
Наибольшей проблемой биткойн-сети является то, что поверх нее понастроили слишком много централизованных сервисов. Почти каждая биткойн-биржа и каждый майнинг-пул представляют собой централизованные сервисы. Когда биткойн-биржа оказывается взломанной, это не оказывает влияния на блокчейн сам по себе, равно как и не открывает возможность к проведению атаки двойной траты. Но когда взламывают большой майнинг-пул, это может быть совсем друтой коленкор. К счастью для всех участников, сейчас в сети нет майнинг-пула биткойнов, который контролировал бы половину сети. Самые большие майнинг-пулы контролируют до 25 % общей вычислительной мощности сети. Гем не менее, если злоумышленник решит провести брутфорс-атаку для двойной траты биткойнов, то такой доли мощности сети ему будет достаточно.
Глава 11. Майнинг биткойнов
В этой главе…
✓ Разбираемся в основах майнинга
✓ Осмысливаем облачный майнинг
✓ Решаем, имеет ли смысл связываться с майнингом
Концепция майнинга биткойнов основывается на процессе создания новых биткойнов. Этот процесс будет идти вплоть до момента достижения предела в 21 миллион монет. Биткойны не появляются из воздуха, не выпускаются банками или правительствами. Они генерируются в ходе решения компьютерами сложных математических уравнений.
Без биткойн-майнеров новые монеты не попали бы в обращение. И хотя для большинства людей это и не стало бы проблемой, требующей немедленною решения, это также означало бы, что в сети перестали подтверждаться транзакции, что вызвало бы гораздо большее беспокойство. В условиях, когда в сети перестали бы считаться блоки, транзакции остались бы неподтвержденными, и получатели не смогли бы потратить свои монеты.
Но майнинг биткойнов нужен не только для создания новых монет. Он добавляет записи транзакций в открытый распределенный журнал транзакций, называемый блокчейном (более подробно о блокчейне – в главе 7). Каждая биткойн-транзакция должна быть записана в блок данных, и этот блок данных должен быть «вычислен» майнерами. Как только транзакция оказывается включенной в какой-то биткойн-блок, она получает первое подтверждение.
За последние несколько лет процесс майнинга биткойнов стал очень сложным и ресурсоемким. По мере того как все больше и больше людей соревнуются в попытках посчитать следующий биткойн-блок, неуклонно растет сложность, ассоциированная с этими математическими расчетами. По мере роста сложности частота нахождения новых блоков остается стабильно на уровне одного блока раз в десять минут – это делает возможным ожидание года окончания майнинга, когда последний блок будет найден.
В наши дни затраты на электричество и вложения в оборудование при организации правильной биткойн-фермы весьма высоки. Домашний майнинг стал почти невозможным, разве что есть доступ к дешевому или бесплатному электричеству. Это главная причина, по которой оборудование подавляющего большинства биткойн-майнеров находится в Китае, где оптовые цены на электроэнергию значительно ниже, чем в большинстве стран мира. Увидеть своими глазами, на что похожа современная промышленная биткойн-ферма. можно здесь: https://www.youtube.com/watch?v=GNZ6Bg-0nj.0
Спускаемся в шахтуДля майнинга биткойнов не нужна кирка, канарейка или газовая лампа.
Основной целью майнинга является создание консенсусной экосистемы, чтобы биткойн-узлы могли определить, является ли транзакция действительной. Общеизвестно, что шесть подтверждений – это минимум, необходимый для того, чтобы средства, пришедшие в транзакции, можно было "официально" потратить.
Основная причина, по которой майнинг биткойна со временем все более и более усложняется и становится более ресу рсоемким, заключается в том, что реализация алгоритма SHA-256 делает расчет хеша блока очень сложным. Каждый блок должен начинаться с определенною количества нулей, а это значит, что нужно предпринять довольно много попыток перед тем, как удастся найти правильное решение.
Кроме того, сложность майнинга пересчитывается сетью каждые 2016 биткойн-блоков, и едва ли удастся припомнить, чтобы она когда-либо снижалась. Коэффициент сложности зависит от общею количества вычислительной мощности, использовавшейся для решения предыдущих 2016 блоков в сети за прошедшие две недели, и компенсирует прирост или уменьшение количества майнинговой мощности.
В начале времен биткойна каждый добытый блок приносил награду 50 ВТС. По мере того как все больше майнеров вступали в бой, награда за блок стала распределяться среди участников майнинг-пула, находившего очередной блок. На момент публикации книги награда за блок составляет 12,5 ВТС и должна уменьшиться вдвое, до 6.25 BTC, примерно в марте 2020 года.
За биткойн-транзакции нужно платить комиссионные сборы. Эти сборы получают майнеры за включение транзакции при майнинге очередного блока. И хотя основную часть дохода майнеров пока составляет вознаграждение за решение блока, в будущем доля этих комиссионных сборов в структуре вознаграждения майнеров будет расти.
По мере своего развития экосистема майнинга биткойна претерпела радикальные изменения. Для того чтобы получить хоть какую-то прибыль, теперь требуется специализированное майнинговое оборудование. Как уже упоминалось, майнинг биткойна очень затратен с точки зрения расходов на электричество; также постоянно требуется обслуживание и обновление майнингового оборудования.
Необходимость сокращения дисперсии доходов майнеров рано или поздно должна была привести к созданию майнинг-пулов. В начале индивидуальным майнерам принадлежали все возможности, но индивидуалы постепенно исчезали из биткойн-мира по мере того, как майнинг в пуле становился все более и более предпочтительным. Объединение вычислительной мощности многих майнеров увеличивает шансы нахождения следующего биткойн-блока, при том что награда за найденный блок делится между участниками в соответствии с объемом вычислительной мощности каждого из них.
Майнинг биткойна: как это работаетНапомним: в отличие от традиционных фиатных валют, когда правительства всех стран мира могут по необходимости допечатать столько банкнот и дочеканить столько монет, сколько им нужно, в биткойне объем эмиссии строго ограничен. Это ограничение установлено на уровне 21 миллион монет и не будет достигнуто до 2140 года. А до этого времени майнеры будут использовать специализированное компьютерное оборудование с целью майнинга новых биткойнов в сети.
Как только биткойн-транзакции распространяются 8 сети, они подхватываются майнерами и включаются в биткойн-блок. Этот биткойн-блок должен быть проверен майнерами, и как только блок "решен", все включенные в него транзакции записываются в блокчейн. Каждый последующий блок, образовавшийся в сети, добавляет к транзакции одно дополнительное подтверждение.
Биткойн-майнеры играют ключевую роль, обеспечивая точность блокчейна, поскольку берут информацию о биткойн-блоке и проверяют ее целостность. После этого к блоку данных биткойна применяется сложная математическая формула, которая превращает блок в нечто иное.
Этот «иной» вариант блока состоит из более короткой последовательности цифр и букв, которая кажется случайной. В биткойн-мире эта последовательность известна как хеш. Биткойн-майнерам гораздо легче считать хеши, чем полный блок данных, поскольку новые блоки должны генерироваться и майниться примерно раз в десять минут, и, как мы уже сказали, эти хеши чрезвычайно сложно находить, а потому этот процесс требует специализированною компьютерного оборудования.
После того как хеш решен, он хранится на блокчейне биткойна вместе с блоком, на основе которого он был получен. Этот процесс подтверждает все транзакции, записанные в данный блок, и помечает их как имеющие одно сетевое подтверждение. И хотя майнерам легче решать хеши, чем полные блоки, растущая сложность майнинга биткойна уравновешивает это и обеспечивает создание новых блоков не чаще, чем раз в десять минут.
Использование хешей само по себе достаточно интересно. Это криптографическое решение полностью защищено от подделок и работает как «печать подтверждения» для предыдущего сетевого блока. Каждый хеш основывается на хеше предыдущего блока и удостоверяет действительность предыдущего блока так же, как и любого предшествующего по цепочке.
С учетом того, сколько специализированного майнингового оборудования сейчас активно используется индивидуальными майнерами, компаниями и даже производителями оборудования, становится почти невозможно сказать, сколько же людей в данный момент активно майнят биткойны. Конкуренция очень жесткая, поскольку награда за блок в размере 12,5 ВТС является щедрым вознаграждением, способным привлечь майнеров со всего мира.
Несмотря на увеличение майнинговой сложности, все большая вычислительная мощность регулярно вливается в сеть биткойна. Усиление сети не только увеличивает шанс майнеров найти очередной блок – и получить вознаграждение в зависимости от доли участия в этой напряженной работе; также это делает сеть биткойна еще безопаснее, чем раньше.