Що таке proof of work?
Визначення · Proof of work (PoW)
Система, у якій право додати блок отримує той, хто першим знаходить хеш заголовка блока, менший за цільове значення. Для пошуку потрібна величезна кількість спроб, а для перевірки достатньо одного хешування.
Сатоші Накамото описав це в технічному документі про Біткоїн у 2008 році, спираючись на Hashcash Адама Бека. Це давніша ідея, яка мала зробити розсилання спаму електронною поштою дорогим. Валідний хеш і є доказом. Його неможливо отримати, не виконавши роботу, і кожен може перевірити, що ти її виконав.
Далі на цій сторінці розглянемо кожну частину окремо, а у вікні вище можна спробувати самому: це справжній формат заголовка Bitcoin, хеш якого обчислюється просто у вашому браузері. Щоб розібратися в майнінгу загалом, перегляньте наш повний посібник із майнінгу Bitcoin.
Яку проблему розв’язує доказ роботи?
У Bitcoin немає компанії, банку чи сервера, який керує мережею. Тисячі комп’ютерів зберігають власну копію реєстру й мають погоджуватися, який блок буде наступним і у якому порядку відбулися платежі. Інакше хтось міг би витратити ту саму монету двічі.
Звичайне голосування в інтернеті не працює, бо кожен може запустити тисячу фальшивих комп’ютерів і проголосувати тисячу разів. Це називається атакою Sybil. Proof of work обходить цю проблему: твій голос вимірюється в хешах, а для хешування потрібні електроенергія та обладнання.
Хто вирішує, яким буде наступний блок?
Один голос за вузол
Один зловмисник безкоштовно створює 60 фальшивих вузлів і переважає голоси 12 чесних вузлів.
Один голос за хеш
чесні майнери 88%зловмисник 12%
Ті самі 60 вузлів ділять між собою справжнє обладнання зловмисника, тож разом вони все одно мають 12%. Копії безкоштовні, а хеші ні.
Що містить заголовок блока Біткоїна?
Майнери хешують не весь блок. Вони хешують його заголовок розміром 80 байтів, який містить посилання на все інше. Ось шість полів, які ти редагував у полі вище:
| Поле | Байти | Що в ньому міститься | Хто його змінює |
|---|---|---|---|
| Версія | 4 | За якими правилами створено блок | Змінюється рідко |
| Хеш попереднього блоку | 32 | Хеш попереднього блока, який з’єднує блоки в ланцюг | Оновлюється з кожним блоком |
| Корінь Меркла | 32 | Один відбиток усіх транзакцій у блоці | Майнер, коли змінюються транзакції або додатковий nonce |
| Час | 4 | Коли, за словами майнера, було створено блок (Unix time) | Майнер, у межах обмежень |
| Біти | 4 | Ціль, упакована у 4 байтів | Мережа, кожні 2 016 блоків |
| Нонс | 4 | Безкоштовне число для нової спроби | Майнер, на кожній спробі |
Оскільки заголовок містить хеш попереднього блока, зміна старого блока змінює його хеш. Через це порушується відповідність у наступному заголовку, а потім і в наступному. Коли створювали цю сторінку, ми перевірили справжній генезис-блок Bitcoin від 2009 на своєму сервері тим самим кодом, що й у верхньому блоці сторінки:
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
Як працює SHA-256 у Bitcoin?
SHA-256 перетворює будь-які дані на число завдовжки 256 біт, записане 64 шістнадцятковими символами. Біткоїн застосовує його до заголовка двічі (це називають SHA-256d). Для майнінгу важливі прості властивості:
Однаковий вхід, однаковий результат
Детермінований
Той самий заголовок завжди дає той самий хеш на будь-якому комп’ютері. Тому його можна перевірити.
256 бітів
Фіксований розмір
Короткий рядок чи ціла книжка: хеш завжди має 64 шістнадцяткових символів.
Односторонній
Шляху назад немає
Неможливо обчислити вхідні дані так, щоб отримати потрібний хеш. Можна лише пробувати різні дані.
≈ 50%
Avalanche
Зміни один символ, і приблизно половина бітів зміниться. Подивися на сітку в головному блоці.
Ця остання властивість і є основою proof of work. Хеш, близький до цільового значення, нічого не говорить про наступну спробу, тож хитрого способу знайти валідний блок немає. Усі майнери беруть участь в одній лотереї, а більше хешів за секунду просто дає більше квитків.
Що таке target і навіщо ці нулі на початку?
Ціль — це 256-бітове число. Блок дійсний, якщо його хеш, прочитаний як число, не перевищує ціль. Малі числа починаються з нулів, тож нижча ціль означає більше нулів на початку. Кожен додатковий шістнадцятковий нуль означає в середньому у 16 разів більше спроб.
Середня кількість хешів, потрібна для знаходження одного валідного блока
- Навчальний блок у головному блоці сторінки · 4 початкових шістнадцяткових нулів65,536
- Найпростіша ціль Bitcoin (2009) · 8 початкових шістнадцяткових нулів, біти 1d00ffff4,294,967,296
- Блок Bitcoin сьогодні · приблизно 20 нулів на початку в шістнадцятковому записі (поточна оцінка)4.9 × 1023
Мережа змінює цільове значення кожні 2 016 блоків, приблизно раз на два тижні. Так блоки з’являються приблизно кожні десять хвилин, хоч би скільки хешрейту приєднувалося до мережі чи відключалося від неї. Зараз мережа працює на рівні близько 811 EH/s (дані актуальні, оновлюються щогодини). Про те, як працює це коригування, читай у нашому посібнику зі складності майнінгу Біткоїна, а про одиниці вимірювання розповідає пояснення хешрейту.
Що таке нонс і додатковий нонс?
Nonce («число, яке використовують один раз») — це поле розміром 4 байтів, яке майнери змінюють із кожною спробою. Це єдине поле, призначене лише для змін. Проблема в тому, що 4 байти дають лише близько 4,3 мільярдів значень, а сучасні машини перебирають їх майже миттєво.
Цикл майнера
- 01
Перебрати всі значення nonce
0, 1, 2 і так далі до 4 294 967 295. Це всі значення, які можуть вмістити 4 байти.
- 02
Швидко вичерпуються
Один пристрій на 100 TH/s перебирає всі варіанти приблизно за 43 мільйонних часток секунди.
- 03
Змінити додатковий nonce
Майнер змінює вільне поле у власній транзакції винагороди (coinbase).
- 04
Новий корінь Меркла
Транзакція змінилася, тому змінився корінь Меркла, і кожен nonce знову дає нові хеші.
Тому майнери також змінюють додатковий nonce: кілька вільних байтів у coinbase, першій транзакції блока, яка виплачує винагороду майнеру. Нова coinbase означає новий корінь Меркла, а отже, мільярди нових nonce для перевірки. У майнінг-пулі пул виділяє кожному майнеру окремий діапазон додаткових nonce, щоб ніхто не повторював роботу інших.
Чому знайти блок дорого, а перевірити дешево?
Щоб знайти блок
≈ 4.9 × 1023 хешів
Уся мережа, всі її машини, приблизно десять хвилин спроб.
Поточна оцінка, оновлюється щогодини.
Щоб перевірити
1 хеш
Будь-який вузол, навіть недорогий ноутбук, хешує заголовок розміром 80 байтів один раз і порівнює його з цільовим значенням менш ніж за мілісекунду.
Майнер має перебирати хеші, доки один із них не виявиться меншим за цільове значення. Усім іншим достатньо один раз обчислити хеш заголовка й порівняти його з цільовим значенням. Ця різниця у витратах дає змогу тисячам звичайних комп’ютерів перевіряти ланцюг, не довіряючи майнерам, які його створили.
Спробуй сам виконати пошук нижче. У цій демонстрації формат блока простіший, ніж у головному блоці, але це та сама лотерея з подвійним SHA-256, а кожен знайдений блок посилається на попередній.
Інтерактив · видобудь блок у браузері
Справжній SHA-256d proof of work, спрощений заголовок
Хеш блоку (подвійний SHA-256)
Зміни транзакції: хеш повністю зміниться навіть від однієї літери.
Спроби: 0
Твій хешрейт: н/д
Час: 0,0 s
Що таке правило найдовшого ланцюга й атака з часткою 51%?
Іноді два майнери знаходять блок майже одночасно, і в мережі ненадовго з’являються дві версії ланцюга. Вузли обирають ланцюг із найбільшим сумарним обсягом виконаної роботи. Його називають найдовшим, але точніше було б сказати найважчим: кілька блоків із високою складністю можуть переважити більшу кількість блоків із низькою.
Щоб скасувати платіж, зловмиснику довелося б побудувати довший ланцюжок, ніж у всіх інших, починаючи з блока перед цим платежем. Кожен новий блок зверху (підтвердження) ще більше його віддаляє. У whitepaper обчислено ймовірність. Пересуньте повзунок, щоб побачити її:
Інтерактив · чи зможе зловмисник наздогнати?
Формула з розділу 11 білої книги Bitcoin
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Підтвердження: на скільки блоків зловмисник відстає. Шкала смуг логарифмічна: від одного шансу на мільйон до повної впевненості.
За хешрейту 10% імовірність переписати платіж після 6 підтверджень становить 0,024%, а після 1 підтвердження — 20,5%.
За хешрейту 50% або більше зловмисник зрештою переможе. Це атака з 51% хешрейту. Вона серйозна, але має обмеження:
Маючи більшу частину хешрейту, зловмисник може
- Замінити нещодавні блоки власним ланцюгом
- Подвійно витратити монети, які вони надіслали самі собі
- Не включати деякі транзакції до своїх блоків
Навіть тоді вони не можуть
- Витрачати монети з чужих гаманців
- Створювати монети понад винагороду за блок
- Змінити правила Bitcoin для всіх інших
Тому біржі чекають на кілька підтверджень для великих депозитів. Шість підтверджень зазвичай вважають достатньою кількістю.
Чому доказ роботи споживає так багато енергії?
Бо енергія і є безпекою. Валідний блок доводить, що на нього витратили реальну електроенергію. Щоб переписати історію, зловмисник має витратити щонайменше стільки ж і продовжувати витрачати, поки чесна мережа рухається далі.
Куди йде енергія і що вона дає
Нагорода за блок і комісії
Нові BTC плюс комісії за кожен блок отримує той, хто його знаходить.
Обладнання та електроенергія
Майнери витрачають на це не більше, ніж для них варта винагорода.
Хешрейт мережі
Усі ці витрати відображаються в кількості хешів за секунду.
Вартість переписування історії
Зловмиснику доведеться перевершити всі ці витрати, блок за блоком.
Скільки на це йде електроенергії та звідки вона надходить — предмет цілком доречної дискусії. Індекс Cambridge відстежує оцінки, а в нашому посібнику з енергоспоживання майнінгу Bitcoin розглянуто цифри. Кожен халвінг зменшує частину винагороди за нові монети, тож із часом більшу частину витрат на безпеку мають покривати комісії.
Proof of work і proof of stake: у чому різниця?
Proof of stake (PoS) обирає творця наступного блоку серед тих, хто блокує монети як заставу, а не серед тих, хто витрачає електроенергію. Ethereum перейшов із proof of work на proof of stake у 2022. Ось чесне порівняння пліч-о-пліч:
| Proof of work | Proof of stake | |
|---|---|---|
| Хто додає наступний блок | Перший майнер, який знайде хеш, менший за цільове значення | Валідатор, якого обирають пропорційно до його стейку |
| Що його захищає | Електроенергія та обладнання, витрачені поза блокчейном | Монети, заблоковані в ланцюжку, які можна відібрати за шахрайство |
| Споживання енергії | Висока за задумом | Низький |
| Щоб долучитися | Обладнання та дешева електроенергія | Монети для стейкінгу |
| Розрахунки | Стає безпечнішим з кожним підтвердженням | Явні контрольні точки фінальності |
| Основна критика | Споживання енергії та концентрація майнінгу | Концентрація стейку й складніша конструкція |
| Історія | Bitcoin від 2009 | Ethereum, від 2022 |
Розробники Bitcoin залишили доказ роботи, бо його вартість лежить поза межами системи. Тож ніхто не може купити контроль за допомогою монет, які вже має. Прихильники доказу частки вказують на економію енергії та швидше остаточне підтвердження транзакцій.
Can you get mining rewards without running proof of work yourself?
Yes. With CloudMineCrypto you mine bitcoin for free from your phone or browser, with no hardware, noise or power bill. Claim the free 8-hour plan, and add more free plans by watching ads, playing games, completing offers and checking in daily. Your estimated BTC ticks up while your plans run, and you withdraw to your own wallet, Lightning included.
Each plan has a hashrate, and your estimate is that hashrate’s share of the whole network, times 6 blocks an hour, times the block reward. That’s the formula the app uses to estimate your rewards (rules and limits apply). Want more speed? Paid plans are an optional boost for fun. They usually mine less than they cost, and the price is shown before you confirm.
Варто знати: винагороди є оцінками, змінюються разом із мережею й не гарантовані, а план не дає права власності на будь-який пристрій чи пул. Для виведення коштів можуть діяти обмеження або може знадобитися верифікація. Деталі наведено в правилах винагород і безплатному посібнику з майнінгу Bitcoin. Діють умови.
Поширені запитання
Що таке доказ роботи простими словами?
Це спосіб зробити додавання блоку справжньою роботою. Майнерам доводиться знову й знову хешувати заголовок блоку, змінюючи число під назвою nonce, доки результат не стане меншим за цільове значення. Щоб знайти такий хеш, потрібні величезні кількості спроб, але перевірити його може кожен одним хешуванням.
Що таке нонс у Біткоїні?
Число розміром 4 байтів у заголовку блока, яке майнери змінюють під час кожної спроби. Воно має близько 4,3 мільярда можливих значень. Коли вони вичерпуються, майнери змінюють додатковий nonce у транзакції coinbase. Це дає новий корінь Меркла й новий набір хешів.
Чому Біткоїн двічі застосовує SHA-256?
Bitcoin хешує заголовок розміром 80 байтів за допомогою SHA-256, а потім хешує результат ще раз. Сатоші так і не пояснив цей вибір. Зазвичай вважають, що це захищає від атак із подовженням довжини й додає запас безпеки.
Що дозволяє зробити атака з часткою 51%?
Той, хто контролює більшу частину хешрейту, може приватно створити довший ланцюг і замінити нещодавні блоки. Так він може двічі витратити власні монети або блокувати деякі транзакції. Але він не може витрачати чужі монети, створювати монети всупереч правилам чи змінювати правила для всіх.
Чи кращий Proof of Stake за Proof of Work?
Він споживає значно менше енергії, а безпеку забезпечують монети, заблоковані як стейк. Proof of Work прив’язує безпеку до зовнішніх витрат — електроенергії та обладнання — і працює в Bitcoin із 2009 року. У кожного підходу свої компроміси, тож вибір залежить від того, що для тебе важливо.
Can I get bitcoin mining rewards without my own hardware?
Yes. In the CloudMineCrypto app you claim free mining plans (the free plan, ads, games, offers and a daily check-in) and your estimated BTC ticks up while they run, then you withdraw to your own wallet. Rewards are estimates based on your plan’s hashrate and live network data, they aren’t guaranteed, and a plan doesn’t give ownership of any hardware.
Джерела та що почитати далі
- Bitcoin: A Peer-to-Peer Electronic Cash System (whitepaper) · Сатоші Накамото, bitcoin.org
- Гід по блокчейну: заголовки блоків, proof of work, coinbase · Документація розробника Bitcoin
- Посібник з майнінгу: соло-майнінг, пули, getblocktemplate · Документація розробника Bitcoin
- Складність · Bitcoin Wiki
- Підтвердження · Bitcoin Wiki
- Cambridge Bitcoin Electricity Consumption Index · Cambridge Centre for Alternative Finance
- Панель майнінгу: хешрейт, складність, нещодавні блоки · mempool.space
Поточні дані на цій сторінці надходять з API CloudMineCrypto або з указаних поруч загальнодоступних сервісів даних блокчейну, оновлюються за розкладом і позначені там, де відображаються. Цей посібник має освітню мету й не є фінансовою порадою. CloudMineCrypto не є інвестиційним продуктом; винагороди в застосунку є приблизними й не гарантовані.
Ти вже прочитав(ла), як це працює. Тепер подивися, як це відбувається.
Забери безплатний майнінг-план на 8 годин у застосунку CloudMineCrypto і дивись, як зростає твій оціночний BTC на основі живих даних мережі. Без заліза, без картки.