Складність майнінгу Біткоїна: як працює коригування кожні 2,016 блоків
Біткоїн спроєктовано так, щоб майнери не могли прискорити його роботу. Якщо завтра до мережі приєднається вдвічі більше обладнання, блоки все одно мають знаходитися в середньому приблизно кожні десять хвилин. Складність — це регулятор, який підтримує такий темп.
У цій статті розглянуто, що вимірює складність, як вона пов’язана з цільовим значенням, як відбувається коригування кожні 2,016 блоків, навіщо воно потрібне та що означають і чого не означають зміни складності. Тут не наведено поточних значень складності й не прогнозується наступне коригування, оскільки і те, й інше залежить від швидкості знаходження блоків.
Що вимірює складність майнінгу
Bitcoin Wiki описує складність як показник того, наскільки важко знайти хеш, нижчий за задане цільове значення. Майнінг радше схожий на лотерею, ніж на розв’язання складної задачі з визначеною умовою. Кожен хеш фактично дає випадкове число, і якщо воно нижче за цільове значення, майнер знаходить блок. Якщо ні, майнер змінює nonce і пробує знову.
Отже, складність не стосується того, наскільки складні математичні обчислення. Вона показує, скільки спроб у середньому потрібно майнеру, щоб досягти успіху. У документації для розробників Біткоїна визначено мінімально допустиму складність, яка називається складністю 1, а поточну складність виражають відносно неї.
Цільове значення та складність
Цільове значення — це 256-бітове число, спільне для всього програмного забезпечення Біткоїна. Хеш заголовка блока має бути меншим за це значення або дорівнювати йому, щоб блок було прийнято. Як зазначає Bitcoin Wiki, що нижче цільове значення, то складніше згенерувати блок. Складність описує ту саму ідею з іншого боку: вища складність означає нижче цільове значення. Як пояснюється у статті про хешрейт, Bitcoin Wiki також наводить приблизне правило: у середньому для знаходження блока потрібно кількість хешів, що дорівнює складності, помноженій на 2 у степені 32.
Як працює коригування кожні 2,016 блоків
Відлік ведеться за блоками, а не днями. Кожні 2,016 блоків — це зайняло б два тижні, якби блоки з’являлися рівно кожні десять хвилин — кожен вузол Біткоїна порівнює фактичний час знаходження цих блоків із цільовими двома тижнями, як пояснює Bitcoin Wiki. Цільове значення змінюється на відсоток відхилення. Якщо блоки знаходили швидше, ніж планувалося, цільове значення знижується, а майнінг стає складнішим. Якщо повільніше — цільове значення підвищується, а майнінг стає легшим.
Під час одного коригування цільове значення не може змінитися більше ніж у чотири рази в будь-який бік, що запобігає різким коливанням. Ніхто не встановлює складність. Кожен вузол самостійно обчислює її на основі блокчейна за тим самим правилом, а програмне забезпечення Bitcoin Core містить правило про цільовий період у два тижні та інтервал у 2,016 блоків.
Оскільки запуск коригування залежить від кількості блоків, «два тижні» — це лише приблизна оцінка, а наступне коригування не можна прив’язати до конкретної календарної дати. Воно відбудеться раніше, якщо блоки знаходитимуть швидше, і пізніше, якщо повільніше.
Навіщо Біткоїн коригує складність
У white paper Біткоїна пояснюється мета цього механізму. Щоб компенсувати зростання швидкодії обладнання та змінний з часом інтерес до запуску вузлів, складність визначається за ковзним середнім, яке орієнтується на середню кількість блоків за годину. Якщо блоки генеруються надто швидко, складність зростає. Bitcoin Wiki додає, що стабільний темп — приблизно один блок кожні десять хвилин — забезпечує мережі стабільність і низьку затримку транзакцій.
Стабільний темп появи блоків також підтримує незмінним графік емісії. Згідно з документацією для розробників, субсидія блока Біткоїна зменшується вдвічі кожні 210,000 блоків. Тож приблизно стала кількість блоків на рік зберігає графік халвінгу на рівні приблизно чотирьох років, незалежно від обладнання, яке використовують майнери.
Що означають і чого не означають зміни складності
Коли складність зростає, попередні 2,016 блоків з’явилися швидше, ніж планувалося, що зазвичай означає, що до мережі приєдналося більше обчислювальних потужностей. Коли складність знижується, блоки з’являлися повільніше. Оскільки коригування відбувається лише раз за період, складність реагує на хешрейт із затримкою до одного періоду.
Зміна складності не впливає на винагороду за блок або графік пропозиції, адже обидва показники обчислюються в блоках. Вона змінює кількість спроб, потрібних для знаходження кожного блока, тому очікувана частка винагороди кожного майнера змінюється. Це опис умов майнінгу, а не сигнал про ціну біткоїна.
Нагадування від WEEX: показники складності не прогнозують прибутковість
WEEX нагадує користувачам, що складність і її коригування описують рівень конкуренції в майнінгу, а не те, чи отримає хтось прибуток і як зміняться ціни. Будьте обережні з рекламними пропозиціями, у яких складністю або «потужністю мережі» обґрунтовують обіцяну дохідність, адже ніхто не може гарантувати прибуток від майнінгу. Нікому не повідомляйте сід-фразу чи код підтвердження, навіть якщо хтось пропонує «майнити» для вас. Цей матеріал не є фінансовою порадою.
Висновок
Складність майнінгу показує, скільки спроб у середньому потрібно, щоб знайти дійсний блок. Кожні 2,016 блоків кожен вузол порівнює час їх знаходження з цільовим періодом у два тижні та коригує цільове значення — максимум у чотири рази, — щоб блоки й надалі з’являлися приблизно кожні десять хвилин. Складність реагує на хешрейт із затримкою і нічого не говорить про ціну.
Поширені запитання
1. Що таке складність майнінгу Біткоїна?
Це показник того, наскільки важко знайти хеш блока, нижчий за поточне цільове значення. За вищої складності майнерам у середньому потрібно більше спроб, щоб знайти дійсний блок.
2. Як часто коригується складність?
Кожні 2,016 блоків. Якщо блоки з’являються кожні десять хвилин, на це йде приблизно два тижні, але відлік ведеться за блоками, а не днями.
3. Чи коригується складність рівно кожні два тижні?
Ні. Фіксованою є кількість у 2,016 блоків, а час їх знаходження залежить від швидкості появи блоків, тому дату наступного коригування неможливо знати заздалегідь.
4. Що відбувається зі складністю, якщо майнери залишають мережу?
Блоки з’являються повільніше, а під час наступного коригування складність знижується. За одне коригування вона може змінитися максимум у чотири рази.
5. Чи означає вища складність вищу ціну біткоїна?
Ні. Складність описує активність майнінгу та швидкість знаходження блоків. Це не сигнал про ціну.