Pull to refresh
«Лаборатория Касперского»
Ловим вирусы, исследуем угрозы, спасаем мир

Бомба Сатоши

Reading time 9 min
Views 52K
Почему экономическая целесообразность может привести к краху Биткойн

Автор статьи — Алексей Маланов, эксперт отдела развития антивирусных технологий «Лаборатории Касперского»

Обсудим, чем определяется прибыльность майнинга биткойна, какие принципы по адаптации скорости майнинга были заложены в него изначально, и почему эти принципы в конечном итоге могут привести к краху этой криптовалюты.



Мы предполагаем, что читатель имеет представление об основных механизмах функционирования Биткойн, таких как: блокчейн, майнинг, майнинговые пулы, награда за блок.

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

Атака 51%


В Биткойн-сообществе хорошо известна «Атака 51%». Если майнер контролирует больше половины всех майнинг-мощностей, то он имеет возможность:

  1. Расплатиться своими биткойнами (за товар, услугу) или просто обменять их на привычные деньги.
  2. Начать генерировать блоки, в которые не включена совершенная сделка. Сгенерированные блоки не показывать другим майнерам.
  3. Дождаться получения товара.
  4. Обнародовать сгенерированную им цепочку блоков.

При этом:

  • Все другие майнеры должны будут принять версию блокчейна злоумышленника, как единственную истинную, потому что она длиннее, так как майнер обладает большей майнинг-мощностью, чем все остальные участники вместе взятые;
  • Злоумышленник получает товар и сохраняет свои биткойны, так как в его версии истории он их не тратил;
  • Злоумышленник получает награду за все сгенерированные блоки, а не за половину блоков, которые он бы сгенерировал, если бы играл честно и строил общую цепочку. Хотя его доход останется прежним до очередного пересчета сложности;
  • Вероятнее всего при осуществлении атаки злоумышленник купит за биткойны монеты другой криптовалюты, потому что это быстро, довольно безопасно и необратимо.

Сообщество сходится во мнении, что такая атака, будь она осуществима, поставила бы под сомнение дальнейшее функционирование сети Биткойн.

Важно также понимать, что для успешной атаки необязательно контролировать 51% и более мощностей. С некоторой вероятностью она осуществима и с меньшей долей. Например, обладая 30% мощностей, атакующий может с вероятностью ~18% скрытно сгенерировать цепочку из 5 блоков подряд, которая будет длиннее, чем общедоступная. В этом случае атакующий получает те же преимущества, что и при «Атаке 51%». А в случае неудачи он может просто повторить попытку. Большинство сервисов, принимающих платежи в биткойнах, требуют лишь пяти «подтверждений», то есть, такой сгенерированной цепочки будет достаточно.

Адаптация сложности майнинга


После генерации каждых 2016 блоков сеть Биткойн производит адаптацию сложности майнинга. Нормой считается такая сложность, при которой на майнинг одного блока уходит в среднем 10 минут. Таким образом, на вычисление 2016 блоков должно быть затрачено две недели. Если на генерацию ушла, например, всего одна неделя, то после очередного перерасчета сложность будет увеличена в два раза (таким образом, следующие 2016 блоков при той же мощности сети должны будут генерироваться снова 2 недели).

Отметим, что сеть Биткойн программно запрещает изменять сложность майнинга более, чем в 4 раза за один перерасчет.

Прямые следствия из этих правил. Если майнинговые мощности добавляются или выключаются где-то посередине периода из 2016 блоков, то:

  • Это никак не влияет на награду, которую получат оставшиеся майнеры. Награда определяется хэшрейтом майнера, а не его долей в общем хэшрейте. Например, при выключении половины мощности, оставшиеся майнеры добудут в два раза больше блоков, но за вдвое большее время. Прибыль сохранится.
  • Это напрямую влияет на скорость выработки. Если 99% майнеров перестанут майнить, то очередной перерасчет сложности произойдет примерно через 4 года. А время генерации одного блока составит примерно 16 часов.

Авторы Биткойн предполагали, что описанный алгоритм будет плавно регулировать мощность сети, вытесняя наименее энергоэффективное оборудование и возвращая маржинальность оставшегося в разумные рамки. Однако в действительности такой редкий перерасчет сложности, ведет к другой стратегии майнеров: они смогут обманывать алгоритм, искусственно занижая производительность сети. Ведь при внезапном выключении оборудования прибыль за день остается на прежнем уровне, а при внезапном включении – сокращаются издержки.

Комиссии за майнинг и свобода воли майнеров


Майнеры помимо награды за блок (эмитируемой валюты) забирают себе также комиссию за проведение транзакций, включенных в блок. Сейчас комиссии составляют примерно 10% от награды за блок. Мы не будем останавливаться на этом подробно, однако по нашим расчётам выходит, что существование комиссий делает исследуемую стратегию майнеров еще более выгодной.

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

Однако политику включения/выключения мощностей, переключения мощностей на майнинг альтернативной валюты (Bitcoin Cash) определяет все-таки распорядитель пула. Иными словами, мы считаем, что описываемую стратегию поведения должны принять и реализовать лишь ~20 участников – владельцев пулов, сами владельцы оборудования хоть и обладают «свободой воли», но не играют роли.

Предположим, что суммарная мощность всех майнеров стабилизировалась, рассмотрим одну из стратегий повышения маржинальности.

Пример поведения майнера при стабильной мощности сети Биткойн


Для простоты допустим, что вы контролируете половину всей мощности сети Биткойн. Вы можете держать оборудование включенным все время и получить награду примерно за 1008 блоков (50%).

А можете сделать следующее:



  1. Дождаться начала очередного периода из 2016 блоков.
  2. Выключить свои мощности.
  3. Подождать, пока оставшиеся майнеры за 4 недели намайнят 2016 блоков.
  4. После этого сеть Биткойн в два раза снизит сложность майнинга на следующий период.
  5. Вы включите свои мощности, это позволит всей сети намайнить 2016 блоков за одну неделю.
  6. Лишь за одну неделю вы получите награду за те же (примерно) 1008 блоков.

Обратите внимание, в первом сценарии за 5 недель обычной работы вы получили бы награду за 5/2*1008 = 2520 блоков, но заплатили бы за электричество за все время. Во втором сценарии за те же пять недель вы получаете награду за 1008 блоков, но платите за электричество лишь за одну неделю.

Предположим, что стоимость электричества составляет примерно 90% награды. Легко посчитать, что прибыль в первом сценарии за пять недель эквивалентна награде за 2520*0.1 = 252 блока, а во втором сценарии “награда – затраты” = 1008 – 0.9*1008/2 = 554.4. То есть, предлагаемая стратегия оказывается в 2 раза выгоднее.

Экономически выгодное поведение майнера при различных параметрах


Пусть:

  • Умный майнер контролирует долю $x$ от общей мощности сети.
  • За все 2016 блоков награда в биткойнах составляет $A$.
  • На работу всего оборудования сети за две недели расходы на электричество и обслуживание составляют сумму $C$. Мы предполагаем, что аренда помещения и стоимость простоя оборудования незначительны. Для простоты мы умышленно не учитываем амортизацию оборудования.

Тогда:

  1. При обычной работе награда майнера составляет $Ax – Cx$ за период в две недели.
  2. Если умный майнер выключает свое оборудование, сеть выработает 2016 блоков за время в $\frac{1}{(1-x)}$ большее.
    Например, если $x = 1/3$, то потребуется в полтора раза больше времени, чтобы закончить работу.
  3. После окончания периода адаптации сложности сетью и включении оборудования умного майнера, сеть выполнит работу в $(1-x)$ раз быстрее задуманных двух недель.
    Например, если $x = 1/3$, то после включения его оборудования потребуется 2/3 обычного времени, примерно 10 дней.
  4. Суммарная длительность двух периодов составит $(\frac{1}{1-x}+1-x)*(2 недели)$;
  5. Таким образом, в обычной ситуации (без выключений) майнеры, работая эти два периода, зарабатывают $P_{обычная работа} = (\frac{1}{1-x}+1-x )*(A – C) = (2+\frac{x^2}{1-x})*(A - C)$
    То есть все майнеры получают чуть более, чем две чистые прибыли за такой вот удлиненный условный период.
  6. Умный же майнер, работающий с выключением, не заработает ничего за первый период, но за второй, более короткий период получит $P_{умный} = Ax – Cx(1-x) = Ax – Cx + Cx^2$
    То есть умный майнер получает одну привычную чистую прибыль и дополнительно экономит долю $x$ от издержек.
  7. Все неотключившиеся майнеры за медленный период заработают $P_{медленный период} = A-C$, а за быстрый период $P_{быстрый период} = A – C (1-x)$, потому что награда та же, а работают они быстрее.

Легко увидеть, что:

  • Если затраты майнера в точности равны его награде (майнер работает с нулевой маржой), то умный подход позволит ему получить чистую прибыль в размере $Ax^2$.
  • Если же майнер работает с бесплатным электричеством (маржа 100%), то при обычной работе он заработает более двух прибылей за период, а при работе с простоем – одну.
  • Выясним, сколько оборудования x надо выключать для максимизации прибыли всех майнеров при марже $M = (A – C)/A$:

    $max_{x}(P_{медленный период} + P_{быстрый период} – P_{обычная работа}) =$

    $max_{x}(A-C + A-C(1-x)\ldots -\ldots(2+\frac{x^2}{1-x})(A-C))$

    $max_{x}(M + M+(1-M)x\ldots-\ldots(2+\frac{x^2}{1-x})M)$

    $max_{x}(\frac{(x-Mx )(1-x)- Mx^2}{1-x})=$

    $max_{x}(\frac{-x^2-Mx+x}{1-x})$

Это выражение достигает максимума при $x = 1-\sqrt{M}$. Например, при $M = 4%$ умным майнерам стоит временно выключить 80% оборудования.

Почему майнеры не используют описанную стратегию сейчас



Рост мощности сети Биткойн. За год мощность сети выросла более, чем в 4 раза (Источник)

Рост сложности сети Биткойн за все время. С января 2016 сложность выросла в 8 раз, как и стоимость биткойна (Источник)

Описанная стратегия имеет смысл только при условии, что общая сложность сети не растет. В противном случае, выключение оборудования не ведет к уменьшению сложности и экономически невыгодно.

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

Рост курса биткойна (Источник)

Однако разумно предполагать, что если биткойн не будет бесконечно расти в цене, то рано или поздно вводить новые мощности для майнинга станет экономически нецелесообразно, а затраты на электричество практически сравняются с наградой.

Чем грозит выключение мощностей для майнинга


Когда ввод новых майнинговых мощностей прекратится, майнеры будут смогут применять описанную выше стратегию.

Распределение мощностей Биткойн по пулам (Источник)

Если майнинговые пулы максимизируют собственную выгоду, то при марже в 6,25% следует ожидать выключения до 75% мощностей. Больше оборудования нет смысла выключать, ведь сеть не снизит сложность более, чем в 4 раза.

После этого для проведения «Атаки 51%» злоумышленнику надо либо контролировать более половины оставшейся мощности (что легко осуществимо при текущем распределении мощностей), либо внезапно включить количество оборудования большее, чем работало до этого (что пока неосуществимо с учетом доли самого большого пула).

Возникает вопрос, а выгодно ли атаковать сеть человеку, который инвестировал значительные средства в наращивание майнинг-мощностей? Да, выгодно. При условии низкой маржинальности майнинга стоимость имеющегося оборудования для майнинга также снижается. Иными словами, если майнинг не приносит прибыли, оставаться честным становится невыгодно. Кроме того, атакующий может остаться анонимным, и, помимо прочего, сыграть на понижение цены биткойна.

Атака на Bitcoin Cash


Мы умышленно не рассматриваем ситуацию, при которой быстро и значительно вырастет стоимость электричества, или, что более вероятно, быстро и значительно упадет стоимость биткойнов. В этом случае стратегия майнеров достаточно очевидна. При резких неблагоприятных колебаниях цен все 100% майнеров выключат оборудование. На плаву останутся, разве что, те, кто пользуется бесплатным электричеством. В этом случае работа сети просто остановится – на доработку «двух недель» потребуется время, соизмеримое с жизнью, а невозможность проведения транзакций еще больше опустит цену биткойна.

Буквально на днях в BitcoinMagazine наш коллега проанализировал ситуацию, происходящую с валютой Bitcoin Cash, появившуюся в результате раскола сети Биткойн 1 августа 2017. В новой валюте есть принцип Emergency Difficulty Adjustment. EDA позволяет адаптировать сложность в сети Bitcoin Cash еще чаще, а именно: если за 12 часов было сформировано менее 6 блоков, то сложность снижается на 20%. Автор приходит к выводам, аналогичным нашим, но, что куда важнее, отмечает, что уже сейчас наблюдает манипуляции умных майнеров. Он опасается дестабилизации сети Bitcoin Cash и рассчитывает на скорое вмешательство разработчиков.

Заключение


Мы проанализировали одну из экономически целесообразных стратегий поведения честных майнеров в условиях, когда мощность сети Биткойн прекратит рост. Рассчитали некоторые ключевые параметры такой стратегии и выяснили, что следование ей выгодно для каждого участника в отдельности, но значительно увеличивает риски «Атаки 51%» и потенциально краха системы Биткойн в целом.

Если бы все майнеры были способны надежно договориться, они могли бы пойти дальше: выключить условно все оборудование, кроме одного устройства. Это было бы оптимально с точки зрения прибыли, но фатально с точки зрения защиты сети.

Как же должны действовать майнеры, чтобы гарантировать безопасность? Нам видится тут пара аналогий. Первая – кризис перепроизводства, когда он случается, производители договариваются и публично уничтожают часть товара (по крайней мере, так было в Средние века). Вторая – ядерное разоружение, страны – обладатели больших арсеналов – договариваются об их пропорциональном сокращении.

В идеальном мире всем майнерам стоит договориться об отключении какой-то доли своего оборудования и, главное, о его контролируемом уничтожении. Важно не только планомерно уничтожать, но и строго контролировать его производство.

Рассчитывать на такой «мирный» итог не приходится. Недавнее разделение цепочки Биткойн на две и образование Bitcoin Cash показывает, что не всегда майнеры могут и хотят решать общие проблемы сообща. Возможно в будущем способность к кооперации станет решающим фактором.
Время покажет, насколько наше теоретическое исследование вяжется с практикой.

Читать также:


Tags:
Hubs:
+60
Comments 136
Comments Comments 136

Articles

Information

Website
www.kaspersky.ru
Registered
Founded
Employees
5,001–10,000 employees
Location
Россия