В современном мире появилось новое, но уже очень распространенное слово «майнинг». Оно образовано от английского слова mining, что переводится как «добыча руды в шахте». Майнинг — это процесс математических вычислений для решения сложной математической задачи, результат которой можно легко проверить. Наличие решения такой задачи подтверждает факт того, что большое количество участников задействовали свои дорогостоящие вычислительные мощности и верят в высокую цену награды за свои действия. Наградой за нахождение решения такой задачи служит выплата в криптовалюте.
Вычислительные мощности — дороже золота, так как решить задачу можно только на самых быстрых и современных процессорах. Процессор — это микросхема, состоящая из нескольких миллиардов логических элементов, каждый из которых выполняет простую операцию с 1 битом информации. Изготовление таких микросхем требует наличия производства стоимостью в десятки миллиардов долларов. Возможно, что в будущем такие микросхемы будет вытеснены новыми квантовыми компьютерами, но это только в самой отдаленной перспективе. Альтернатив высокоскоростным микросхемам для решения математических задач на сегодня не существует.
Микросхемы бывают разные, а их внутренняя организация определяется разработчиком. Инженеры разрабатывают архитектуру и топологию микросхемы, исходя из требований к функционалу. Например, если вам нужен калькулятор — это одна микросхема, а если видеокарта — совсем другая.
ASIC (Application-Specific Integrated Circuit) — интегральная схема специального назначения. Любая микросхема, разработанная под решение одной конкретной задачи, называется ASIC. Важен тот факт, что такие микросхемы иные задачи выполнять попросту не могут.
[IMG]https://imgp.golos.io/0x0/https://cdn-images-1.medium.com/max/800/1*aQ0mGzT-IwrwV2tHTvRHHQ.jpeg[/IMG]
GPU (Graphics Processing Unit) — графический процессор. Это тоже микросхема, но она является гибким процессором, который работает по той программе, которая будет в него загружаться. Графический процессор больше адаптирован для решения задач построения трёхмерного изображения на плоскости. Таким образом, функция этой микросхемы определяется не в момент её производства, а позже, пользователем, путём загрузки соответствующей программы. Важным отличием GPU от других процессоров является наличие внутри него большого количества вычислительных блоков — фактически, маленьких процессоров, работающих одновременно. Например, в GPU видеокарты RX580 имеется 2304 потоковых процессора.
[IMG]https://imgp.golos.io/0x0/https://cdn-images-1.medium.com/max/800/1*NJMLXSsQnk2uYXSN-ZUVHg.jpeg[/IMG]
Оба типа микросхем, как правило, выпускаются на схожих производственных линиях. Часто — это даже одна и та же фабрика TSMC. Существенное отличие может заключаться в размере минимального элемента, измеряемого в нанометрах. Чем мельче структура — тем больше логических элементов помещается в одной микросхеме, тем они быстрее работают и меньше потребляют электроэнергии. Естественно, чем лучше технология, тем сложнее и дороже получается само производство. К тому же технический прогресс не идет спонтанно. Так, в 2003 году применялась технология 90 нм, а в 2015 — всего лишь 14 нм.
Много лет назад, на заре майнинга, для добычи криптовалюты Bitcoin использовались обычные процессоры (CPU). Пользователь, веривший в светлое будущее криптовалюты, устанавливал себе специальное ПО, вводил номер кошелька, запускал расчёт и ждал заветного вознаграждения. Позже, с появлением первых скоростных видеокарт с GPU, майнинг на CPU перестал быть таким актуальным, так как сложность сети сразу возросла. Но предприимчивые программисты пошли дальше и переложили алгоритм расчета в ПЛИС (программируемые логические интегральные схемы). Это позволило реализовать математическую функцию расчёта Bitcoin на логических элементах микросхемы и добиться существенного прироста производительности. Логичным продолжением развития отрасли стало появление первых устройств на базе специализированных микросхем ASIC. Многократный рост производительности и сложности сети заставил всех остальных владельцев устаревших устройств прекратить добычу криптовалют в связи с тем, что оплата электроэнергии превысила выгоду от добычи. Новые криптовалюты, такие, как Ethereum, создавались защищёнными от майнинга на ASIC, поэтому майнинг на GPU стал снова актуальным.
Сравним основные различия алгоритмов криптографической защиты элементов блокчейна. Их число постоянно растет, так как разработчики стараются достичь большей безопасности криптовалютной сети. Под безопасностью подразумевается невозможность существенно оптимизировать вычисления и сократить время поиска решения. Криптовалютной сети безразлично, каким образом будет найдено решение, будь то ASIC, GPU, CPU или нечто другое. Производители тех же ASIC’ов стараются разработать различные способы оптимизации работы, чтобы находить такие решения раньше других. И тут речь идёт не про какие-то десятки процентов прироста, а про тысячи и десятки тысяч процентов. Такое возможно, если оптимизировать поиск решения не на уровне программы, а на уровне самих логических элементов микросхемы и их взаимодействия. Предположим, что в сети 10 одинаковых устройств ищут решение. В среднем, одному из них требуется 1 час. Награду получит то устройство, которое первое найдет решение. По теории вероятности, в среднем раз в 10 часов каждое устройство будет получать одно вознаграждение. Сеть сбалансирована.
Давайте представим, что один из 10 участников сети изобрёл способ находить решение быстрее: например, всего за 6 минут. В этом случае этот участник за 10 часов, скорее всего, найдёт все решения первым и заберёт себе все награды. Остальные 9 участников не получат ничего. Это очень выгодно для владельца этого суперустройства, но совсем не выгодно для всех остальных майнеров. К тому же, если такое ускорение возможно, возникает опасность раскола криптовалюты (так называемого “форка”) в результате владения одним участником более чем 51% вычислительных ресурсов. Владелец такого суперустройства сможет подписывать любые блоки единолично, и, тем самым, осуществлять манипуляции с денежными средствами в своих интересах, например, путём повторной траты (“double spending”). Но пока такие совершенствования потенциально возможны только для определённой группы алгоритмов, в частности, для алгоритма SHA-256, который используется в криптовалюте Bitcoin.
В чём же отличие решения задач с использованием GPU по сравнению с ASIC? GPU — это процессор, который будет работать не по заданному алгоритму, а по программе. К тому же, у процессора есть некие внутренние регистры, шина данных, внешняя высокоскоростная память. Для обеспечения функционирования всех этих элементов нужен и контроллер шины, и сложный контроллер взаимодействия с памятью, и драйверы всех шин данных. Так как внутри него работают несколько тысяч потоковых процессоров, необходимо организовать взаимодействие между ними, обеспечить подключение к общей шине данных, их синхронизацию. Архитектура таких устройств является крайне сложной, а проектирует их всего несколько компаний в мире: AMD, nVidia, Intel. Хочется ещё раз повторить, что такие GPU крайне сложны в разработке и требуют большого опыта от инженеров.
Алгоритм сети Ethereum носит название Ethash. Его сложность многократно превышает сложность алгоритма Bitcoin. Для его работы требуется память, в которую загружается огромный массив данных DAG (directed acyclic graph). При вычислениях необходимо активно взаимодействовать с этой памятью. Таким образом, для оптимизации работы алгоритма Ethash требуется два фактора: быстрые вычисления и быстрое взаимодействие с большим объемом памяти. На ASIC устройствах добиться этого уже намного сложнее и дороже, ведь потребуется работать и с памятью DDR5, и с шиной PCIe 3.0.
Опыт показывает, что ASIC устройства хоть и быстры, но содержат скрытые риски. Из-за того, что технология производства развивается, а инженеры продолжают делать новые и новые модели ASIC, старые ASIC устаревают настолько быстро, что даже не успевают дойти до покупателя, желающего начать майнить. Это обусловлено тем, что разработка ASIC’а занимает намного меньше времени, чем разработка нового процессора. Таким образом, как только на производстве появляется новая технологическая линия, скажем, 5 нм, так ASIC устройства там будут производиться раньше, чем GPU. В этом случае все предыдущие модели ASIC сильно устареют. Риски майнинга криптовалют, где можно использовать ASIC, повышаются.
Ещё одним существенным преимуществом GPU является возможность использования GPU ферм не только для майнинга, но и для других вычислительных задач: расчёта аэродинамических потоков, обучения нейросетей, искусственного интеллекта — все эти вычисления отлично осуществляются на GPU. Рынок блокчейн технологий — один из самых бурно развивающихся. Возможно, именно поэтому в ближайшее время мы увидим некие новые алгоритмы, более устойчивые к оптимизации поиска решений.
Резюмируя, можно сказать, что ASIC предоставляет шанс получить преимущества и быстро заработать до момента возрастания сложности сети. Действовать здесь нужно быстро — первые получат все, последние — ничего. GPU же является более гибким решением, и спонтанные появления новых сверхпроизводительных процессоров здесь маловероятны. Явным достоинством GPU считается небольшое, но предсказуемое вознаграждение и возможность адаптации устройства под новые алгоритмы.
В заключение хотелось бы сказать, что каждый сам выбирает, какой способ майнинга лучше. Очевидно, что популярностью у майнеров пользуются оба рассмотренных подхода. По-нашему же мнению, за счёт гибкости, майнинг на GPU даёт определённые преимущества по сравнению с использованием ASIC. В долгосрочной перспективе мы ожидаем высокую востребованность облачных параллельных вычислений, где решения с помощью GPU будут актуальными ещё длительное время.