Що таке Майнінг, і чому Майнять на відеокартах

Що являє собою Майнінг? Чому для Майнінг криптовалюта в переважній більшості випадків краще підходять відеокарти, а не 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. Різниця очевидна.

Причому виробники майнінгових ASIC створюють їх для видобутку певної криптовалюта. Вони підбирають компоненти і налаштовують софт в Асіка таким чином, щоб він найкраще справлявся з вирішенням завдань щодо конкретного алгоритму, на якому побудована конкретна криптовалюта (наприклад, SHA-256 для Майнінг біткоіни). Тобто, в теорії Асік для біткоіни можна використовувати для Майнінг інший криптовалюта, але його продуктивність в такому разі не буде вражати.

Але якщо відеокарту потім можна увіткнути в комп’ютер і спокійно грати з її допомогою в різні ігри, то з ASIC такого зробити не можна – на них встановлюють сильно спрощені операційні системи, чиї здібності «заточені» спеціально для видобутку криптовалюта.

Пдсумок

Ми представили Майнінг на прикладі біткоіну в спрощеному вигляді і постаралися пояснити його найбільш зрозумілим способом. Слід зазначити, що для різних кріповалют більше підійдуть відеокарти від різних виробників: однією більше підійде Nvidia, а для іншої кращим рішенням буде AMD. Так виходить через те, що криптовалюта побудовані на різних алгоритмах: з кожним конкретним найкраще справляється та відеокарта, чиї конструктивні особливості найкраще підходять.

Залиште коментар:

Ваш email не буде опубліковано.