Обговорення аналізу та виправлення вразливості часової деформації протоколу Біткойн

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

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

Огляд

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

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

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

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

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

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

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

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

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

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

Однак, Сатоші Накамото зробив невелику, але помітну помилку в оригінальному коді. Він використовував 2016, а не 2015 для розрахунку цільового часу, що призвело до того, що цільовий час був на 0.05% довшим, ніж насправді. Це означає, що фактичний цільовий інтервал між блоками Біткойна становить 10 хвилин і 0.3 секунди, а не точно 10 хвилин.

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

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

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

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

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

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

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

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

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

Реалістичність атак та виклики

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

  1. Потрібно контролювати більшість мережевої потужності.

  2. Існування чесних майнерів підвищить складність атак.

  3. Якщо чесний майнер згенерує перший блок у будь-якому вікні корекції складності, атака цього циклу виявиться неефективною.

  4. Процес атаки є відкритим і видимим, що може призвести до термінового м'якого хардфорку для виправлення.

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

Рішення

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

  1. Змінити алгоритм коригування складності, обчислити часовий проміжок між різними вікнами в 2016 блоків.

  2. Скасування правил MPT, вимога до строго зростаючого часу штампа для кожного блоку.

  3. Встановіть нові обмежувальні правила: Час першого блоку нового періоду складності не може бути раніше певної кількості хвилин останнього блоку попереднього періоду (, наприклад, 2 години ).

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

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

Висновок

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

BTC1.44%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 4
  • Поділіться
Прокоментувати
0/400
SocialAnxietyStakervip
· 11год тому
Варто детально дослідити виправлення вразливостей
Переглянути оригіналвідповісти на0
ser_we_are_ngmivip
· 16год тому
BTC також може бути атакований
Переглянути оригіналвідповісти на0
GateUser-1a2ed0b9vip
· 16год тому
Ключова вразливість дійсно складна
Переглянути оригіналвідповісти на0
InscriptionGrillervip
· 16год тому
Що б не змінилося, не працює.
Переглянути оригіналвідповісти на0
  • Закріпити