КриптодетективЪ – Цепная Безопасность - страница 73
Биткойн позиционируется, как децентрализованная сеть, но selfish mining может привести к централизации операций, в которой определенные группы майнеров или пулы могут иметь преимущества.
Что собой представляет эгоистичный майнинг. Стратегия была предложена двумя профессорами Университета Корнелла: Гюном Сирером и Иттаем Эялем еще в далеком 2013 году. Они доказали, что майнеры могут заработать больше Bitcoin, скрывая вновь сгенерированные блоки от основного блокчейна, создавая отдельную цепочку, а затем заменить ей основную цепочку блоков.
Сеть биткоина зависит от майнеров, которые решают сложные вычислительные задачи, за что получают награду (на 2019 год – 12,5 монет за каждый новый блок). Доход от майнинга подчиняется множеству факторов: сложность сети, мощность используемого оборудования, затраты на электроэнергию, качество интернет-соединений.
Протокол биткойна настроен на вознаграждение участников пропорционально их добыче. Это гарантирует, что даже если майнеры участвуют в большом пуле, вознаграждение всё еще зависит от монет, производимых отдельными майнерами в публичном блокчейне. В своем докладе в 2013 году Сирер и Эял показали, что можно увеличить свою долю от общего дохода, скрывая новые блоки и делая их доступными в своей частной сети.
Рассмотрим Selfish mining на практике. На первый взгляд, кажется, что любому майнеру выгодно оперативно распространить найденный блок, чтобы быстрее получить вознаграждение. Но стратегия selfish mining позволяет недобросовестному майнеру иметь больший доход, скрывая найденный блок.
Существуют пулы «A» и «B». «A» первым находит блок и распространяет его внутри собственного пула. Далее пул переходит на майнинг поверх скрытого блока «Nomer20PoolA» (на тот момент времени номер блока в сети Bitcoin = 609753). Получается «A» начинает опережать публичную сеть.
В некоторый момент появляется конкурирующий блок от пула «B» «Nomer20PoolB». Тогда «A» обнародует скрытый блок «Nomer20PoolA», который найден раньше и продолжит добычу поверх него. В зависимости от скорости распространения блоков, сеть майнит частично поверх блока «Nomer20PoolA» пула «А» или «Nomer20PoolB» пула «B». Теперь «A» не имеет превосходства по длине цепочки, но он дольше майнил поверх блока «Nomer20PoolA». Соответственно у него больше шансов найти новый блок.
Сработавшей selfish-mining атакой можно считать только ту, в которой количество найденных блоков превышает основную цепочку минимум на 1 блок. В противном случае (при равной длине цепочек) атакующий может понести убытки.
К чему могут привести атаки Selfish mining. Сегодня процент эгоистического майнинга невелик, поэтому любая частная сеть будет намного короче публичного блокчейна. Но в будущем существует риск, что нечестные майнеры могут стратегически планировать свое отображение новых блоков таким образом, что честные добытчики из публичного блокчейна оставят свою собственную цепочку и присоединятся к частной.
Впоследствии частная сеть будет находить все больше блоков в пределах своего пула, и скрывать от публичного блокчейна. Процесс может разрастись да такого масштаба, что частная сеть станет больше публичной. Тогда честные майнеры будут отказываться от всеми привычного блокчейна и присоединятся к частной сети, так как добыча в ней становится выгодней.
Исследователи проанализировали ресурсы, потраченные впустую для обеих цепочек, и определили, что эгоистичные майнеры обладают конкурентным преимуществом над майнером на публичном блокчейне, потому что их вознаграждение сравнительно больше из-за меньших потерь. Такой сценарий разрушит децентрализованную природу биткойна, и частный пул будет контролировать всю систему.