Глоссарий / Майнинг и консенсус
Эгоистичный майнинг
- Что такое эгоистичный майнинг?
- Эгоистичный майнинг представляет собой стратегию, при которой майнер скрывает решенный блок и публикует его только для того, чтобы обесценить блок конкурента, получая больше, чем должна приносить его доля хешрейта.
Утаивание решенного блока обычно вредит самому майнеру: конкурент может опубликовать свой блок первым, и ваша работа обесценится. Статья 2013 года Итая Эяля и Эмина Гюна Сирера показала, что при доле выше примерно одной трети хешрейта сети арифметика меняется в обратную сторону, а при преимуществе в распространении порог опускается к 25 процентам. Ничего похожего в основной цепи биткоина не зафиксировано.
Как это работает
Эгоистичный майнинг превращает тайное опережение в потраченную впустую электроэнергию для всех остальных.
Эгоистичный майнер находит блок и ничего не сообщает. Дальше возможны разные варианты. Если остальная сеть публикует блок, пока секретный еще скрыт, эгоистичный майнер немедленно публикует свой и вынуждает гонку между двумя вершинами одинаковой высоты, которую может выиграть, если достаточно большая доля честного хешрейта получит его блок первой. Если же он находит второй блок втайне, у него образуется опережение в два блока, и он может позволить честным майнерам продолжать работу над ветвью, которая уже обречена. Когда они наконец публикуют свой блок, скрытая пара публикуется, их блок отбрасывается, и их работа не приносит ничего.
Выигрыш здесь относительный, а не абсолютный. Каждый отброшенный честный блок уменьшает общее число блоков, которые принимает сеть, поэтому в краткосрочной перспективе эгоистичный майнер получает меньше биткоинов, чем получил бы, играя честно. Меняется доля: он захватывает более крупный кусок меньшего пирога. Затем пирог восстанавливается регулировкой сложности, которая пересчитывается каждые 2016 блоков и снижает целевую величину, потому что блоки приходили медленно. Стратегия окупается только после этого пересчета сложности, а он наступает не позднее чем через две недели. Поэтому любой, кто ее пытается применить, должен финансировать две недели сниженной выручки, при этом его поведение статистически заметно со стороны.
Порог зависит от топологии сети, и именно эту часть статьи большинство кратких изложений опускает. Существенная переменная: какая доля честных майнеров во время гонки строит на эгоистичном блоке. Если эта доля равна нулю, эгоистичному майнингу нужно больше одной трети общего хешрейта, чтобы окупиться. Если она равна половине, достаточно четверти. Если майнер мог бы надежно первым доходить до каждого участника сети, доходная доля упала бы гораздо сильнее, и поэтому скорость распространения блоков является свойством безопасности, а не деталью производительности.
Где это встречается
Эгоистичный майнинг встречается в научной литературе и в проектировании программного обеспечения для ретрансляции, но не в наблюдаемой истории биткоина.
Три практических обстоятельства удерживают его там. Распространение почти мгновенное: компактная ретрансляция блоков, добавленная в Bitcoin Core 0.13 в 2016 году, отправляет краткий набросок блока, который участники восстанавливают из своих пулов памяти, а выделенные сети ретрансляции сокращают остальное, поэтому окно, в котором утаенный блок побеждает в гонке, очень мало. Пулы также публичны. Почти каждый блок несет метку пула в своем скрипте coinbase, и пул, создающий странную картину публикаций в последнюю секунду, был бы быстро опознан по хешрейту, которым он не владеет, поскольку его клиенты могут направить свои машины в другое место за считанные минуты.
Этот термин также путают с двумя соседними. Утаивание блоков представляет собой саботаж, направленный против пула: участник отправляет частичные доли, но отбрасывает ту, которая фактически решает блок, причиняя ущерб пулу, а не сети. Атака 51 % переписывает подтвержденную историю. Эгоистичный майнинг не делает ни того, ни другого: он не нарушает ни одного правила консенсуса, не отменяет ни одного платежа и отнимает доход у других майнеров, а не биткоины у пользователей. Для того, кто покупает биткоин или хранит его, единственным симптомом была бы более высокая доля устаревших блоков, а подтверждения по-прежнему означали бы ровно то, что означают сегодня.