Освітній курс «Про Біткоїн» — Випуск № 5 — Майнери розкривають свої карти

Привіт, спільното!

Нарешті готовий наступний випуск освітнього курсу «Про Біткоїн». Моя мрія — щоб цей курс був перекладений всіма мовами світу. Почнемо з української.

Детальніше про таймлайн, принципи та ліцензію читайте на сторінці.

Список всіх уроків.

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

Яку математичну задачу вирішують майнери

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

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

Важливі моменти:

  1. Хеш на виході — це просто 64 символи. Приклад хешу від слова «bitcoin» (без лапок):
  2. 6b88c087247aa2f07ee1c5956b8e1a9f4c7f892a70e324f1bb3d161e05ca107b
  3. Якщо інформація на вході відрізняється навіть на один символ — хеші на виході будуть різні.
  4. Вище ми привели кодування слова «bitcoin». Ось для порівняння закодоване слово "Bitcoin":b4056df6691f8dc72e56302ddad345d65fead3ead9299609a826e2344eb63aa4 Порівняйте з попереднім хешом — послідовність символів інша.
  5. Знаючи хеш, неможливо отримати оригінальні дані. Тобто реверс-операція неможлива.

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

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

Складність майнінгу

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

Ось приклад такого хешу:

0000009dc1b842a653dea846903ddb95bfb8c5a10c504a7fa16e10bc31d1fdf0

Складність майнінгу — це кількість нулів на початку хеша. Чим їх більше — тим складніше знайти потрібний хеш, бо треба перебрати більше варіантів.

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

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

Як майнер відбирає транзакції для нового блоку

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

Повернемося до прикладу, коли Аліса переказувала 5 BTC Бобу. Окрім суми та адреси отримувача, Аліса має заплатити комісію.

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

Переказуючи біткоїни Бобу, Аліса не хоче чекати. Вона хоче, щоб її транзакція була включена вже у наступний блок і тому вона виставляє комісійні трохи вище поточних. Наприклад, якщо поточна середня комісія — 10 центів за транзакцію, тоді Аліса може встановити 11 центів і її транзакція стане пріорітетною для майнерів.

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

Якщо ж Аліса може почекати, вона встановить комісію меншу за середню, наприклад, 5 центів і її транзакція буде включена в блок тоді, коли навантаження на мережу впаде. Можливо, це відбудеться через 2 години, а можливо через 2 дні, тому все ж краще Алісі не дуже економити і встановити ціну приближену до середньої.

Майнінг пули

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

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

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

Епілог

Оце так! Ми пройшли ще один урок про майнінг. Найскладніше позаду і тепер ви майже експерти у технології Біткоїн.

Ми продовжуємо нашу магічну подорож і настав час познайомитись з принцом Халвінгом.

Від автора

Курс знаходиться в процесі написання. Весь матеріал доступний за посиланням. Ним можна ділитися.

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

Також підписуйтесь на україномовний канал 21 мільйон.

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

Тест до уроку.

Чекаю на ваші відгуки! О.

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному2
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі