Ошибка в алгоритме биткойнов


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

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

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

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

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

Другими словами, майнер зарабатывает больше, конкурируя, а не сотрудничая с другими майнерами.

В новой статье Иттай Эяль и Эмин Ган Сирер из Корнелла заметили, что существует стратегия, согласно которой группа майнеров может получить больше биткойнов, если они будут работать вместе.

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

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

Конечно, в какой-то момент честные майнеры решают блокировку, но нечестные майнеры просто публикуют свое более длинное расширение в цепочке блоков, что будет принято с разумной вероятностью. Честные майнеры ничего не получают, а нечестные майнеры получают все недавно отчеканенные биткойны из своей ранее секретной цепочки. Этот алгоритм можно повторять, и любому майнеру, которому предоставляется возможность присоединиться к такому пулу, нечего терять и все можно получить. Нечестность приносит вам больше биткойнов без штрафа.

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

В документе объясняется, что для безопасности системы Биткойн недостаточно того, чтобы только большинство майнеров были честными.

Этот недостаток также присутствует во всех валютах, полученных на основе алгоритма Биткойн, включая Litecoin и Namecoin.

Единственный вариант — изменить алгоритм Биткойна, и это то, что предлагают исследователи. Вероятность того, что новая цепочка нечестного майнера будет принята, зависит от того, как обрабатывается разветвленная цепочка, то есть цепочка с двумя предложенными решениями. В настоящий момент происходит то, что самая короткая ветвь игнорируется (соответствует гамма = 1 на диаграмме выше). Обычно ветвление происходит не очень часто, но если работает нечестный пул, оно станет гораздо более распространенным.

Предлагаемое изменение состоит в том, чтобы позволить майнерам выбирать ветвь для работы с вероятностью 0,5, что снижает вероятность создания нечестной ветки. Однако это просто увеличивает размер нечестного пула, необходимого для получения прибыли, до 25% от общего числа майнеров. Это означает, что даже после исправления 75% майнеров должны быть честными, чтобы Биткойн был достаточно безопасным. Как указывается в документе, в настоящее время существует пул, который управляет 25% ресурсов майнинга, а в прошлом пулы составляли более 33%.

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


Добавить комментарий