Майнінг криптовалюти

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

За рахунок чого це працює

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

Кожна транзакція в мережі блокчейн хешується в загальний пул пам'яті. Крім того, кожен новий блок починається з «транзакції-нагороди» - «block reward». Ця транзакція йде першою і має на увазі зарахування певної кількості біткоінів тому, хто першим підтвердить достовірність блоку.

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

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

Що важливо - ці ідентифікатори повинні бути менше певного значення, строго заданого умовами протоколу. Тому для отримання «робочої довжини», вони доповнюються послідовністю з кількох нулів, які визначають складність хешування . Чим більше нулів - тим складніше підібрати хеш , що гарантує стабільну і передбачувану швидкість генерації нових блоків, яка безпосередньо залежить від загальних потужностей мережі. Незважаючи на велику складність процесу, можлива ситуація, коли два різних майнера одночасно знаходять правильне підтвердження і додають нові блоки. І замість одного, в блокчейн вбудовується два достовірних і підтверджених блоки. Однак сама структура алгоритму не дозволяє існувати таким «розвилкам». Тому той блок, до якого першим додадуть новий, стане основною гілкою, а другий буде визнаний застарілим або «осиротілим», а потім - і зовсім відділиться від загальної ланцюжка. А ті майнери, що працювали над інформацією, яка міститься в ньому, перейдуть на актуальний ланцюжок, втративши трохи часу на неактуальну роботу.

Пули

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

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