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.