Що таке майнінг криптовалют і як він працює
Майнінг криптовалют перевіряє та підтверджує транзакції блокчейну. Це також стосується процесу створення нових одиниць криптовалюти.
Хоча робота, виконана майнерами, вимагає інтенсивних обчислювальних ресурсів, саме це допомагає зберігати блокчейн-мережу безпечною.
Що таке криптомайнінг?
Криптомайнінг забезпечує безпеку та децентралізацію криптовалют, таких як Bitcoin, які базуються на механізмі консенсусу Proof of Work (PoW). Це процес, за допомогою якого транзакції користувачів перевіряються та додаються до публічного реєстру блокчейну. Таким чином, майнінг є критично важливим елементом, який дозволяє Bitcoin функціонувати без необхідності в центральному органі.
Операції з майнінгом також відповідають за додавання монет до існуючого запасу. Однак криптомайнінг слідує набору жорстко закодованих правил, які регулюють процес майнінгу і запобігають будь-кому від довільного створення нових монет. Ці правила вбудовані в основні протоколи криптовалюти та забезпечуються всією мережею тисяч вузлів.
Щоб створити нові одиниці криптовалюти, майнери використовують свою обчислювальну потужність для розв'язання складних криптографічних головоломок. Перший майнер, який розв'яже
має право додати новий блок транзакцій до блокчейну та транслювати його до мережі.
Як працює криптомайнінг?
Коли здійснюються нові транзакції блокчейну, вони надсилаються до пулу, званого пам'яттю. Завдання майнера полягає в перевірці дійсності цих очікуючих транзакцій та організації їх у блоки.
Ви можете уявити блок як сторінку реєстру блокчейну, в якій записані кілька транзакцій (разом з іншими даними). Більш конкретно, вузол майнінгу відповідає за збір непідтверджених транзакцій з пам'яті та їх складання в кандидатний блок.
Потім майнер намагається перетворити цей кандидатний блок на дійсний, підтверджений блок. Для цього майнер повинен розв'язати складну математичну задачу, яка вимагає багато обчислювальних ресурсів. Однак за кожен успішно видобутий блок майнер отримує блокову винагороду, що складається з новостворених криптовалют плюс комісії за транзакції. Давайте детальніше розглянемо, як це працює.
Крок 1: Хешування транзакцій
Перший крок у видобутку блоку — взяти очікуючі транзакції з пам'яті та подати їх, одну за одною, через хеш-функцію. Кожного разу, коли частина даних проходить через хеш-функцію, генерується вихід фіксованого розміру, званий хешем.
У контексті майнінгу, хеш кожної транзакції складається з рядка цифр та літер, який діє як ідентифікатор. Хеш транзакції представляє всю інформацію, що міститься в цій транзакції.
На додаток до хешування та переліку кожної транзакції окремо, майнер також додає власну транзакцію, в якій він відправляє собі блокову винагороду. Цю транзакцію називають транзакцією coinbase, і саме вона створює нові монети. У більшості випадків ця транзакція є першою, що записується в новому блоці, за якою слідують всі очікуючі транзакції, які чекають на підтвердження.
Крок 2: Створення дерева Меркла
Після того, як кожна транзакція була захешована, хеші організовуються в те, що називається деревом Меркла (також відомим як хеш-дерево). Дерево Меркла генерується шляхом організації хешів транзакцій у пари, а потім їх хешування.
Нові виходи хешу потім організовуються в пари та знову хешуються, а процес повторюється, поки не буде створено один хеш. Цей останній хеш також називається кореневим хешем (або коренем Меркла) і по суті є хешем, який представляє всі попередні хеші, використані для його генерації.
Дерево Меркла організовує хеші транзакцій у пари, а потім хешує їх.
Крок 3: Знаходження дійсного заголовка блоку (хеш блоку)
Заголовок блоку діє як ідентифікатор для кожного окремого блоку, що означає, що кожен блок має унікальний хеш. При створенні нового блоку майнери поєднують хеш попереднього блоку з кореневим хешем свого кандидатного блоку, щоб згенерувати новий хеш блоку. Вони також повинні додати довільне число, відоме як nonce.
Таким чином, намагаючись підтвердити свій кандидатний блок, майнеру потрібно об'єднати кореневий хеш, хеш попереднього блоку та nonce і пропустити їх усі через хеш-функцію. Їхня мета полягає в тому, щоб робити це неодноразово, поки вони не зможуть створити дійсний хеш.
Кореневий хеш та хеш попереднього блоку не можуть бути змінені, тому майнери повинні змінювати значення nonce кілька разів, поки не буде знайдено дійсний хеш. Щоб вважатися дійсним, вихід (хеш блоку) повинен бути меншим за певне цільове значення, визначене протоколом. У майнінгу Bitcoin хеш блоку повинен починатися з певної кількості нулів — це називається складністю майнінгу.
Крок 4: Трансляція видобутого блоку
Як ми вже бачили, майнери повинні неодноразово хешувати заголовок блоку, використовуючи різні значення nonce. Вони роблять це, поки не знайдуть дійсний хеш блоку, після чого майнер, який його знайшов, транслює цей блок до мережі. Усі інші вузли перевіряють, чи є блок і його хеш дійсними, і, якщо так, додають новий блок до своєї копії блокчейну.
На цьому етапі кандидатний блок стає підтвердженим блоком, і всі майнери переходять до видобутку наступного блоку. Майнери, які не змогли вчасно знайти дійсний хеш, відкидають свій кандидатний блок, і гонка з видобутку починається знову.
Що станеться, якщо два блоки будуть видобуті одночасно?
Іноді два майнери транслюють дійсний блок одночасно, і мережа виявляється з двома конкурентними блоками. Майнери потім починають видобуток наступного блоку на основі блоку, який вони отримали першим, що тимчасово розділяє мережу на дві різні версії блокчейну.
Конкуренція між цими блоками триває до тих пір, поки не буде видобуто наступний блок поверх одного з конкурентних блоків. Коли новий блок видобуто, той блок, який передував йому, вважається переможцем. Блок, який потім покидається, називається сирітським блоком або застарілим блоком, що змушує всіх майнерів, які вибрали цей блок, повернутися до видобутку ланцюга переможного блоку.
Що таке складність майнінгу?
Складність майнінгу регулярно коригується протоколом, щоб забезпечити постійну швидкість створення нових блоків і, в свою чергу, стабільний і передбачуваний випуск нових монет. Складність коригується пропорційно до кількості обчислювальної потужності (хеш-рейту), виділеної мережі.
Таким чином, щоразу, коли нові майнери приєднуються до мережі і конкуренція зростає, складність хешування зростає — перешкоджаючи зменшенню середнього часу блоку. Навпаки, якщо багато майнерів залишать мережу, складність хешування зменшується, що полегшує видобуток нового блоку. Ці коригування утримують час блоку постійним, незалежно від загальної потужності хешування мережі.
Типи майнінгу криптовалют
Існує кілька способів видобутку криптовалют. Обладнання та процеси змінюються в міру появи нового апаратного забезпечення та алгоритмів консенсусу. Зазвичай майнери використовують спеціалізовані обчислювальні одиниці для розв'язання складних криптографічних рівнянь. Тепер ми розглянемо деякі з найпоширеніших методів майнінгу.
Майнінг на CPU
Майнінг за допомогою центрального процесора (CPU) передбачає використання ЦП комп'ютера для виконання хеш-функцій, необхідних за моделлю PoW. На ранніх етапах Bitcoin витрати на майнінг та бар'єри для входу були низькими, і його складність могла бути подолана звичайним ЦП, тому будь-хто міг спробувати видобувати BTC та інші криптовалюти.
Однак, оскільки більше людей почали видобувати BTC, а хеш-рейти мережі зросли, прибутковий майнінг став усе більш складним. Крім того, поява спеціалізованого майнінгового обладнання з більшою обчислювальною потужністю врешті-решт зробила майнінг на CPU практично неможливим. Сьогодні майнінг на CPU, ймовірно, більше не є життєздатним варіантом, оскільки всі майнери використовують спеціалізоване обладнання.
Майнінг на GPU
Графічні процесори (GPU) призначені для обробки широкого спектру додатків одночасно. Хоча зазвичай їх використовують для відеоігор або рендерингу графіки, їх також можна використовувати для майнінгу.
GPU відносно недорогі та більш гнучкі, ніж популярне обладнання для ASIC-майнінгу. Їх можна використовувати для видобутку деяких альткоїнів, але їхня ефективність залежить від складності майнінгу та алгоритму.
ASIC-майнінг
Спеціалізована інтегрована схема (ASIC) призначена для виконання однієї конкретної мети. У криптовалютах термін відноситься до спеціалізованого обладнання, розробленого для майнінгу. ASIC-майнінг відомий своєю високою ефективністю, але й дорожнечею одночасно. Оскільки ASIC-майнери є на передньому плані технологій майнінгу, вартість одиниці значно вища, ніж у CPU або GPU.
Крім того, постійний прогрес технології ASIC може швидко зробити старі моделі ASIC нерентабельними і, таким чином, потребувати регулярної заміни. Навіть без урахування витрат на електрику це робить ASIC-майнінг одним з найдорожчих способів видобутку.
Майнінгові пулі
Оскільки першому успішному майнеру надається блокова винагорода, ймовірність знаходження правильного хешу є надзвичайно низькою. Майнери з невеликою часткою потужності видобутку мають дуже маленький шанс самостійно виявити наступний блок. Майнінгові пулі пропонують рішення цієї проблеми.
Майнінгові пулі — це групи майнерів, які об'єднують свої ресурси (хеш-потужність), щоб підвищити свої шанси на отримання блокових винагород. Коли пул успішно знаходить блок, майнери в пулі ділять нагороду відповідно до кількості роботи, яку кожен з них вніс.
Майнінгові пулі можуть бути вигідними для окремих майнерів з точки зору витрат на обладнання та електрику, але їх домінування в майнінгу викликало занепокоєння щодо можливого нападу 51% на мережі.
Заключні думки
Майнінг криптовалют є критично важливою частиною Bitcoin та інших PoW блокчейнів, оскільки допомагає зберігати мережу безпечною, а випуск нових монет стабільним. Крім того, майнінг може генерувати пасивний дохід для майнерів. Ви можете дізнатися більше, скориставшись цими покроковими інструкціями в нашій статті Як видобувати криптовалюти.
Майнінг має певні переваги та недоліки, найочевиднішою з яких є потенційний дохід від блокових винагород. Однак на це впливають кілька факторів, зокрема витрати на електрику та ринкові ціни. Таким чином, перш ніж ви стрибнете в криптомайнінг, ви повинні провести власне дослідження (DYOR) та оцінити всі потенційні ризики.