ASIC Miner — устройство со специальными чипами для майнинга биткоина. Оно снова и снова вычисляет числовой отпечаток заголовка предлагаемого блока — краткой записи его основных данных, ища результат, соответствующий правилам майнинга. Более высокая производительность означает больше попыток в секунду, а не гарантированную награду. Также нужны питание, охлаждение, управляющее ПО и источник заданий.
Анна замечает небольшой майнер рядом с компьютером и спрашивает, не справился бы с этим её ноутбук. Обычный компьютер может выполнять нужные расчёты. Но ASIC спроектирован именно для них, поэтому при тех же затратах энергии обычно делает гораздо больше попыток. Сокращение означает Application-Specific Integrated Circuit — интегральную схему для определённой задачи. В разговорной речи ASIC называют и весь майнер с такими чипами. Биткоин-майнер использует SHA-256 для поиска подходящего числового отпечатка, или хеша. Он не знает правильный ответ заранее: меняет входные данные и пробует снова. Такая специализация постепенно вытеснила из конкурентоспособного майнинга обычные процессоры CPU, графические процессоры GPU и программируемые схемы FPGA. Чип для майнинга SHA-256, однако, нельзя просто превратить в универсальный компьютер. [6] [8]
Представим майнер с производительностью 100 TH/s и потребляемой мощностью 3 000 W. Это условный пример, не характеристики товара. TH/s означает триллионы хешей в секунду: машина выполняет сто триллионов попыток каждую секунду. Этот показатель называется Hashrate. Электросчётчик измеряет энергию: при постоянной мощности 3 kW устройство потребит 72 kWh за 24 часа. Именно это количество умножают на цену одной kWh. Для сравнения используют и J/TH — джоули энергии на триллион попыток. В примере 3 000 / 100 = 30 J/TH. Меньшее значение означает меньше энергии на ту же работу. Но методы измерения и настройки должны быть сопоставимы. Показатель отдельного чипа нельзя напрямую сравнивать с потреблением всей машины из розетки. [7] [8]
Почти вся потреблённая энергия в итоге превращается в тепло. Поэтому Анне нужно продумать его отвод, а в зависимости от конструкции — и шум вентиляторов. Небольшой домашний майнер и промышленная машина могут иметь совершенно разные потребности. Слово ASIC само по себе не определяет ни размер, ни мощность. Кроме чипов, внутри работают блок питания, регуляторы напряжения, контроллер и платы с майнинговыми чипами — hashboards. Тепло отводят вентиляторы или жидкостное охлаждение. Пыль, неисправный вентилятор, неподходящее питание или слишком высокие настройки могут вызывать ошибки и остановки. Поэтому важнее оценивать всю работу устройства, чем самую большую цифру в рекламе. [7] [8]
Подключившись к Mining Pool, майнер Анны получает задания от сервиса, координирующего майнеров. Пул — отдельное ПО и оператор, а не часть чипа. Для самостоятельного майнинга Анне нужна соответствующая инфраструктура. Firmware, то есть управляющая прошивка устройства, передаёт задания чипам и отправляет результаты. Сначала кто-то должен собрать проект блока с транзакциями — Block Template. Его предоставляет Full Node или другой поставщик шаблонов. Full Node — программа, которая самостоятельно проверяет блоки и транзакции по правилам Bitcoin. BIP22 описывает интерфейс getblocktemplate, а BIP23 — расширения для пулов. Stratum V2 разделяет Mining Protocol для заданий, Job Declaration для предложения собственной работы и Template Distribution для передачи шаблонов. Возможность выбирать транзакции зависит от устройства системы и поддержки этих компонентов. Сам чип их не выбирает. [1] [2] [4] [5] [9]
Анна видит принятые shares в панели пула, хотя её устройство не нашло биткоин-блок. Share — результат, выполнивший более лёгкое условие пула и статистически подтверждающий сделанную работу. Пул учитывает её при расчёте выплат по своим правилам. Share — не дополнительная монета и не автоматически часть блока. Лишь гораздо более редкий результат выполняет также более сложное условие сети Bitcoin. Он позволяет представить блок, который ещё должен пройти все остальные проверки. Изменение сложности shares влияет на частоту их отправки. Само по себе оно не увеличивает настоящую производительность машины и не меняет сложность майнинга сети. [4] [6]
Найденный результат — предложение сети, а не приказ остальным. Full Node самостоятельно проверяет правила Bitcoin и отклоняет недействительный блок даже от очень мощного майнера. ASIC не позволяет создать награду сверх лимита, потратить чужие монеты без разрешения или заставить узлы принять другие правила. Оператор всё же принимает важные решения: какую прошивку использовать, к какому пулу подключиться и, где это поддерживается, какие транзакции включать. Полезно сравнивать показания машины с оценкой пула за более длительный период, следить за отклонёнными shares, температурой и фактическим потреблением. Короткие колебания оценки пула сами по себе не доказывают неисправность. [5] [10]
Два одинаковых майнера могут давать совершенно разный финансовый результат. Один работает с хорошим охлаждением и более дешёвым электричеством, другой часто простаивает и платит больше за энергию. Влияют также покупка и обесценение оборудования, комиссии пула, цена биткоина, сложность сети и комиссии транзакций в найденных блоках. Техническая эффективность не обещает окупаемости. Специализация повысила и требования к производству чипов и работе крупных майнинговых центров. Обсуждая концентрацию, важно различать производителей, владельцев машин, физические площадки и пулы. Большая доля пула не доказывает, что все подключённые устройства принадлежат одной компании. [6] [8]
Частота задаёт темп работы чипа, а напряжение помогает сохранять надёжность вычислений. Даже чипам одного типа могут требоваться разные настройки: производство создаёт небольшие различия электрических свойств. Прошивка может искать подходящий режим для каждого чипа или платы. Это называется Autotuning. Снижение частоты с подходящим напряжением может улучшить J/TH, хотя общий Hashrate упадёт. Разгон, напротив, способен добавить производительности ценой непропорционального роста потребления и тепла. Результат зависит от устройства, охлаждения и настроек. Максимальная достижимая производительность не обязательно является самым разумным режимом для длительной работы. [7]
Основой служит 80-байтовый заголовок блока — короткая запись его основных данных. Он содержит версию, хеш предыдущего блока, Merkle Root, обобщающий транзакции, отметку времени, закодированную цель сложности nBits и 32-битное поле Nonce. SHA-256(SHA-256(header)) означает двукратное применение SHA-256; header здесь обозначает заголовок. Полученный хеш читается как число. Для нужного доказательства работы оно не должно превышать цель: hash ≤ target. Чип может ускорять вычисления повторным использованием промежуточных результатов для неизменных частей входа. Узлы проверяют результат и правильную цель, а не расположение схем производителя. Остальные правила проверки блока по-прежнему обязательны. [6] [10]
Nonce даёт 2^32 возможных значений. Быстрый майнер перебирает их очень скоро, поэтому система меняет и другие данные. Extranonce — вспомогательное значение в Coinbase Transaction, особой первой транзакции с наградой за блок. Его изменение меняет транзакцию, получившийся Merkle Root и вход для следующего цикла вычислений. Можно также менять поле времени nTime в разрешённых пределах или использовать подходящие биты версии. Предложение BIP320 описывает резервирование некоторых битов для общего применения, но не разрешает игнорировать правила сети. Stratum V2 требует распределять работу так, чтобы устройства не тратили усилия на одинаковых кандидатов. Все эти механизмы снабжают чипы новыми возможностями, а не увеличивают награду за отдельный блок. Более новое предложение BIP323 должно заменить BIP320 и выделить для этой цели 24 бита версии. Текущая спецификация Stratum V2 уже ссылается на BIP323. Его статус остаётся Draft, то есть черновик: публикация предложения сама по себе не меняет правил Bitcoin. [3] [4] [11]
Для полной картины прочитайте эту статью вместе с Майнинг, Hashrate, SHA-256, Block Header, Nonce, Extranonce. На эту статью также ссылаются Mining Pool, Hashrate, Nonce, Braiins.