Что такое майнинг, и почему майнят на видеокартах
Что представляет собой майнинг? Почему для майнинга криптовалют в подавляющем большинстве случаев лучше подходят видеокарты, а не CPU? Чем так хороши асики? В этом посте я постарался понятным языком рассказать об основах технической стороны майнинга.
Для понимания общей картины информация дана в упрощенном виде, некоторые детали опущены.
Что такое майнинг?
Возьмем в качестве примера блокчейн биткоина. Если максимально упростить, то вычислительные мощности майнинговых компьютеров направлены на шифрование операций по переводу биткоинов с одного кошелька на другой.
Как это выглядит?
Предположим, Сатоши Бутерин со своего кошелька переслал 1 биткоин на кошелек Виталика Накамото. Согласно сути блокчейна, нужно зашифровать информацию, содержащую адреса кошельков Сатоши и Виталика, а также количество переведенных биткоинов. Тут в дело вступает майнинговое оборудование — ему нужно найти правильный вариант шифровки.
Согласно алгоритму хеширования SHA-256, на котором построен блокчейн биткоина, сделать это нужно строго определенным способом. Например, алгоритм предписал зашифровать информацию так, чтобы на конце шифрованной строки был ноль. Подобное требование исходит от разработчиков криптовалюты — им нужен шифр с определенным символом, чтобы повысить устойчивость к взлому.
«Железо» начинает работать — решать эту математическую задачу методом подбора. Информация «Satoshi Buterin wallet ---> 1 BTC ---> Vitalik Nakamoto wallet» превращается в зашифрованную строку вроде «dh523456l29e4f6ab42d99c81156d3a17228d6e1eef4139be78dgw5jh63f2348». Но в этом варианте на конце не стоит ноль. Тогда «железо» начинает подбирать новый вариант шифровки, добавляя в информацию символ, который не меняет ее смысл.
Едва только нужная комбинация шифровки найдена, она записывается в базу данных (блокчейн), а конкретнее — в небольшой кусочек этой базы данных, который называется блоком.
Разработчики блокчейна биткоина определили, что максимальный размер блока не может превышать ~1 Мб. И чтобы блок считался сформированным, его нужно заполнить зашифрованными записями транзакций. Как только блок сформирован, блокчейн автоматически генерирует эмиссионную транзакцию биткоинов, чтобы наградить майнера за его работу.
Но не стоит думать, что можно просто взять и спокойно перебрать тысячу комбинаций, найдя нужную. Над одной задачей может «трудиться» не один десяток, или даже не одна сотня мощностей. И кто окажется первым, «того и тапки». Получается, что чем больше у тебя вычислительная мощность, тем выше шанс первым найти нужный вариант шифровки.
Но один человек-майнер может формировать отдельный блок на своем компьютере очень долго. Вряд ли кого-то обрадует перспектива майнить несколько лет без перерыва, формируя один-единственный блок, и получить потом за него 12,5 биткоинов в награду (именно такое количество биткоинов сейчас выдается за формирование нового блока). Поэтому люди объединяют свои мощности в пулы. В этом случае сеть биткоина выделяет награду за сформированные блоки не отдельному майнеру, а пулу. Пул, в свою очередь, распределяет награды отдельным майнерам, в соответствии с потраченным временем и мощностью (за вычетом комиссии).
Почему именно видеокарты, а не CPU?
Архитектуры графического процессора (GPU) и центрального процессора (CPU) сильно отличаются. Современные CPU состоят из 4-8 ядер — это делает их подходящими для решения больших и сложных задач. Вдобавок при такой архитектуре они могут быстро переключаться с выполнения одной задачи на выполнение другой.
А графические процессоры были созданы для того, чтобы решать огромное множество небольших и несложных задач. Поэтому они состоят не из пары больших ядер, а из тысяч маленьких ядрышек. В таком виде им гораздо удобнее обрабатывать миллионы пикселей и полигонов. Но выполнять сложные задачи, вдобавок переключаясь от одной к другой — чересчур сложно для GPU.
Создатели видеокарт изначально стремились к улучшению изображения и его обработки в компьютерных играх. И они точно не ожидали, что подобная архитектура их графических процессоров как нельзя лучше подойдет для майнинга.
Ведь что такое майнинг? Это перебор сотен тысяч различных комбинаций для шифровки, различающихся по сути только одним символом. С такой однотипной несложной работой куда быстрее справляются тысячи ядер GPU, чем 4-8 умных, но малочисленных ядер CPU.
Для сравнения: ядро CPU обрабатывает восемь 32-битных инструкций за такт (AVX). А процессор видеокарты Radeon HD 5970 обрабатывает 3200 32-битных инструкций за такт.
Но есть устройства, на которых майнинг происходит еще быстрее — их называют ASIC.
ASIC
В переводе с английского application-specific integrated circuit означает «интегральная схема специального назначения». Это оборудование, которое сделано с целью решения строго конкретной задачи. Если говорить об ASIC для майнинга, то по сути это «все в одном»: блок питания, охлаждающее устройство и небольшая плата, на которой расположены CPU, ПЗУ, ОЗУ и другие блоки. И если видеокарты изначально не были созданы для майнинга, то подобное железо «заточено» именно под эту задачу.
Возьмем в качестве примера популярную у добытчиков биткоина видеокарту AMD Radeon RX 580. Стоит она порядка 26 000 р., и мощность ее майнинга составляет 1,5 GH/s. Поставим против нее ASIC AntMiner R4: при стоимости в ~100 000 р. его мощность составляет 8,7 TH/s. Разница очевидна.
AntMiner R4
Причем производители майнинговых ASIC создают их для добычи определенной криптовалюты. Они подбирают компоненты и настраивают софт в асике таким образом, чтобы он лучше всего справлялся с решением задач по конкретному алгоритму, на котором построена конкретная криптовалюта (например, SHA-256 для майнинга биткоина). То есть, в теории асик для биткоина можно использовать для майнинга другой криптовалюты, но его производительность в таком случае не будет впечатлять.
Но если видеокарту потом можно воткнуть в компьютер и спокойно играть с ее помощью в различные игры, то с ASIC такого сделать нельзя — на них устанавливают сильно упрощенные операционные системы, чьи способности «заточены» специально для добычи криптовалют.
Итог
Мы представили майнинг на примере биткоина в упрощенном виде и постарались объяснить его наиболее понятным способом. Следует отметить, что для разных криповалют больше подойдут видеокарты от разных изготовителей: одной больше подойдет Nvidia, а для другой лучшим решением будет AMD. Так получается из-за того, что криптовалюты построены на разных алгоритмах: с каждым конкретным лучше всего справляется та видеокарта, чьи конструктивные особенности лучше всего подходят.
---
https://geektimes.ru/company/smileexpo/blog/297265/
почём опиум для народа?
Человечеству навязывают очередную паразитическую финансовую систему. Хлеб будут выращивать одни, а майнинги иметь другие.
Вот пусть тот,кто хлеб выращивает – хлеб к столу и получает, а кто майнит – пусть кодами и питается! Xepнёй занимаются, потом с балконов кидаться будут,когда прогорят.
Ну и бредятина. Сам подбор кода это чисто надутая ценность. Колоссальные ресурсы тратятся на херню. Лучше бы потратили эти ресурсы для улучшения жизни людей.
На самом деле, допустим все жители земли стали заниматься майнингом. А кто будет дома строить, хлеб выращивать?
Деньги – это эквивалент полезного труда.
Или опять создадут для человечества новых крипто-ростовщиков, кто будет паразитировать на теле человечества?
Ой майня-муйня! Не майни меня.
Не майни меня и моего коня…