Біткойн протокол часового спотворення атаки вразливість розкриття та план ремонту

robot
Генерація анотацій у процесі

Вразливість атаки на часовий спотворення в протоколі Біткойн

26 березня 2025 року один із розробників Біткойн запропонував нову пропозицію щодо вдосконалення, що має на меті виправлення кількох вразливостей і слабкостей, які тривалий час існують у протоколі Біткойн, через м'який форк. Однією з вразливостей, на яку варто звернути увагу, є "атака на спотворення часу", яка стане темою для глибшого обговорення в цій статті.

Захист часових міток Біткойна

Перед обговоренням атаки на спотворення часу, нам потрібно зрозуміти поточні правила захисту Біткойн від маніпуляцій з часом:

  1. Медіана минулого часу (MPT) правила: Часова мітка блоку повинна бути пізнішою за медіанний час попередніх 11 блоків.

  2. Правила часу блоків у майбутньому: Часова позначка блоку не може перевищувати середній час рівноправних вузлів більше ніж на 2 години. Крім того, максимальна різниця між часом вузла та локальним системним годинником становить 90 хвилин.

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

Біткойн безпека вразливість: атака на спотворення часу

Помилка обчислень у протоколі

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

Правильний розрахунок має бути: 60 секунд * 10 хвилин * 2015 інтервалів = 1,209,000 секунд. Але насправді використовується: 60 секунд * 10 хвилин * 2016 = 1,209,600 секунд. Ця помилка в 0.05% призвела до того, що цільовий час став довшим, ніж має бути, на 0.05%, внаслідок чого фактичний цільовий інтервал часу для Біткойн становить 10 хвилин і 0.3 секунди.

Хоча ця помилка в 0,3 секунди виглядає незначною, вона пов'язана з ще однією серйознішою проблемою. Розрахунок складності базується на першому та останньому блоках у кожному вікні з 2016 блоків, а не на різниці між останнім блоком попереднього вікна та останнім блоком поточного вікна. Такий спосіб розрахунку створює можливості для атак на спотворення часу.

Біткойн безпека вразливості: атака спотворення часу

Принцип атаки спотворення часу

Атака на спотворення часу була вперше виявлена приблизно у 2011 році. У цій атаці, припускаючи, що майнінг повністю централізований, зловмисник може маніпулювати часовими мітками блоків наступним чином:

  1. Для більшості блоків встановіть мітку часу, яка на одну секунду випереджає мітку часу попереднього блоку.
  2. Кожні шість блоків зберігають однаковий часовий штамп, а потім у наступному блоці додається одна секунда.
  3. У останньому блоці кожного періоду коригування складності встановіть мітку часу на реальний світовий час.
  4. Часовий штамп першого блоку нового циклу налаштування складності був встановлений у минуле, на секунду раніше, ніж передостанній блок попереднього циклу.

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

Біткойн безпекова уразливість: атака викривлення часу

Вплив імовірності атаки

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

  1. Потрібно контролювати більшість мережевих обчислень.
  2. Існування чесних майнерів збільшить складність атак.
  3. Процес атаки повністю видимий, може спровокувати термінове виправлення.
  4. Правила MTP та часові мітки чесних майнерів обмежать ефект атаки.

Біткойн безпекова вразливість: атака на спотворення часу

Потенційні рішення

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

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

Це обмеження в 2 години становить приблизно 0,6% від цільового часу циклу коригування складності, що значно обмежує можливості зниження складності. Хоча це все ще дозволяє зловмисникам знижувати складність приблизно на 0,6% за кожен цикл, це лише одноразова зміна, яка не може накопичуватися.

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

Біткойн безпека вразливості: атака на спотворення часу

BTC0.6%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 4
  • Поділіться
Прокоментувати
0/400
P2ENotWorkingvip
· 12год тому
Що за фігня, хто може вирішити, звертайтеся до мене.
Переглянути оригіналвідповісти на0
FlashLoanLordvip
· 12год тому
Цю проблему давно треба було вирішити.
Переглянути оригіналвідповісти на0
HodlBelievervip
· 12год тому
Блокчейн банкіри/експерти з оцінки ризиків/дотримуються 4 років щоденного технічного аналізу ціни закриття

З точки зору базового управління ризиками це необхідне виправлення
Переглянути оригіналвідповісти на0
PerennialLeekvip
· 12год тому
Так багато вразливостей, не буду грати! Розходимося, розходимося!
Переглянути оригіналвідповісти на0
  • Закріпити