Біткойн стикається з атакою спотворення часу, вразливість протоколу викликає загрози безпеці

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

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

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

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

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

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

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

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

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

Проблема обчислення циклу коригування складності

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

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

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

Принцип атаки з викривленням часу

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BTC1.45%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 6
  • Репост
  • Поділіться
Прокоментувати
0/400
liquidation_surfervip
· 08-09 19:16
Знову доведеться платити за виправлення дірок, тьфу-тьфу.
Переглянути оригіналвідповісти на0
MeaninglessApevip
· 08-09 17:34
Знову знову знову вийшла вразливість, немає слів, сім'я
Переглянути оригіналвідповісти на0
GhostAddressHuntervip
· 08-09 17:34
Знайшли вразливість, є хтось? Скажи чорне, так чорне.
Переглянути оригіналвідповісти на0
GasWastervip
· 08-09 17:31
Атака є атакою, в будь-якому разі я не розумію, тому все закінчено.
Переглянути оригіналвідповісти на0
MEVHuntervip
· 08-09 17:11
хех, знайшов ще одну смачну вразливість... час - це лише ще одна змінна для маніпуляцій, чесно кажучи. спостерігав за цією вразливістю з часів тестової мережі
Переглянути оригіналвідповісти на0
ApeWithNoFearvip
· 08-09 17:10
Майнінг машини тільки лякають
Переглянути оригіналвідповісти на0
  • Закріпити