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

Біткойн часового спотворення атака: потенційна загроза безпеці

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

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

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

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

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

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

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

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

Помилка "на один" Сатоші Накамото

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

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

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

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

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

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

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

Потенційний вплив атаки

Якщо атака буде успішно реалізована, це може призвести до:

  1. Складність різко знизилася
  2. Швидкість генерування блоків значно зросла
  3. Створення великої кількості Біткойнів за короткий проміжок часу
  4. Може викликати ринковий хаос

Однак впровадження такої атаки стикається з багатьма викликами:

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

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

Рішення

Щоб виправити цю вразливість, існує кілька можливих методів:

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

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

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

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

BTC-2.65%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 4
  • Поділіться
Прокоментувати
0/400
LiquidityHuntervip
· 21год тому
В середині ночі знову виникла проблема безпеки, ціна різко впала, варто чи ні ловити можливість арбітражу.
Переглянути оригіналвідповісти на0
GasWastingMaximalistvip
· 21год тому
Що за фігня, знову змінюють правила?
Переглянути оригіналвідповісти на0
ZenMinervip
· 22год тому
Копаючи, заснув. В будь-якому випадку, ми не поспішаємо.
Переглянути оригіналвідповісти на0
faded_wojak.ethvip
· 22год тому
Цей баг звучить жахливо, весь день на нього дивишся.
Переглянути оригіналвідповісти на0
  • Закріпити