У березні 2025 року один із розробників Біткойн запропонував м'який форк під назвою "Великий консенсус очищення". Це оновлення має на меті виправити кілька довгострокових вразливостей і слабкостей у протоколі Біткойн, серед яких — проблема повторних транзакцій, про яку ми вже говорили. У цій статті буде особливо розглянуто ще одну, більш серйозну вразливість — "атака спотворення часу".
Механізм захисту таймстемпа блоків Біткойн
Перш ніж глибше дослідити атаку на спотворення часу, нам потрібно зрозуміти поточні правила захисту від маніпуляцій з часом:
Середній минулий час (MPT) правило: Часова мітка блоку повинна бути пізнішою за середній час попередніх одинадцяти блоків.
Правило часу майбутнього блоку: часова мітка блоку не повинна перевищувати середній час вузла більше ніж на 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 хвилин. Це в основному пов'язано з безперервним зростанням мережевої потужності з 2009 року.
Принцип атаки спотворення часу
Атака на спотворення часу була вперше виявлена приблизно в 2011 році, і вона використовує цю невелику помилку в розрахунках складності. Припустимо, що видобуток повністю централізований, майнери можуть встановлювати мітки часу в межах, дозволених протоколом. У цій атаці майнери встановлюють мітки часу більшості блоків на 1 секунду пізніше, ніж попередній блок, що дозволяє блокчейну повільно рухатися в часі, дотримуючись правил MPT. Щоб якомога більше сповільнити просування часу, майнери можуть підтримувати однакову мітку часу протягом шести послідовних блоків, а потім на сьомому блоці додати 1 секунду, і так по колу.
Ця операція призведе до того, що час блокчейну поступово відставатиме від реального часу, а складність постійно зростатиме, ускладнюючи видобуток. Однак, щоб посилити ефект атаки, майнери в останньому блоці кожного періоду корекції складності встановлюють мітку часу на реальний світовий час. А в першому блоці наступного періоду мітка часу буде встановлена на минуле, всього на 1 секунду пізніше, ніж передостанній блок попереднього періоду. Ця практика все ще відповідає правилам MPT, оскільки окреме аномальне значення не вплине суттєво на медіану 11 блоків.
Таким чином, після першого циклу складність не зазнає впливу. Але з другого циклу коригування складність почне знижуватись. У цей момент майнери можуть дуже швидко створювати блоки, потенційно генеруючи велику кількість Біткойн, що може дозволити їм отримати прибуток, продаючи ці монети.
Аналіз життєздатності атаки
Хоча теоретично така атака має руйнівний характер, її реалізації заважає безліч викликів:
Можливо, потрібно контролювати більшість мережевої обчислювальної потужності.
Існування чесних майнерів збільшить складність атак.
Правила MTP та чесні тимчасові мітки можуть обмежити ступінь зворотного ходу зловмисних тимчасових міток.
Якщо чесний майнер створить перший блок у будь-якому вікні налаштування складності, атака цього циклу буде неефективною.
Процес атаки видимий для всіх, що може надати достатньо часу для впровадження термінового м'якого форка для виправлення.
Потенційні рішення
Виправлення цього вразливості відносно просте, але може вимагати змін у протоколі м'якого форку. Деякі можливі рішення включають:
Змінити алгоритм коригування складності, розрахувати часовий проміжок між різними вікнами блоків 2016 і повністю виправити помилку "на один менше".
Скасувати правила MTP, вимагати, щоб мітки часу кожного блоку строго збільшувалися.
Налаштування нових обмежувальних правил, що вимагає, щоб час першого блоку нового періоду складності не був раніше визначеного числа хвилин від останнього блоку попереднього періоду (рекомендований діапазон від 10 хвилин до 2 годин).
У останній пропозиції щодо очищення великої консенсусу розробники схиляються до введення 2-годинного обмеження часу. Це обмеження становить близько 0,6% від цільового часу циклу коригування складності і може ефективно стримувати можливість зниження складності.
Незалежно від того, яке рішення буде прийнято в кінцевому підсумку, виправлення цього вразливості ще більше зміцнить безпеку та стабільність мережі Біткойн, закладаючи більш надійний фундамент для її довгострокового розвитку.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
19 лайків
Нагородити
19
7
Репост
Поділіться
Прокоментувати
0/400
MysteryBoxOpener
· 08-01 13:07
Стільки вразливостей? Кожен день.
Переглянути оригіналвідповісти на0
WhaleSurfer
· 07-31 23:38
Знову займаються цими хитромудрими способами атаки
Переглянути оригіналвідповісти на0
TokenTherapist
· 07-29 20:38
Знову щось затіваєш?
Переглянути оригіналвідповісти на0
ZenZKPlayer
· 07-29 20:20
btc насправді безпечний чи ні... після прочитання трохи лячно
Переглянути оригіналвідповісти на0
CryptoPunster
· 07-29 20:15
Цей напад стає все більш заплутаним, навіть час починає грати в пастки.
Переглянути оригіналвідповісти на0
PositionPhobia
· 07-29 20:13
Теорії багато, а впровадження мало.
Переглянути оригіналвідповісти на0
GateUser-3824aa38
· 07-29 20:12
Теорій багато, справді наважишся трохи потривожити btc?
Атака на перекручування часу Біткойна: аналіз потенційних загроз і варіантів виправлення
Безпека Біткойна: аналіз атак на спотворення часу
У березні 2025 року один із розробників Біткойн запропонував м'який форк під назвою "Великий консенсус очищення". Це оновлення має на меті виправити кілька довгострокових вразливостей і слабкостей у протоколі Біткойн, серед яких — проблема повторних транзакцій, про яку ми вже говорили. У цій статті буде особливо розглянуто ще одну, більш серйозну вразливість — "атака спотворення часу".
Механізм захисту таймстемпа блоків Біткойн
Перш ніж глибше дослідити атаку на спотворення часу, нам потрібно зрозуміти поточні правила захисту від маніпуляцій з часом:
Середній минулий час (MPT) правило: Часова мітка блоку повинна бути пізнішою за середній час попередніх одинадцяти блоків.
Правило часу майбутнього блоку: часова мітка блоку не повинна перевищувати середній час вузла більше ніж на 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 хвилин. Це в основному пов'язано з безперервним зростанням мережевої потужності з 2009 року.
Принцип атаки спотворення часу
Атака на спотворення часу була вперше виявлена приблизно в 2011 році, і вона використовує цю невелику помилку в розрахунках складності. Припустимо, що видобуток повністю централізований, майнери можуть встановлювати мітки часу в межах, дозволених протоколом. У цій атаці майнери встановлюють мітки часу більшості блоків на 1 секунду пізніше, ніж попередній блок, що дозволяє блокчейну повільно рухатися в часі, дотримуючись правил MPT. Щоб якомога більше сповільнити просування часу, майнери можуть підтримувати однакову мітку часу протягом шести послідовних блоків, а потім на сьомому блоці додати 1 секунду, і так по колу.
Ця операція призведе до того, що час блокчейну поступово відставатиме від реального часу, а складність постійно зростатиме, ускладнюючи видобуток. Однак, щоб посилити ефект атаки, майнери в останньому блоці кожного періоду корекції складності встановлюють мітку часу на реальний світовий час. А в першому блоці наступного періоду мітка часу буде встановлена на минуле, всього на 1 секунду пізніше, ніж передостанній блок попереднього періоду. Ця практика все ще відповідає правилам MPT, оскільки окреме аномальне значення не вплине суттєво на медіану 11 блоків.
Таким чином, після першого циклу складність не зазнає впливу. Але з другого циклу коригування складність почне знижуватись. У цей момент майнери можуть дуже швидко створювати блоки, потенційно генеруючи велику кількість Біткойн, що може дозволити їм отримати прибуток, продаючи ці монети.
Аналіз життєздатності атаки
Хоча теоретично така атака має руйнівний характер, її реалізації заважає безліч викликів:
Потенційні рішення
Виправлення цього вразливості відносно просте, але може вимагати змін у протоколі м'якого форку. Деякі можливі рішення включають:
У останній пропозиції щодо очищення великої консенсусу розробники схиляються до введення 2-годинного обмеження часу. Це обмеження становить близько 0,6% від цільового часу циклу коригування складності і може ефективно стримувати можливість зниження складності.
Незалежно від того, яке рішення буде прийнято в кінцевому підсумку, виправлення цього вразливості ще більше зміцнить безпеку та стабільність мережі Біткойн, закладаючи більш надійний фундамент для її довгострокового розвитку.