Як працює біткойн Поспішайте з технічними аспектами біткойна Крістіана Чобану Медіум
Крістіан Чобану
15 травня · 19 хв читання
У цій статті ми розглянемо технологію та основні механізми, що змушують біткойн працювати. Ми обговоримо блокчейн та консенсус в іншій статті, тому ця стаття більше зосереджена на самому біткойні.

Теми, висвітлені в цій статті, включають регулювання складності, криву пропозиції монет, механізм транзакцій біткойнів, UTXO, дерева Меркла, Hard Fork проти Soft Fork та Block Explorer.
Як створюються біткойн-монети?
Біткойн-монети створюються в процесі, який називається «видобуток корисних копалин». Майнери змушені вирішувати складну математичну головоломку (яка називається Proof-of-Work), перш ніж їм дозволено вводити нові транзакції блокчейну. Натомість вони винагороджуються біткойн-монетами.
Будь-хто, хто має комп’ютер, може стати майнером з відповідною конфігурацією. Ставши майнером, ви можете перевірити та записати транзакції з іншими майнерами.
Час блокування та складність регулювання
Складно передбачити, скільки шахтарів візьме участь. Якщо їх буде замало, система буде занадто повільною, що призведе до поганого користувацького досвіду. Якщо їх занадто багато, система буде занадто швидкою, що призведе до проблем із безпекою (наприклад, легко витратити вдвічі). Тому для системи важливо підтримувати відносно постійний темп, незалежно від кількості майнерів (іншими словами, потужності хешу).
Біткойн використовує механізм, який називається "регулювання складності", щоб підтримувати постійну швидкість видобутку, приблизно 10 хвилин на блок. "Складність" буде регулюватися кожні 2 тижні, враховуючи хеш-потужність минулого. Якщо потужності хешування недостатньо (тобто середній час на блок більше 10 хвилин), складність буде зменшена. І навпаки, якщо вихідна потужність занадто висока (тобто середній час на блок більше 10 хвилин), складність зросте.
Як регулювати складність?
Протокол Bitcoin вимагає від майнерів змагання за вирішення «криптографічної головоломки» (так званої перевірки роботи), щоб переможець міг запропонувати новий блок і додати його до блокчейну.
"Криптографічна головоломка" вирішується шляхом регулювання nonce так, щоб хеш блоку був меншим за цільовий хеш (значення менше 256 бітів).
Майнери повинні знайти nonce, довільну кількість 32 біт, щоб хеш блоку був меншим або рівним цільовому хешу, вказаному мережею. Якщо ваш хеш нижче цільового, ви заробляєте і отримуєте винагороду за майнінг. Якщо ні, змініть нонс ще раз і спробуйте ще раз.
Чим вище хеш-потужність мережі, тим нижче цільовий хеш. Менший хеш цілі означає, що майнерам важче знайти правильний момент, щоб створити менший хеш блоку, ніж цільовий хеш. (Уявіть, що комп’ютер випадковим чином вибирає число від 1 до 100, ймовірність знайти число менше 10 дорівнює 0,1, але ймовірність знайти число менше 50 дорівнює 0,5).
Так здійснюється «коригування складності» в мережі біткойн.
Що таке хешрейт, винагорода за майнінг та комісія за транзакції?
У попередньому розділі ми бачимо, чому хеш-потужність важлива і як вона пов'язана з часом блокування та регулюванням складності. Потужність хешування можна виміряти за допомогою "швидкості хешування", як показано нижче:
Рата Хеш
Швидкість хешування - це міра кількості хеш-операцій, виконаних за певний проміжок часу. Це може відрізнятися залежно від апаратного забезпечення. Наприклад, якщо у майнера є пристрій, який може генерувати швидкість 30 МГц, тоді є 30 мільйонів хешів в секунду (хеш - це перетворення стану в стан - або для подальшого спрощення, 1 розрахунок).
Таким чином, графічний процесор, який виробляє швидкість передачі даних 30 МГц, робить обчислення 30 мільйонів в секунду.
Чим вища швидкість хешування, тим більша ймовірність, що майнер вирішить блок і виграє винагороду за блок. Імовірність того, що майнер вирішить блок, можна оцінити за такою формулою:
P = ймовірність вирішення блоку
Y = загальний хешрейт мережі, який представляє сумарний хешрейт усіх майнерів, які в даний час видобувають
Можливо, ви чули про майнінг-ферми, які є величезними промисловими складами, повними гірничого обладнання, єдиним призначенням яких є видобуток криптовалют. Можуть бути тисячі підключених графічних процесорів або ASIC (інтегральних мікросхем, специфічних для додатків), які поєднуються, щоб зробити загальну потужність хешування набагато більшою, ніж одиниця гірничого обладнання. Все це призначене для того, щоб зробити блок швидше вирішеним, а майнер виграти винагороду.
Винагорода за майнінг - це компенсація (у вигляді новостворених монет), яку система генерує для оплати праці майнерів, коли вони розгадали криптографічну головоломку, необхідну для роботи з новим блоком.
В даний час винагорода за майнінг біткойнів становить 12,5 біткойнів за блок. Майнери повинні змагатись між собою в мережі, щоб першим вирішити блок і отримати винагороду. Отже, чим вища швидкість хешування, тим більше шансів отримати винагороду за майнінг. Щоб покращити рентабельність інвестицій, гірничим компаніям та приватним особам часто потрібно вкладати достатньо коштів в обладнання та електроенергію, щоб збільшити свої шанси на успішне видобуток корисних копалин.
Однак із різким збільшенням загальної хеш-швидкості мережі Біткойн стає майже неможливо, щоб людина могла самостійно видобувати біткойни через обмежені ресурси. Отже, групи видобутку дозволяють людям об’єднувати ресурси та робити внески у видобуток корисних копалин. Таким чином, майнінг-групи можуть отримувати більше ресурсів, щоб конкурувати між собою, а окремі люди можуть ділитися вигодами пропорційно своїй швидкості хешування, допомагаючи пом'якшити нестабільність, з якою вони можуть зіткнутися під час видобутку.
Кожні 210 000 блоків вдвічі зменшують винагороду за майнінг. Біткойн починався з винагороди 50 BTC, потім у 2012 році 25 BTC, а в 2016 році він знову зменшився вдвічі до 12,5 BTC. У 2020 році винагорода за Блок знову зменшиться вдвічі до 6,25 і так далі, поки не буде видобуто всі 21 мільйон BTC.
Різні типи криптовалют мають різні винагороди та різні програми запуску токенів. Їх можна знайти в Білій книзі цієї криптовалюти.
Винагорода за блок збирається в транзакції coinbase, яка відноситься до першої транзакції в блоці. Він використовується майнерами для збору винагороди за блок або будь-яких додаткових комісій за транзакції.
Комісія за транзакції
Оскільки винагорода за майнінг біткойнів та інших валют, що працюють за допомогою механізму PoW, буде поступово зменшуватися, існує ще один тип стимулів для майнерів робити транзакції. Ці стимули називаються мережевими платежами. Щодо валют, які працюють відповідно до консенсусу PoW, користувачі повинні сплачувати плату за мережу та майнінг за кожну транзакцію. Ця комісія за транзакцію може змінюватися в різних умовах дорожнього руху та в різних валютах. Комісія за транзакцію - це залишкова сума невитрачених записів. Зазвичай він обчислюється в сатоши на байт.
Комісія за транзакції є стимулом для майнерів перевірити вашу транзакцію. Ви також можете не платити комісію за транзакцію або платити знижену комісію, але це значно зменшить ваші шанси на включення транзакції до наступного блоку.
Є також деякі валюти, у яких плата за транзакції низька або взагалі відсутня, і вони, як правило, застосовують інший консенсус (наприклад, DPoS, PBFT) або різні технології (наприклад, DAG), деякі загальні приклади - XRP, EOS та IOTA.
Половина біткойна
На відміну від фіатних валют, пропозиція яких коливається і контролюється центральними банками, біткойн встановлений на рівні 21 мільйона монет. Причина, по якій біткойн не може бути легко «надрукований», полягає в тому, що його графік постачання попередньо запрограмований. Жодна організація не може в односторонньому порядку змінити пропозицію біткойнів, не придбавши домінуючу частку децентралізованої організації.
Через зменшення вдвічі винагорода за блок зменшиться вдвічі за кожні 210 000 видобутих блоків. Оскільки кожен блок займає близько 10 хвилин, зменшення вдвічі має відбуватися приблизно 1458 днів або 4 роки - цифра, яка згадується у багатьох крипто літературах.
Удвічі вже відбулося двічі. Перша подія відбулася 28/11/2012, коли винагорода за майнінг була зменшена з 50 BTC до 25 BTC, а друга 09.07.2016, коли винагорода за майнінг була зменшена з 25 BTC до 12,5 BTC. Очікується, що наступна половина відбудеться близько 12/05/2020, коли винагорода за майнінг буде зменшена з 12,5 BTC до 6,25 BTC.
Через втрату приватних ключів або пошкодження обладнання деякі біткойн-монети назавжди втрачаються і не підлягають відновленню, що робить реальний запас набагато нижчим від теоретичного значення. У винахідника біткойнів Сатоші Накамото також залишається недоторканою значна кількість біткойн-монет після видобутку кілька років тому.
Як працюють транзакції з біткойнами?
Ми введемо процедури транзакцій з біткойнами з наступним сценарієм:
Боб, інтернет-торговець, вирішує прийняти біткойн як платіж.
Покупець Аліса має біткойн-монети і хоче купувати товари у Боба.
Гаманці - це файли, що забезпечують доступ до декількох біткойн-адрес.
Адреса - це рядок букв і цифр, наприклад 1HULMwZEJEPech43BKJL1ybLCWrfDpN. Кожна адреса має власний баланс біткойн-монет.
Уявіть свої адреси як банківські рахунки, але вони працюють дещо інакше. Користувачі біткойнів можуть створювати скільки завгодно адрес.
Клієнтське програмне забезпечення біткойнів генерує біткойн-адреси для користувачів.
Коли Боб створює нову адресу, він фактично генерує "пару криптографічних ключів", що складається з приватного ключа (який відомий тільки вам) і відкритого ключа (відомого кожному). Якщо ви підписуєте повідомлення приватним ключем, його можна перевірити за допомогою відповідного відкритого ключа. Нова адреса Боба - це унікальний відкритий ключ, а відповідний закритий ключ зберігається в його гаманці. Відкритий ключ дозволяє будь-кому перевірити, що повідомлення, підписане приватним ключем, є дійсним.