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

Автор: Jameson Lopp, Cypherpunk Cogitations

Составил: aididiaojp.eth, Foresight News

Если вы когда-либо использовали сеть Биткойн для транзакций, вы могли осознать, что принимать неподтвержденные (так называемые нулевые подтверждения) транзакции опасно. В случае неподтвержденных транзакций получатели биткойнов легко подвержены атакам гонки, атакам Финни и атакам на 51%.

Когда вы получите хотя бы одно подтверждение транзакции, становится не так легко подвергнуться атакам гонки или Финни. Теперь единственное, что вас волнует, это атака на 51%. Каково правило о приемлемом количестве подтверждений?

  • 1 подтверждение: достаточно для небольших платежей ниже 1000 долларов.

  • 3 подтверждения: для сумм платежей от 1000 до 10000 долларов большинство бирж требуют 3 подтверждения депозита.

  • 6 подтверждений: подходит для крупных платежей от 10000 до 1000000 долларов. Шесть подтверждений считаются безопасным стандартом.

  • 10 подтверждений: рекомендуется для крупных платежей свыше 1000000 долларов.

Углубленное изучение

На самом деле, Биткойн не так прост, как мы думаем, и наше так называемое правило о подтверждениях основано на предположениях, о которых мы не говорим.

Например, порог подтверждения, указанный выше, фактически основан на злоумышленнике с глобальным хешрейтом 10%, при этом 6 подтверждений могут гарантировать 99,99%, что злоумышленник не сможет переписать множество историй в блокчейн-сети.

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

Квантование рисков в реальном времени

На страницах 6 и 7 белой книги Биткойн описывается метод оценки рисков переписывания блокчейна злоумышленником после заданного количества подтверждений транзакции.

Конкуренция между честной цепью и цепью злоумышленника может быть описана как биномиальное случайное блуждание. Успешным событием является то, что честная цепь удлиняется на один блок, что увеличивает ее преимущество на 1, тогда как неудачным событием является то, что цепь злоумышленника удлиняется на один блок, и разрыв сокращается на 1. Вероятность, с которой цепь злоумышленника нагоняет честную цепь, аналогична задаче о банкротстве игрока. Проще говоря: игрок (злоумышленник) в большинстве случаев сможет выиграть, но его ожидаемое значение отрицательно, поэтому, чем дольше он играет в эту игру с отрицательным ожидаемым значением, тем меньше вероятность, что он станет победителем.

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

Чтобы определить вероятность того, что злоумышленник сможет переписать блокчейн с z блоков назад, мы умножаем плотность Пуассона для каждого шага, который может сделать злоумышленник, на вероятность его достижения этой позиции, где:

  • p = Вероятность того, что честный майнер найдет следующий блок

  • q = Вероятность того, что злоумышленник найдет следующий блок

  • z = Сколько блоков (подтверждений) нужно перестроить

  • lambda = z * (q / p)

  • k = Целое число от 0 до z

Это не очень интересная формула, поэтому она кажется неплохим выбором для открытых проектов.

Калькулятор рисков подтверждения

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

Теперь легко увидеть, что если мы хотим, чтобы вероятность подтверждения нашей транзакции без двойной траты была 99,9%, количество подтверждений резко возрастает, когда хешрейт злоумышленника приближается к 50%.

Почему это вас должно волновать?

На момент написания этой статьи Foundry обладает 36% глобального хешрейта, что означает, что если вы примете платеж после 3 подтверждений, у Foundry все еще будет 49% шанс переписать блокчейн и инициировать двойную трату.

Предположим, злоумышленник обладает 10% хешрейта, правило о 6 блоках подтверждения гарантирует 99,99%, что двойная трата не произойдет, тогда как сейчас требуется 60 подтверждений транзакций для достижения того же уровня уверенности.

Что касается практичности этой атаки: у пулов нет мотивации для атаки, поскольку, если они это сделают, они могут потерять значительное количество бизнеса. Майнеры, как правило, являются долгосрочными держателями, которые не хотят подрывать доверие людей к экосистеме. Тем не менее, у пулов все еще могут возникать одиночные точки отказа, и кто-то может использовать уязвимость, чтобы захватить пул на короткое время. Подобные ситуации уже происходили, например, во время этой атаки BGP, которая перенаправила большой поток пулов для добычи монет для злоумышленника.

Резюме

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

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

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