Що таке майнінг криптовалюти?
Зміст
Вступ
Як працює майнінг?
Чи можна майнити всі криптовалюти?
Proof of Work (PoW)
Різні способи майнінгу криптовалюти
CPU майнінг
GPU майнінг
ASIC майнінг
Майнінг-пули
Заключні думки
Що таке майнінг криптовалюти?
Головна сторінка
Статті
Що таке майнінг криптовалюти?

Що таке майнінг криптовалюти?

Новачок
Опубліковано Dec 6, 2018Оновлено Nov 16, 2022
8m

Короткий зміст

Майнінг криптовалюти – це процес перевірки та підтвердження транзакцій блокчейну. Це також процес створення нових одиниць криптовалюти. Робота, що виконується майнерами, потребує інтенсивних обчислювальних ресурсів, але саме вони забезпечують безпеку блокчейн мережі. Чесні та успішні майнери нагороджуються за свою роботу новоствореними криптовалютами та комісією за транзакції.


Вступ

Майнінг – це процес, в якому криптовалютні транзакції між користувачами перевіряються та додаються до публічного блокчейн регістру. Операції з майнінгу також відповідають за введення нових монет в існуючу циркулюючу пропозицію.

Майнінг – один із ключових елементів, що дозволяє блокчейну Bitcoin працювати як розподілений реєстр. Всі транзакції записуються у peer-to-peer мережі без необхідності в центральному органі. У цій статті ми обговоримо Bitcoin майнінг. Процес аналогічний для альткоїнів, які використовують той самий механізм майнінгу.


Як працює майнінг?

У міру здійснення нових блокчейн транзакції, вони відправляються в пул, який називається пулом пам'яті (або мемпулом). Завдання майнера – перевіряти достовірність цих очікуючих транзакцій та організовувати їх у блоки. Ви можете думати про блок як про сторінку блокчейн реєстру, в якій записано декілька транзакцій (разом з іншими даними).
Зокрема, майнінг ноди відповідають за збір непідтверджених транзакцій з пулу пам'яті та складання їх у блок-кандидат. Після цього майнер пробує перетворити цей блок-кандидат на дійсний підтверджений блок. Але їм потрібно знайти вирішення складного математичного завдання. Для цього потрібно багато обчислювальних ресурсів, але кожен успішно здобутий блок дає майнеру винагороду за блок, що складається з новостворених криптовалют плюс комісії транзакції. Давайте докладніше розглянемо процес майнінгу.


Крок 1 - Хешування транзакцій

Перший крок майнінгу блоку – це взяти очікуючі транзакції з мемпулу та відправити їх одну за одною за допомогою хеш функції. Щоразу, коли ми надсилаємо частину даних через хеш функцію, ми генеруємо результат фіксованого розміру, який називається хешем. У контексті майнінгу хеш кожної транзакції складається з рядка чисел та літер, що працює як ідентифікатор. Хеш транзакції представляє всю інформацію, що міститься у цій транзакції.
Крім хешування і додавання кожної транзакції окремо, майнер також додає транзакцію, в якій він надсилає собі винагороду за блок. Ця транзакція називається coinbase транзакцією і створює нові монети. У більшості випадків coinbase транзакція записується першою в новому блоці, за нею слідують всі очікуючі транзакції, які вони хочуть перевірити.

Крок 2 - Створення дерева Меркла

Після хешування кожної транзакції хеші організовуються у так зване Дерево Меркла. Дерево Меркла, також відоме як хеш-дерево, формується шляхом організації хеш транзакцій в пари з подальшим їх хешуванням. Потім нові вихідні хеш-значення поєднуються в пари і знову хешуються, і процес повторюється доти, доки не буде створено єдиний хеш-код. Цей останній хеш також називається кореневим хешем (або коренем Меркла) і в основному є хешем, який представляє всі попередні хеші, що використовувалися для його генерації.

Крок 3 - Пошук дійсного заголовка блоку (хеш-блоку)

Заголовок блоку працює як ідентифікатор для кожного окремого блоку, що означає, що кожен блок має унікальний хеш. При створенні нового блоку майнери об'єднують хеш попереднього блоку з кореневим хешем свого блоку-кандидата, щоб згенерувати новий хеш-блок. Але крім цих двох елементів, їм також потрібно додати довільне число, яке називається nonce.

Отже, при спробі перевірити свій блок-кандидат, майнеру необхідно об'єднати хеш кореня, хеш попереднього блоку та nonce і відправити їх всіх за допомогою хеш-функції. Їхня мета – створити хеш, який вважатиметься дійсним.

Кореневий хеш і хеш попереднього блоку не можна змінити, тому майнерам необхідно декілька разів змінити значення "nonce", доки не буде знайдено дійсний хеш.

Щоб вважатися дійсним, результат (хеш блоку) повинен бути меншим за певне цільове значення, яке визначається протоколом. При майнінгу Bitcoin хеш блоку повинен починатися з певної кількості нулів. Це те, що ми називаємо складністю майнінгу.

Крок 4 – Трансляція добутого блоку

Як ми щойно бачили, майнерам необхідно знову і знову хешувати заголовок блоку з різними значеннями nonce. Вони повторюють цю роботу, доки не знайдуть дійсний хеш блоку. Майнер, що його знайшов, потім транслює свій блок у мережу. Всі інші ноди перевірять, чи дійсні блок і його хеш, і якщо так, додадуть новий блок у свою копію блокчейну.

У цей момент блок-кандидат стає підтвердженим і всі майнери переходять до майнінгу наступного. Всі майнери, які не змогли вчасно знайти дійсний хеш, скидають свій блок-кандидат, і гонка майнерів починається спочатку.


Регулювання складності майнінгу

Складність майнінгу постійно регулюється протоколом, гарантуючи, що швидкість створення нових блоків залишається постійною. Це те, що робить випуск нових монет стабільним та передбачуваним. Складність регулюється пропорційно кількості обчислювальної потужності (хешрейту), що виділяється на мережу.

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


Що робити, якщо одночасно добуваються два блоки?

Іноді трапляється, що два майнери транслюють дійсний блок одночасно, і в мережі виявляється два блоки, що конкурують. Потім майнери починають майнінг наступного блоку на основі блоку, який вони отримали першим. Це призводить до того, що мережа поділяється (тимчасово) на дві різні версії блокчейну.

Конкуренція між цими блоками продовжуватиметься доти, доки не буде добуто наступний блок поверх будь-якого з конкуруючих блоків. Коли добувається новий блок, будь-який блок, який був до нього, буде вважатися переможцем. Залишений блок називається сирітським блоком або застарілим блоком, що змушує всіх майнерів, які обрали цей блок, повернутися до майнінгу ланцюга блоку переможця.


Чи можна майнити всі криптовалюти?

Bitcoin – найпопулярніший приклад криптовалюти, яку можна майнити, але не всі криптовалюти придатні для майнінгу. Майнінг Bitcoin заснований на алгоритмі консенсусу під назвою Proof of Work (PoW).


Proof of Work (PoW)

Proof of Work (PoW) – це оригінальний механізм консенсусу блокчейну, створений Сатоші Накамото. Він був представлений у whitepaper Bitcoin ще у 2008 року. Коротко, PoW визначає, як блокчейн мережа досягає консенсусу між усіма розподіленими учасниками без сторонніх посередників. Це досягається за рахунок того, що для утримання зловмисників потрібні значні обчислювальні потужності.
Як ми побачили, транзакції в мережі PoW перевіряються майнерами. Щоб виграти право на майнінг наступного блоку, майнери змагаються, вирішуючи складні криптографічні головоломки за допомогою спеціалізованого майнінгового обладнання. Перший майнер, який знайде правильне рішення, може транслювати свій блок транзакцій у блокчейн та отримати винагороду за блок.

Кількість криптовалюти у винагороді за блок варіюється в залежності від різних блокчейнів. Наприклад, у блокчейні Bitcoin майнер може отримувати 6,25 BTC у вигляді винагороди за блок (станом на грудень 2021 року). Кількість BTC у винагороді за блок зменшується вдвічі кожні 210 000 блоків (приблизно кожні чотири роки) через його механізм халвінгу.


Різні способи майнінгу криптовалюти

Єдиного способу майнінгу криптовалют немає. Обладнання та процеси змінюються у міру появи нового обладнання та алгоритмів. Зазвичай майнери використовують спеціалізовані комп'ютерні пристрої для вирішення складних криптографічних рівнянь. Давайте подивимося, як працюють деякі з найпоширеніших способів майнінгу.


CPU майнінг

Майнінг на центральних процесорах (CPU) передбачає використання ЦП комп'ютера для виконання хеш-функцій, необхідних для PoW. У перші дні існування Bitcoin, вартість та вхідний бар'єр для майнінгу були низькими. Складність майнінгу могла бути вирішена за допомогою звичайного процесора, тому будь-хто міг спробувати добути BTC та інші криптовалюти.

Однак у міру того, як все більше людей почали майнити і хешрейт мережі збільшився, прибутковий майнінг ставав все важчим і важчим. На додачу, поява спеціалізованого обладнання для майнінгу з більшою обчислювальною потужністю зрештою зробило майнінг на ЦП практично неможливим. Сьогодні CPU майнінг більше не є життєздатним варіантом, оскільки всі майнери використовують спеціалізоване обладнання.


GPU майнінг

Графічні процесори (GPU) призначені для паралельного оброблення широкого спектра додатків. Хоча вони зазвичай використовуються для відеоігор або рендерингу графіки, їх також можна використовувати для майнінгу.

Графічні процесори відносно дешеві та гнучкі, у порівнянні з популярним обладнанням для майнінгу ASIC. Деякі альткоїни можна майнити за допомогою графічних процесорів, але ефективність залежить від алгоритму і складності майнінгу.


ASIC майнінг

Спеціальна інтегральна схема (ASIC) призначена для однієї конкретної мети. У криптовалюті, це спеціальне обладнання, розроблене для майнінгу. Майнінг ASIC дуже ефективний, але дорогий.

Майнінг – це змагання. Для прибуткового майнінгу вам потрібне конкурентоспроможне обладнання для майнінгу. Оскільки ASIC майнери знаходяться попереду технологій майнінгу, вартість обладнання набагато вища, ніж центральні процесори або графічні процесори. Крім того, постійний розвиток технології ASIC швидко робить застарілі моделі ASIC невигідними, а це означає, що їх часто необхідно замінювати. Це робить ASIC-майнінг одним із найдорожчих способів майнінгу, навіть без урахування витрат на електроенергію.


Майнінг-пули

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

Майнінг пули – це групи майнерів, які поєднують свої ресурси (хеш-потужність), щоб збільшити ймовірність отримання винагороди за блок. Коли пул успішно знаходить блок, майнери розподіляють винагороду порівну між усіма учасниками пулу відповідно до об'єму виконаної роботи.

Майнінгу пули можуть принести користь окремим майнерам з точки зору витрат на обладнання та електроенергію, але їхнє домінування в майнінгу викликає побоювання з приводу атаки 51% на мережу.


Заключні думки

Майнінг криптовалюти є важливою частиною Bitcoin та інших блокчейнів PoW. Це один із факторів, що забезпечує безпеку мережі та стабільний випуск нових монет. Майнінг має певні переваги і недоліки, найбільш очевидними з яких є потенційні доходи, які ви отримуєте від винагород за блоки. Однак на прибуток від майнінгу може впливати низка факторів, включаючи вартість електроенергії та ринкові ціни. Немає гарантії, що ви отримаєте прибуток, тому, перш ніж приступити до майнінгу криптовалюти, ви повинні провести власне дослідження (DYOR) та оцінити всі потенційні ризики.