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

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

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

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

Механізм захисту часових міток блоків Біткойна

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

  1. Середній минулий час (MPT) правило: час блокування повинен бути пізніше середнього часу перших одинадцяти блоків.

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

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

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

Помилка в алгоритмі корекції складності

Період коригування складності Біткойна складає 2016 блоків, що приблизно дорівнює двом тижням, якщо враховувати цільовий час видобутку блоку в 10 хвилин. При розрахунку коригування складності видобутку протокол розраховує різницю між часовими мітками першого та останнього блоку у відповідному вікні з 2016 блоків. Це вікно фактично містить 2015 інтервалів між блоками (2016 мінус 1). Таким чином, ідеальною цільовою тривалістю має бути 60 секунд × 10 хвилин × 2015 інтервалів = 1,209,000 секунд.

Однак, протокол Біткойн використовує число 2016 для розрахунків: 60 секунд × 10 хвилин × 2016 = 1,209,600 секунд. Це класична помилка "на один менше", яка, ймовірно, виникла через плутанину між кількістю блоків і кількістю інтервалів між блоками.

Ця похибка призвела до того, що цільовий час перевищує фактично необхідний на 0,05%. Іншими словами, фактичний цільовий інтервал між блоками Біткойна не становить 10 хвилин, а 10 хвилин і 0,3 секунди. Хоча ця похибка здається незначною, вона створює можливості для атак на спотворення часу.

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

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

  1. Для більшості блоків встановіть мітку часу на одну секунду вперед від попереднього блоку, дотримуючись правил MPT.

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

  3. В останньому блоці кожного періоду коригування складності встановіть мітку часу на реальний світовий час.

  4. Часовий штамп першого блоку наступного вікна корекції складності встановлено в минуле, на одну секунду раніше, ніж передостанній блок попереднього циклу.

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

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

Здійсненість атаки та виклики

Хоча ця атака теоретично має руйнівний характер, її реалізація стикається з багатьма викликами:

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

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

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

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

  1. Змінити алгоритм налаштування складності, розрахувати часовий проміжок між різними вікнами блоків 2016, одночасно виправивши помилку "нехай один".
  2. Скасувати правила MTP, змінити вимогу, щоб час кожного блоку обов'язково просувався вперед.
  3. Встановити нові обмеження, які вимагатимуть, щоб час першого блоку нового періоду складності не був раніше певного проміжку часу останнього блоку попереднього періоду (наприклад, 10 хвилин або 2 години).

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

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

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

BTC-2.85%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 8
  • Поділіться
Прокоментувати
0/400
GasFeeNightmarevip
· 07-21 22:12
All in також потрібно чекати, поки виправлять уразливості
Переглянути оригіналвідповісти на0
SignatureCollectorvip
· 07-20 01:25
А це, виправлення помилок доведеться чекати ще два роки?
Переглянути оригіналвідповісти на0
rekt_but_vibingvip
· 07-18 22:42
Спочатку увійти в позицію, а потім купити квиток.
Переглянути оригіналвідповісти на0
DegenApeSurfervip
· 07-18 22:39
Ця жахлива уразливість затрималася аж на 25 років.
Переглянути оригіналвідповісти на0
SlowLearnerWangvip
· 07-18 22:39
Виявляється, Біткойн також може подорожувати в часі!
Переглянути оригіналвідповісти на0
AirdropSweaterFanvip
· 07-18 22:32
Знову стара пісня, коли ж закінчать?
Переглянути оригіналвідповісти на0
SnapshotStrikervip
· 07-18 22:29
Знову виявили нову помилку? Чекати, поки вона вибухне, буде цікаво.
Переглянути оригіналвідповісти на0
RugResistantvip
· 07-18 22:18
нарешті хтось помітив цю критичну уразливість. аналізую це вже кілька місяців... розробники сплять на цьому, чесно кажучи
Переглянути оригіналвідповісти на0
  • Закріпити