За рахунок чого працює Біткоїн: ноди та майнери

07.11.2022
4 хв
2234
2
За рахунок чого працює Біткоїн: ноди та майнери. Головний колаж статті.

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

Що роблять майнери?

Майнінг — це процес створення нових блоків і додавання їх до попередніх. А також це єдиний спосіб випустити в обіг нові монети.

Часто можна почути, що майнери розв’язують складну математичну задачу, але це не зовсім так. Насправді вони намагаються бути першими, хто підбере 64-значне шістнадцяткове число — хеш, яке менше або дорівнює цільовому значенню. Воно складається з цифр і букв, і для його обробки використовується алгоритм хешування SHA-256.

Ось як це відбувається:

  1. Користувачі створюють транзакції та транслюють їх у мережу;
  2. Після цього транзакції потрапляють у мемпул (від англійського memory pool); майнер йде в мемпул і вибирає транзакції з найвищою комісією;
  3. Потім він використовує хеш попереднього блоку, точніше заголовок — ту його частину, яка представляє відомий набір даних (заголовок містить хешований рядок символів, в основі якого лежать усі транзакції, які перебувають у блоці, час і деякі інші дані);
  4. Далі підбирається число, яке називається нонс. Воно випадкове. Потім це число додається до інформації, що міститься в поточному блоці, і хешується (тобто перетворюється через SHA-256). Якщо цей хеш менший за поточне цільове значення, то майнер оголошує про знайдений ним виграшний блок, а також надає введені дані (транзакції та нонс), які були використані для отримання цього числа. Ця інформація утворює блок;
  5. Решта майнерів підтверджують достовірність блоку і додають його у свою копію реєстру блоків.

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

Майнери самі додають першу транзакцію в блок, так звану coinbase-транзакцію, яка має на увазі виплату їм винагороди (тобто створення і нарахування їм нових біткоїнів відповідно до правил консенсусу). Щоб заробити (і викарбувати) біткоїни, необхідно бути першим майнером, який сформує блок. Перші біткоїни й перший блок — genesis block, були створені Сатоші Накамото.

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

Як з роками змінювалася складність майнінгу. Джерело: bits.media

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

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

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

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

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

Консенсус Proof-of-work

Як уже з’ясували, майнінг — це нескінченне підкидання грального кубика, що передбачає створення доказу роботи (PoW).

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

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

Але все ж є і деякі проблеми, з якими цей підхід стикається в міру зростання мережі. Головні з них:

  • Необхідність величезної кількості енергії.
  • Необхідність спеціалізованого обладнання.

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

Скільки часу потрібно, щоб добути один біткоїн?

Як уже згадували, в мережі Біткоїна передбачено механізм регулювання складності, який контролює швидкість створення блоків. Новий блок створюється в середньому кожні 10 хвилин. Навіть якщо до мережі приєднається більше майнерів, які збільшать кількість хешів на секунду (швидкість хешування), складність скоригується таким чином, щоб блок виявлявся в середньому кожні 10 хвилин. Складність коригується кожні 2016 блоків, що відбувається приблизно кожні два тижні. Алгоритм автоматично налаштовує швидкість знаходження блоку: якщо на пошук блоків у попередньому періоді пішло в середньому більше або менше десяти хвилин, складність збільшується або зменшується, щоб частота знаходження блоків повернулася до початково обумовленого значення.

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

Навіщо потрібні ноди?

Нода (вузол) — це комп’ютер, на якому працює програмне забезпечення мережі Bitcoin. Їх величезна кількість і всі вони взаємодіють один з одним та утворюють своєрідну мережу.

Біткоїн-ноди співпрацюють з біткоїн-майнерами для підтримки цілісності системи.

Ноди постійно обмінюються один з одним інформацією, щоб переконатися, що дані про останні блоки, які вони зберігають, є актуальними та правильними. Вони перевіряють кожен блок на відповідність правилам мережі. Їхній список містить у собі таке:

  • кожна транзакція в блоці має бути правильно підписана;
  • правильно структурована;
  • сума всередині не повинна перевищувати кількість входів;
  • виходи мають бути правильно відформатовані;
  • винагорода за майнінг не повинна витрачатися раніше ніж через 100 блоків;
  • обсяг даних у блоці не повинен перевищувати певного значення.

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

У технічному документі Біткоїна описано два типи нод:

  • Повна нода (full node)

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

  • Легкий клієнт / SPV-клієнт

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

Перш ніж розглянемо, як працює транзакції в мережі першої криптовалюти, дізнаймося, що трапиться, коли всі біткоїни будуть намайнені:

Як вам стаття?

2
0

статті на цю ж тему

Топ-5 безкоштовних способів...
avatar Denis Solomyanyuk
15.04.2024
Рішення другого рівня для біткоїна —...
avatar Nikita Tipikin-Holovko
20.03.2024
Халвінг біткоїну у 2024 році: коли...
avatar Andrew Makarov
06.03.2024