ProgPoW – сокращение от «Programmatic Proof-of-Work» («программируемое подтверждение реализации работы»), также время от времени употребляется шуточный вариант PorgyPoW (от наименования птиц поргов из 5-ого эпизода кинофильма «Звездные войны: последние джедаи») – это освеженная версия метода согласия блокчейна 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-майнеры малопродуктивными». пятьдесят семь процентов участвующих высказались в пользу хардфорка, который сохраняет 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 года.