Эгоистичный майнинг: не тяни одеяло на себя
Блокчейны PoW являются открытыми системами, и любой желающий может присоединиться к пулу, при условии, что он будет следовать протоколу. Но действительно ли майнеры заинтересованы в том, чтобы играть по правилам?
Любой майнинг на блокчейне Proof-of-Work энергозатратен и приводит к высоким издержкам. Майнерам-одиночкам приходится объединять вычислительные мощности в пулы.
Пользователи платят комиссию за подтверждение своих транзакций – это прямой материальный стимул для майнеров. Вознаграждение за майнинг рассчитывается для каждого блока и распределяется между нодами блокчейна.
Валидатор, который вычисляет блок, добавляет в него транзакции и объединяет с остальной цепочкой. Затем он получает оплату и делит полученную комиссию между узлами в зависимости от их доли вклада.
К сожалению, не все майнеры всегда играют честно. Некоторые предпочитают тянуть одеяло (вознаграждение) на себя. В этой ситуации мы говорим, что столкнулись с эгоистичным майнингом.
Схема действия эгоистического майнинга
PoW-имеет одну важную уязвимость, о которой не часто упоминают разработчики, но успешно могут использовать нечистоплотные майнеры: существует вероятность одновременного подтверждения нескольких блоков. Шанс, что их количество будет больше двух, ничтожно мал, а ситуация, когда подтверждения от узлов ждут 2 блока сразу, встречается не так уж редко.
Что происходит в этом случае?
Если оба блока будут рассчитаны и одновременно объединены в общую систему с предыдущими, то блокчейн должен разделиться на две разные цепи. Это называется “ветвление” или “sprouting”. Ветвление сети усложняет ее архитектуру и замедляет транзакции.
Поэтому существует правило: когда валидатор подтверждает блок, он должен передать эту информацию другим нодам, чтобы блоки не конфликтовали между собой.
Однако эгоистичные майнеры закрывают эту информацию для остальных участников. Поступая таким образом, они вводят в заблуждение “честные” узлы, которые продолжают добавлять новые блоки и вынуждают их ненамеренно разветвлять блокчейн.
Представим, что блок №1001 только что был добыт эгоистичным майнером, и его узел не передал эту информацию в сеть. Не зная про обновление, остальные майнеры продолжают добавлять новые блоки, начиная с блока 1000. Получается, что уже два блока связаны с блоком 1000: один блок от майнера-эгоиста, а второй – от честного участника. И оба имеют одинаковый порядковый номер - 1001. Теперь блокчейн разделен на две цепочки.
Эгоистичный майнер продолжает рассчитывать и добавлять новые блоки в свою частную цепь, которая продолжает удлиняться. Как только он получает достаточное преимущество по количеству добавленной информации, то передает сведения о блоке №1001 остальным узлам. Блокчейн немедленно распознает, что блок эгоистичного майнера был найден первым, и определяет его цепь как действительную, тем самым делая недействительными блоки, добавленные честными нодами.
В итоге добросовестные участники пула не получают вознаграждения, а их вычислительная мощность тратится впустую. Вся комиссия за подтверждение достается эгоистичным майнерам, поскольку их цепочка становится основной.
Повышенный размер вознаграждения стимулирует других валидаторов в сети присоединиться к эгоистичному пулу. Он продолжает расти и увеличивать свою мощность.
Опасность эгоистичного майнинга
Вычислительная мощность каждого узла называется «скоростью хеширования». В сочетании с другими параметрами высокий показатель хеша повышает вероятность криптографического вычисления блока. Если эгоистичный пул продолжает расти за счет присоединившихся, он получает возможность контролировать блокчейн.
Блокчейн PoW требует, чтобы большинство узлов были добросовестными. Но если 51% общего хэшрейта приходится на эгоистичный майнинговый пул, он может просто игнорировать транзакции с незначительной комиссией, тем самым отказывая в подтверждении многим законным операциям. Пул майнинга, захвативший более 50% хеша, может определять, какие операции проходят, а какие нет. Это приводит к централизации и нарушает основной принцип блокчейна – отсутствие единой управляющей вертикали.
Отметим, что такой исход событий маловероятен, поскольку обнаружение мошеннических действий в сети приведет к резкому падению цены криптовалюты. Но вариант краткосрочного использования эгоистичного майнинга для получения повышенного вознаграждения встречается довольно часто.