Что такое ProgPoW?
1
Что такое ProgPoW?
2
Каково назначение ProgPoW?
Алгоритм ProgPoW призван повысить эффективность майнинга с помощью CPU/GPU и увеличить его преимущества в конкурентной борьбе с майнингом на ASIC-устройствах.
Распространение ASIC-устройств потенциально грозит:
- падением доходов владельцев CPU/GPU и снижением их мотивации поддерживать работу сети;
- манипулированием протоколом со стороны крупных майнеров;
- централизацией майнинга.
С возникновением и распространением ASIC-устройств разработчики стали создавать новые итерации первоначального алгоритма PoW («доказательства выполнения работы»), предназначенные быть «ASIC-устойчивыми».
Создание алгоритма, защищенного от оборудования с выбранными оптимальными характеристиками, всегда было сложной задачей. Алгоритм Ethash, используемый в майнинге Ethereum, также разрабатывался как ASIC-устойчивый, однако оказался неэффективным.
3
Кто, когда и как разработал ProgPoW?
ProgPoW создали в 2018 году члены группы разработчиков ifdefelse: Miss If (Кристи Ли-Минэхэн, a.k.a OhGodAGirl), Mr. Else (a.k.a RadixPi) и Mr. Def.
Толчком к разработке ProgPoW послужили обсуждения ASIC-устойчивости в Интернете в марте 2018 года. Разработчик Ethereum под ником Pipermerriam опубликовал EIP958 (Ethereum Improvement Proposal, «предложение по улучшению эфириума»), призванное сделать Ethash ASIC-устойчивым.
Процесс разработки ускорило начало продаж Antminer E3, ASIC-майнера, работающего с алгоритмом Ethash. Хотя впоследствии стало ясно, что Antminer E3 — достаточно «сырое» устройство, в среде пользователей начали нарастать критические настроения по отношению к ASIC-устойчивости.
В апреле 2018 года разработчик Ethereum Влад Замфир провел опрос «Поддержите ли вы хардфорк, который сделает ASIC-майнеры неэффективными». 57% респондентов высказались в пользу хардфорка.
Примерно в то же время в рамках EIP 969 было предложено изменить Ethash.
Эти два EIP, постоянные дискуссии в связи с ASIC-устойчивостью, а также тот факт, что 2018 году приблизительно тысяча человек проголосовала на GitHub за исследование ASIC-устойчивости, побудили членов IfDefElse начать разработку по-настоящему устойчивого к специализированному оборудованию алгоритма.
4
Технические особенности ProgPoW
ProgPoW представляет собой оптимизированный Ethash. В рамках работы этого алгоритма каждая итерация в поиске решения задачи (внутренний цикл обращения к памяти) — случайно сгенерированная программа на основе номера блока. Такая рабочая модель требует полного использования ресурсов GPU и ее потенциала (за исключением операций с плавающими точками и графических конвейеров, от которых пришлось отказаться, чтобы алгоритм подходил для оборудования от разных производителей).
ProgPoW делает непостоянным условие задачи для майнинга — ASIC-майнер способен выполнять лишь одну конкретную задачу, на что указывает само его название, «специализированная интегральная схема», и потому недостаточно гибок для работы с ProgPoW. В отличие от ASIC, GPU способна быстро адаптироваться к постоянному изменению условий задачи для майнинга. Применение ProgPoW позволяет GPU достигать показателей производительности, сравнимых с таковыми у ASIC.
5
Критика в адрес ProgPoW и текущее состояние
В 2018 году оппозиция ProgPoW носила умеренный характер, поскольку ASIC-устойчивость оставалась важной целью для сообщества Ethereum.
В сентябре 2018 года компания Linzhi Mining анонсировала выпуск эффективного ASIC-устройства для Ethash. Компания заняла крайне враждебную позицию в отношении ProgPoW и даже утверждала, что способна разработать ASIC для ProgPoW. Появились слухи о том, что ProgPoW создали два главных производителя GPU — AMD и Nvidia.
В начале 2019 года началось голосование пользователей Ethereum по вопросу ProgPoW. К апрелю 2019 года 93% респондентов, контролирующих 2,93 млн ETH, поддержали ProgPoW. Команда разработчиков Ethereum несколько раз соглашалась с их мнением, а затем меняла позицию. В конце концов, было принято решение имплементировать ProgPoW с тем условием, что новый алгоритм пройдет аудиты. Аудиты прошли успешно, и в январе разработчики предварительно пришли к согласию касательно предложения ProgPoW (EIP-1057).
21 февраля 2020 года разработчики договорились, что активация кода ориентировочно состоится в июле.
24 февраля Виталик Бутерин выразил недоумение в связи с тем, что ProgPoW, одно время задвинутый на полку до лучших времен, снова появился на повестке дня и даже рассматривается для включения в следующий хардфорк Ethereum.
BTW the way progpow was ninja-reapproved definitely did *not* help make people trust the governance or feel safe, and arguably drove the Twitterati to believe that they have to send loud, simple and clear messages (ie. more such Schelling fences) to get their voice heard.
— vitalik.eth (@VitalikButerin) February 24, 2020
27 февраля 2020 года целый ряд известных представителей сообщества Ethereum подписал петицию с призывом отказаться от активации ProgPoW. Они считают данное предложение поспешным, а в потенциале даже способным привести к расколу сети.По их словам, необходимой поддержки для принятия ProgPoW в настоящий момент нет.
Однако Ethereum-разработчик Джеймс Хэнкок убежден, что раскол маловероятен. Более того, он считает, что ProgPoW – одно из «наиболее готовых» к активации предложений. С ним солидарен Мартин Свенде из Ethereum Foundation, также настаивающий на целесообразности активации.
По мнению Кристи Ли-Минэхэн и Виталика Бутерина, причиной серьезных противоречий, возникших в сообществе в связи с новым алгоритмом, служит «недостаток коммуникации».
Выявленная 4 марта 2020 года уязвимость в ProgPoW запустила новый виток дискуссии.
К настоящему времени пользователи Ethereum, похоже, устали от дискуссий, ведущихся несколько лет. Виталик Бутерин заявил, что его «устроит любое решение».
Подписывайтесь на новости Forklog в Facebook!
Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!