Что такое ASIC — майнинг
Вы наверняка много раз слышали о каком-то танистическом ASIC-майнере и догадываетесь, что это как-то связано с высокопроизводительным майнингом. Сегодня мы разберемся перед тем как задумаем купить асик, что это такое, почему это так и как это работает.
Содержание статьи:
Напомним, что майнинг — это глупое перечисление всех возможных значений одного бессмысленного числа (nonce), и что в результате такого перечисления майнер может случайно найти значение, для которого выполняется специально придуманное неравенство. Это неравенство сравнивает результат хэширования блока-кандидата с одним числовым параметром. Этот параметр выбирается сетью таким образом, что сложность этого выбора меняется в зависимости от общей вычислительной мощности майнера. Это делается для того, чтобы "дать всем равные возможности найти нужный nonce". Они. Если вдруг появляется майнер с огромной вычислительной мощностью, параметры корректируются таким образом, что всем становится сложнее найти желаемое значение nance, как для этого майнера, так и для всех остальных майнеров. Однако чем больше вычислительной мощности имеет конкретный минор, тем больше вероятность того, что он найдет подходящий нонс быстрее, чем его конкуренты. Поэтому майнеры заинтересованы в улучшении этих вычислительных возможностей.
Какие тут есть возможности?
Очевидно — просто купите себе компьютер с максимальной производительностью процессора и посчитайте, что вам нужно. Таким образом, это логичный, но неэффективный подход. Обычные процессоры опираются на огромное количество дополнительных устройств, таких как материнские платы со всевозможными контроллерами — PCI, USB, SATA (и многими другими), видеокарты, дисковые подсистемы и т.д. и т.д. Все они не участвуют в расчетах, но потребляют электроэнергию, выделяют тепло и стоят денег. Поэтому покупать много компьютеров неинтересно. Вы платите большие деньги за само оборудование, электричество и участок, на котором все это расположено (в конце концов, вдруг у вас есть шахтерская ферма). Все это выделяет много тепла — вам придется тратить деньги на охлаждение, а это не совсем бесплатно. Неудивительно, что так много горнодобывающих ферм строится в северных районах, где хорошо работает естественное охлаждение.
Теперь подумайте вот о чем. На самом деле, майнинг не требует хранения огромных объемов данных. Другими словами, к дисковой подсистеме не предъявляется высоких требований. Да, конечно, размер локального блокчейна биткоина составляет около 200 ГБ, но большинство этих данных при майнинге лежат мертвым грузом. из блоков с этими замененными номерами. Поэтому файловая подсистема определенно не является критическим местом. Аналогично, не самое важное место — все интерфейсы для связи с внешним миром, т.е. PCI, USB и т.д. Конечно, они необходимы, но опять же, нагрузка не то что средняя, даже минимальная.
Сформированные блокчейн-карты (составленные из множества служебных полей, транзакций "откуда угодно 12,5 биткоинов наживут себе врагов", а также некоторых пользовательских транзакций). Для этого он получал данные по сети и находил их записи в локальной копии блокчейна. Пользовательские транзакции ссылались и создавали некоторые относительно простые вычисления, в результате чего получился блок с картриджами. Теперь вам не нужна сеть (единственное, что вам нужно сделать, это убедиться, что вы не получите сообщение о том, что кто-то уже создал блок, и тогда вам нужно прекратить работу над этим блоком). Кроме того, дисковая подсистема не важна (все данные уже собраны, а блоки-кандидаты находятся в оперативной памяти). Теперь нам нужно решить самую важную (хотя и абсолютно глупую) задачу: создать блок NDB. В этом кандидате блока мы вычисляем хэш всех этих блоков, подставляя значение NonCe. Неравенство не выполнено? Увеличьте количество не-единиц и вычислите снова. Таким образом, пока вы не наткнетесь на значение Nonce, при котором выполняется неравенство, или пока вы не знаете, что кто-то уже собрал блок, вам придется готовить новый блок-картридж. Это уже неактуально.
Таким образом, мы видим, что для выполнения требуется только блок питания процессора и небольшая оперативная память. Все эти интерфейсы связи с внешним миром, дисковая подсистема и видеоподсистема не выполняют этой главной задачи. Это означает напрасную трату электроэнергии и денег.
Логично, что Minor хотел увеличить количество процессоров, а не компьютеров. Поэтому разумно искать многопроцессорную плату. Однако такие платы — редкие животные, дорогие и не рассчитанные на большое количество процессоров. Более того, до сих пор бывают моменты, когда.
Сами процессоры также имеют большое количество "ненужностей" для наших задач. Процессор является сложным устройством и не зря называется "центральным". Он может делать абсолютно все. Однако общие инструменты для выполнения отдельных задач не так эффективны, как узкоспециализированные. Чтобы вычислить хэш, необходимо выполнить довольно простые операции смешивания, сложения и умножения битов. Он также требует выполнения двоичных операций, которые не очень понятны обычному человеку, но по сути являются очень простыми двоичными операциями, сдвиг, конкатенат и логическое ИЛИ. И хороший центральный процессор может делать много других вещей, которые нам не нужны, например, сложение "по модулю два". Именно этим отличаются блочные вычисления, обрабатывающие большие объемы данных и предсказывающие следующую операцию. Это очень часто встречается при обработке мультимедийных данных, и именно эти функции делают современные процессоры такими дорогими. И они нам не нужны! Если мы занимаемся только майнингом, мы переплачиваем за все эти мультимедийные продукты, покупая процессоры.
Видеокарты
В общем, в какой-то момент кто-то предположил, что эту задачу может выполнять не только центральный процессор, но и видеопроцессор на видеокарте. Видеопроцессоры не так универсальны, как центральные процессоры, но они могут успешно решать очень типичные задачи (последовательная обработка огромных массивов данных). Графические задачи именно такие: существует огромное количество точек, координат, текстур и т.д., и все это нужно последовательно и быстро обработать, используя достаточно логически простые алгоритмы. Одним словом, это огромная вычислительная задача, но видеопроцессоры уже специализируются на таких блочных задачах. Задача вычисления большого количества хэшей больше похожа на последовательную обработку большого количества графических данных, чем на поток команд операционной системы или прикладной программы, знакомый центральным процессорам. И самое главное, видеокарты имеют еще несколько важных преимуществ. Во-первых, в обычную материнскую плату можно вставить несколько видеокарт. Сетевое взаимодействие, внешние интерфейсы и т.д. P. Центральный процессор также выполняет все служебные задачи, такие как получение данных из сети, построение блоков-кандидатов, распределение работы между видеокартами и контроль результатов выполнения. Да, кстати, видеокарта ничего не отображает на мониторе. Сравнительно говоря, для вывода изображений на монитор не используются блоки, они висят там как гири.
Очевидно, что эффективность энергопотребления для вычисления одного хэша в несколько раз превышает аналогичную метрику для компьютеров (и даже видеокарт). Цена. Здесь все не так просто. Производство чипсов выгодно только в огромных партиях, но здесь эта проблема как бы решена. В общем, по цене получается удачно, особенно если считать по стоимости одного хэша (ну, не одного хэша, а одного миллиона хэши или одного миллиарда хэши — Мегхеш и Гигигеш соответственно). Одним словом, это выгодно.
ASIC
Теперь вы платите за установку этих чипов. Эта плата позволит вам узнать, как взаимодействовать с ними, передавать им задания и принимать результаты. На плате есть несколько таких микросхем (кстати, на картинках в этой статье изображены именно такие платы). Вы также объединяете несколько плат в одно устройство; вы получаете ASIC-меру; у вас есть маленький компьютер, такой как Raspberry PI, который организует связь между этими платами и внешним миром (такая небольшая сила достаточно здесь). А типичная ферма состоит из десятков (сотен или тысяч) ASIC Mainers. И хотя эти устройства стоят дорого, нынешним курсам биткоина выгодно разрабатывать, покупать и эксплуатировать их. Как только курс падает ниже рентабельности этих ASIC Mainers, они прекращают их производство и использование.
Эффективность вычисления хэшей в таких схемах уже не так сильно, но на несколько порядков выше, чем у обычных процессоров.
В чем же преимущества и недостатки этих чипов?
Для уверенности напомним, что "один порядок величины" — это десять раз. "На три порядка выше" — это "более чем в тысячу раз выше".
Но это как-то нечестно. Мы создаем гигантских монстров, которые могут есть, а на выходе они дают небольшую циферку. Само по себе это ничего не значит для домов людей, пока не попадет на криптовалютный рынок. И самое главное, обычного компьютера недостаточно, чтобы что-то вырезать. Необходимо специальное оборудование (ASIC Mainer). Это уже стоит хороших денег (несколько сотен тысяч рублей). Это добавляет неравенства участникам сети. И хотя в криптосообществе существует неявное сообщество, идея о том, что криптовалюта противоречит директивам мирового капитала и, похоже, предоставляет равные возможности участникам, не всегда четко выражена. Да, это дискуссионный вопрос. Кроме того, — и здесь меня осеняет, — я яркий идеалист. Поэтому я не поддерживаю эту идею.
В любом случае, такие ASIC были тенденцией, и, действительно, идея создания специальных устройств для майнинга не понравилась многим. Поэтому криптосообщество поспешило разработать алгоритмы, которые было бы невыгодно реализовывать с помощью специальных устройств.
Теперь о методе разработки. Они просто включили готовые стандартные криптофункции (надо сказать, что столько хэшей есть только в прикладном крипто, применяемом для прикладного шифрования). Ну, вы берете блок-кандидат блок, вычисляете хэш по этому алгоритму, пропускаете результат через хэш-функцию по другому алгоритму, добавляете вычисления от чего-то еще 43, например, через алгоритм. Это один из способов; есть и другие способы "противодействия" ASIC, но не останавливайтесь на этом.
Зачем он вам нужен?
Вот почему. Выполняемые вычислительные задачи уже очень неадекватно упрощены. И 200 чудовищных монстров со своими поклонниками не могут с этим справиться. Ему нужно добавить контроллер впрыска, подвеску, коробку передач, кузов и т.д. Они. Разработка специальных устройств уже столь же сложна, как и разработка обычного центрального процессора (или близка к этому). Более того, центральные процессоры разрабатываются минута в минуту большой компанией с множеством команд разработчиков с общим IQ отсюда до Альфа Центавра. Конкурировать с ними дорого и долго. И, в общем, разрабатывать нужно только ASIC. Но его цель — выбрать множество алгоритмов некоторых криптовалют и подобрать их таким образом, чтобы они требовали больших объемов памяти для вычисления. А современные подсистемы памяти в персональных компьютерах довольно запутанные, и по сложности не только разработка, но даже использование сторонних устройств обходится очень дорого. Если я решу разработать ASIC, способный работать со стандартными модулями памяти DDR4 (или любым другим богатством, которое не является старым богатством), то дело в том, что для достижения взаимодействия с ними потребуется много усилий, времени и денег. Они разрабатывают свою собственную версию DDR4. Ну, вы понимаете.
Противодействие ASIC-майнингу
Короче говоря, дешевле и выгоднее просто собрать мощный компьютер, чем разработать специальную микросхему, которая вычисляет эти алгоритмы дешевле и даже немного эффективнее.
В общем, существует огромное количество интересных криптовалют, а способ расчета тестовых чисел (который уже не является хэшированием в чистом виде) призван сделать майнинг невыгодным с помощью специальных устройств. Однако благодаря своим огромным ASIC-фермам биткоин по-прежнему лидирует по капитализации. В биткойне вообще много уродливых инженерных решений, но капитализация не зависит от инженерной элегантности. В любом случае, мировое восприятие пара — это не жадность, но это не имеет никакого отношения к технологии.