ProgPoW – сокращение от «Programmatic Proof-of-Work» («программируемое доказательство выполнения работы»), также иногда используется шуточный вариант PorgyPoW (от названия птиц поргов из пятого эпизода фильма «Звездные войны: последние джедаи») – это обновленная версия алгоритма консенсуса блокчейна Ethash.
Каково назначение ProgPoW?
Алгоритм ProgPoW призван повысить эффективность майнинга с помощью CPU и GPU и увеличить тем самым его преимущества в конкурентной борьбе с майнингом на ASIC-устройствах.
Распространение ASIC-устройств потенциально грозит:
- падением доходов владельцев CPU и GPU и снижением их мотивации поддерживать работу сети;
- манипулированием протоколом блокчейна со стороны крупных майнеров;
- централизацией майнинга.
Соответственно, с целью избежать этих угроз, с возникновением и распространением ASIC-устройств разработчики стали создавать новые итерации первоначального алгоритма PoW («доказательства выполнения работы»), предназначенные быть «ASIC-устойчивыми».
Создание алгоритма, защищенного от оборудования с выбранными оптимальными характеристиками, всегда было сложной задачей. Алгоритм Ethash, используемый в майнинге токенов эфириума, также разрабатывался как ASIC-устойчивый, однако оказался неэффективным.
Кто, когда и как разработал ProgPoW?
ProgPoW создали в 2018 году члены группы разработчиков ifdefelse: «Miss If» (Кристи Ли-Минэхэн, a.k.a OhGodAGirl), «Mr. Else» (a.k.a RadixPi) и «Mr. Def».
Толчком к разработке ProgPoW послужили обсуждения ASIC-устойчивости в Интернете в марте 2018 года. Разработчик эфириума Pipermerriam опубликовал EIP (Ethereum Improvement Proposal, «предложение по улучшению эфириума») 958, призванное модифицировать алгоритм Ethash в сторону ASIC-устойчивости.
Процесс разработки ускорило начало продаж компанией Bitmain Antminer E3, ASIC-майнера, работающего с алгоритмом Ethash. Хотя впоследствии стало ясно, что Antminer E3 – достаточно «сырое» устройство, в среде пользователей начали нарастать критические настроения по отношению к ASIC-устойчивости.
В апреле 2018 года ведущий разработчик Ethereum Влад Замфир провел опрос «Поддержите ли вы хардфорк, который сделает ASIC-майнеры неэффективными». 57% участников высказались в пользу хардфорка, сохраняющего ASIC-устойчивость.
Примерно в то же время в рамках EIP 969 было предложено изменить Ethash.
Эти два EIP, постоянные дискуссии в связи с ASIC-устойчивостью, а также тот факт, что 2018 году приблизительно тысяча человек проголосовала на GitHub за исследование ASIC-устойчивости, побудили членов IfDefElse начать разработку по-настоящему устойчивого к ASIC алгоритма.
Технические особенности ProgPoW
ProgPoW представляет собой оптимизированный Ethash. В рамках работы этого алгоритма каждая итерация в поиске решения задачи (внутренний цикл обращения к памяти) – это случайно сгенерированной программа на основе номера блока. Такая рабочая модель требует полного использования ресурсов GPU и ее потенциала (за исключением операций с плавающими точками и графических конвейеров, от которых пришлось отказаться, чтобы алгоритм подходил для аппаратуры от разных производителей).
ProgPoW делает непостоянным условие задачи для майнинга – ASIC-майнер способен выполнять лишь одну конкретную задачу, на что указывает само его название, «специализированная интегральная схема», и потому недостаточно гибок для работы с ProgPoW. В отличие от ASIC, GPU способна быстро адаптироваться к постоянному изменению условия задачи для майнинга. Таким образом, применение ProgPoW позволяет GPU достигать показателей производительности, сравнимых с таковыми у ASIC.
Критика в адрес ProgPoW и текущее состояние
Тема ProgPoW обсуждается в Ethereum-сообществе уже довольно долго.
В 2018 году оппозиция ProgPoW носила умеренный характер, поскольку ASIC-устойчивость оставалась важной целью для сообщества Ethereum.
В сентябре 2018 года компания Linzhi Mining анонсировала выпуск эффективного Ethash ASIC-устройства. Компания заняла крайне враждебную позицию в отношении ProgPoW, и даже утверждала, что способна разработать ASIC для ProgPoW.
Поползли слухи о том, что ProgPoW создали два главных производителя GPU – AMD and Nvidia.
В начале 2019 года началось голосование пользователей эфириума по вопросу ProgPoW. К апрелю 2019 года 93% респондентов, контролирующих 2,93 млн ETH, поддержали ProgPoW. Команда разработчиков эфириума несколько раз соглашалась с их мнением, а затем меняла позицию. В конце концов, было принято решение имплементировать ProgPoW, с тем условием, что новый алгоритм пройдет аудиты. Аудиты были успешно проведены, и в январе предложение ProgPoW (EIP-1057) было выдвинуто.
21 февраля 2020 года разработчики Ethereum договорились, что активация кода ProgPoW состоится ориентировочно в июле.
24 февраля Виталик Бутерин выразил недоумение в связи с тем, что ProgPoW, одно время задвинутый на полку до лучших времен, снова появился на повестке дня и даже рассматривается для включения в следующий хардфорк Ethereum.
27 февраля 2020 года целый ряд известных представителей сообщества Ethereum подписал петицию с призывом отказаться от активации ProgPoW. Они считают данное предложение поспешным, а в потенциале даже способным привести к расколу сети.По их словам, необходимой поддержки для принятия ProgPoW в настоящий момент нет.
Однако Ethereum-разработчик Джеймс Хэнкок убежден, что раскол маловероятен. Более того, он считает, что ProgPoW – одно из «наиболее готовых» к активации предложений. С ним солидарен Мартин Свенде из Ethereum Foundation, также настаивающий на целесообразности активации этого предложения.
По мнению Кристи Ли-Минэхэн и Виталика Бутерина, причиной серьезных противоречий, возникших в сообществе в связи с новым алгоритмом, служит «недостаток коммуникации».
Выявленная 4 марта 2020 года уязвимость в ProgPoW запустила новый виток дискуссии.
В настоящее время пользователи эфириума, похоже, устали от дискуссий, ведущихся несколько лет. Виталик Бутерин заявил, что его «устроит любое решение».
Очередная встреча членов команды разработчиков эфириума, в ходе которой будет обсуждаться ProgPoW, назначена на пятницу, 13 марта 2020 года.
Подписывайтесь на новости ForkLog в Telegram: ForkLog Feed — вся лента новостей, ForkLog — самые важные новости и опросы. Оригинал статьи размещён здесь