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

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

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

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 хвилин і 0,3 секунди. Хоча ця похибка здається незначною, вона пов'язана з ще однією серйознішою проблемою.

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

Атака на спотворення часу була вперше виявлена приблизно в 2011 році і використовувала помилку Сатоші Накамото в обчисленні складності. Зловмисники, маніпулюючи часовими мітками блоків, можуть штучно знижувати складність видобутку.

Кроки атаки такі:

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

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

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

Здійсненність та обмеження атаки

Хоча теоретично така атака має величезний вплив, її реалізації заважають деякі виклики:

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

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

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

Існує кілька можливих способів виправлення цього вразливості:

  1. Змінити алгоритм регулювання складності, обчислити часовий проміжок між різними вікнами 2016 та виправити помилку в один біт. Але це може вимагати хард-форку.

  2. Скасування правил MTP, які вимагають, щоб час у кожному блоці обов'язково переміщувався вперед. Але це може призвести до того, що час застрягне далеко в майбутньому або викличе проблеми через різницю в системних годинах.

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

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

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

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

BTC-2.76%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 8
  • Поділіться
Прокоментувати
0/400
BlockTalkvip
· 07-27 22:15
Не дарма це старий btc, такий міцний.
Переглянути оригіналвідповісти на0
defi_detectivevip
· 07-27 08:59
Гарно! Подорож у часі, так?
Переглянути оригіналвідповісти на0
DecentralizeMevip
· 07-27 07:12
Той, хто прийшов за BTC, напевно, і є старшим.
Переглянути оригіналвідповісти на0
VibesOverChartsvip
· 07-24 22:46
Увесь день безглуздо метушитися — це чиста трата електрики.
Переглянути оригіналвідповісти на0
CommunityJanitorvip
· 07-24 22:44
Хто мені розповість, що таке викривлений час?
Переглянути оригіналвідповісти на0
MetaRecktvip
· 07-24 22:33
btc стабільний, як гора Тай!
Переглянути оригіналвідповісти на0
UncleLiquidationvip
· 07-24 22:30
Шахрайство倒计时~
Переглянути оригіналвідповісти на0
failed_dev_successful_apevip
· 07-24 22:29
Майнер про 666 а грати в час можна ще цікавіше
Переглянути оригіналвідповісти на0
  • Закріпити