Біткойн протокол вразливість: атака на спотворення часу
У березні 2025 року спільнота розробників Біткойн запропонувала м'який форк під назвою "Велика чистка консенсусу". Ця пропозиція має на меті виправити кілька вразливостей і слабкостей, які довгий час існували в протоколі Біткойн, зокрема проблему повторних транзакцій, яку ми нещодавно обговорювали. Інша, більш серйозна вразливість, відома як "атака на спотворення часу", на якій ми зосередимо увагу в цій статті.
Захисний механізм часових міток блоків Біткойн
Перед обговоренням атак на спотворення часу, нам потрібно зрозуміти правила захисту від маніпуляцій з часом в поточній мережі Біткойн:
Медіана минулого часу ( MPT ) правила: часовий штамп нового блоку повинен бути пізніше медіани часових штампів попередніх 11 блоків.
Правила часу блоків у майбутньому: мітка часу нового блоку не може бути більше ніж на 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 секунди. Ця незначна різниця не є суттєвою в реальному виконанні, оскільки з моменту створення Біткойна середній інтервал блокування постійно підтримується на рівні приблизно 9 хвилин 36 секунд, що явно менше за 10 хвилин. Це також пояснює, чому недавня подія з півріччям відбудеться раніше у квітні 2024 року, а не в січні 2025 року. Хоча ця помилка в 0,3 секунди здається незначною, вона породила більш серйозну вразливість.
Принцип атаки спотворення часу
Атака на спотворення часу була вперше виявлена приблизно в 2011 році, вона використовує помилку Сатоші в розрахунках складності. Припустимо, що видобуток повністю централізований, майнери можуть встановлювати часові позначки в межах, дозволених протоколом. Атакуючий буде встановлювати часові позначки більшості блоків на одну секунду раніше, ніж у попереднього блоку, змушуючи блокчейн повільно просуватися в часі, дотримуючись правил MTP. Щоб максимально сповільнити просування часу, атакуючий може протягом шести блоків підтримувати однакову часову позначку, а потім на сьомому блоці додати одну секунду, повторюючи цей процес.
Ця операція призводить до того, що час у блокчейні поступово відстає від реального часу, водночас складність постійно зростає, ускладнюючи видобуток. Однак, щоб посилити ефект атаки, зловмисники встановлюють мітку часу на реальний світовий час у останньому блоці кожного циклу коригування складності. А перший блок наступного циклу буде встановлений назад у минуле, лише на одну секунду раніше від передостаннього блоку попереднього циклу. Цей підхід все ще відповідає правилам MTP, оскільки один винятковий випадок не вплине на медіану 11 блоків.
Після реалізації цієї атаки, складність першого циклу не буде під впливом. Але з другого циклу корекції, складність почне суттєво знижуватися. Після цього зловмисники можуть створювати блоки з дуже швидкою швидкістю, потенційно карбуючи велику кількість Біткойн, отримуючи прибуток.
Аналіз здійсненності атаки
Хоча теоретично така атака має руйнівний характер, на практиці її реалізації стоїть багато викликів:
Можливо, потрібно контролювати більшість мережевої потужності.
Існування чесних майнерів збільшить складність атак.
Правила MTP та чесний часовий штамп обмежать ступінь зворотного відстеження зловмисних часових штампів.
Якщо чесний майнер створить перший блок у вікні корекції складності, атака цього циклу буде недійсною.
Процес атаки видимий для всіх, що може спровокувати термінове м'яке розгалуження для виправлення.
Потенційні рішення
Існує кілька можливих способів виправити цю вразливість:
Змінити алгоритм регулювання складності, обчислюючи часовий проміжок між різними вікнами блоків 2016, одночасно виправляючи помилку "не вистачає одного". Але це може вимагати хард-форка.
Скасувати правила MTP, вимагати, щоб час кожного блоку строго збільшувався. Але це може призвести до надмірного випередження часових міток або до проблем через різницю в годинах між майнерами.
Простішим рішенням є вимога, щоб час першого блоку нового циклу складності не був раніше певної кількості хвилин від останнього блоку попереднього циклу. Наразі обговорюваний діапазон часу коливається від 10 хвилин до 2 годин.
У новій пропозиції щодо очищення великого консенсусу розробники схиляються до використання обмеження в 2 години. Цей проміжок часу становить приблизно 0,6% від цільового часу циклу корекції складності, що може ефективно обмежити можливості маніпуляцій зі зниженням складності.
Незалежно від того, який варіант буде обрано в кінцевому підсумку, виправлення цього довготривалого вразливості ще більше зміцнить безпеку та стабільність мережі Біткойн.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
20 лайків
Нагородити
20
6
Поділіться
Прокоментувати
0/400
TeaTimeTrader
· 07-07 18:30
Цей баг справді заважає криптосвіту.
Переглянути оригіналвідповісти на0
GasFeeCrier
· 07-07 15:25
Цілий день кричать, що газ дорогий, це не жарти.
Переглянути оригіналвідповісти на0
ShibaOnTheRun
· 07-04 22:21
Я вбив, щоб подивитися, це питання серйозне.
Переглянути оригіналвідповісти на0
NeverPresent
· 07-04 22:15
Рано чи пізно щось станеться, не думав, що так швидко.
Переглянути оригіналвідповісти на0
ChainComedian
· 07-04 22:07
Не хвилюйтеся, майнери не дурні.
Переглянути оригіналвідповісти на0
GasWastingMaximalist
· 07-04 21:59
Знову потрібно змінити консенсус, btc справді багато проблем.
Вразливість протоколу Біткойн: атака на спотворення часу може призвести до масованого маніпулювання складністю
Біткойн протокол вразливість: атака на спотворення часу
У березні 2025 року спільнота розробників Біткойн запропонувала м'який форк під назвою "Велика чистка консенсусу". Ця пропозиція має на меті виправити кілька вразливостей і слабкостей, які довгий час існували в протоколі Біткойн, зокрема проблему повторних транзакцій, яку ми нещодавно обговорювали. Інша, більш серйозна вразливість, відома як "атака на спотворення часу", на якій ми зосередимо увагу в цій статті.
Захисний механізм часових міток блоків Біткойн
Перед обговоренням атак на спотворення часу, нам потрібно зрозуміти правила захисту від маніпуляцій з часом в поточній мережі Біткойн:
Медіана минулого часу ( MPT ) правила: часовий штамп нового блоку повинен бути пізніше медіани часових штампів попередніх 11 блоків.
Правила часу блоків у майбутньому: мітка часу нового блоку не може бути більше ніж на 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 секунди. Ця незначна різниця не є суттєвою в реальному виконанні, оскільки з моменту створення Біткойна середній інтервал блокування постійно підтримується на рівні приблизно 9 хвилин 36 секунд, що явно менше за 10 хвилин. Це також пояснює, чому недавня подія з півріччям відбудеться раніше у квітні 2024 року, а не в січні 2025 року. Хоча ця помилка в 0,3 секунди здається незначною, вона породила більш серйозну вразливість.
Принцип атаки спотворення часу
Атака на спотворення часу була вперше виявлена приблизно в 2011 році, вона використовує помилку Сатоші в розрахунках складності. Припустимо, що видобуток повністю централізований, майнери можуть встановлювати часові позначки в межах, дозволених протоколом. Атакуючий буде встановлювати часові позначки більшості блоків на одну секунду раніше, ніж у попереднього блоку, змушуючи блокчейн повільно просуватися в часі, дотримуючись правил MTP. Щоб максимально сповільнити просування часу, атакуючий може протягом шести блоків підтримувати однакову часову позначку, а потім на сьомому блоці додати одну секунду, повторюючи цей процес.
Ця операція призводить до того, що час у блокчейні поступово відстає від реального часу, водночас складність постійно зростає, ускладнюючи видобуток. Однак, щоб посилити ефект атаки, зловмисники встановлюють мітку часу на реальний світовий час у останньому блоці кожного циклу коригування складності. А перший блок наступного циклу буде встановлений назад у минуле, лише на одну секунду раніше від передостаннього блоку попереднього циклу. Цей підхід все ще відповідає правилам MTP, оскільки один винятковий випадок не вплине на медіану 11 блоків.
Після реалізації цієї атаки, складність першого циклу не буде під впливом. Але з другого циклу корекції, складність почне суттєво знижуватися. Після цього зловмисники можуть створювати блоки з дуже швидкою швидкістю, потенційно карбуючи велику кількість Біткойн, отримуючи прибуток.
Аналіз здійсненності атаки
Хоча теоретично така атака має руйнівний характер, на практиці її реалізації стоїть багато викликів:
Потенційні рішення
Існує кілька можливих способів виправити цю вразливість:
Змінити алгоритм регулювання складності, обчислюючи часовий проміжок між різними вікнами блоків 2016, одночасно виправляючи помилку "не вистачає одного". Але це може вимагати хард-форка.
Скасувати правила MTP, вимагати, щоб час кожного блоку строго збільшувався. Але це може призвести до надмірного випередження часових міток або до проблем через різницю в годинах між майнерами.
Простішим рішенням є вимога, щоб час першого блоку нового циклу складності не був раніше певної кількості хвилин від останнього блоку попереднього циклу. Наразі обговорюваний діапазон часу коливається від 10 хвилин до 2 годин.
У новій пропозиції щодо очищення великого консенсусу розробники схиляються до використання обмеження в 2 години. Цей проміжок часу становить приблизно 0,6% від цільового часу циклу корекції складності, що може ефективно обмежити можливості маніпуляцій зі зниженням складності.
Незалежно від того, який варіант буде обрано в кінцевому підсумку, виправлення цього довготривалого вразливості ще більше зміцнить безпеку та стабільність мережі Біткойн.