Вразливість атаки зі спотворенням часу протоколу Біткойн та її виправлення
26 березня 2025 року, розробники Біткойну запропонували м’який форк під назвою "Велике очищення консенсусу", метою якого є виправлення кількох вад і слабкостей, які тривалий час існують у протоколі Біткойну. Однією з найсерйозніших вад є "атака на спотворення часу", про яку ми детально розглянемо в цій статті.
Захист часових міток блоків Біткойн
Перед обговоренням атаки на спотворення часу нам потрібно зрозуміти поточні правила захисту від маніпуляцій з часом:
Середній минулий час ( MPT ) правило: Часова мітка блоку повинна бути пізнішою за середній час попередніх 11 блоків.
Правила часу блоків у майбутньому: часова мітка блоку не може бути більш ніж на 2 години раніше від медіанного часу рівноправних вузлів. Дозволена максимальна різниця між часом, наданим вузлом, та локальними системними годинами становить 90 хвилин.
Ці правила покликані забезпечити, щоб блок-мітки часу не були ні занадто запізнілими, ні занадто ранніми. Однак атака на спотворення часу здійснюється шляхом підробки міток часу, що відсуваються далеко в минуле.
Помилка "на один" Сатоші Накамото
Дифузійний період Біткойна складає 2016 блоків, що розраховується на основі цільового часу блоку в 10 хвилин, що приблизно дорівнює двом тижням. При розрахунку коригування складності видобутку протокол обчислює різницю між часовими мітками першого і останнього блоку у вікні з 2016 блоків. Однак, Сатоші Накамото зробив невелику помилку при розрахунку цільового часу: він використав 2016, а не 2015 як множник.
Ця помилка призвела до того, що цільовий час був на 0,05% довшим, ніж насправді, внаслідок чого фактичний цільовий інтервал часу для Біткойн складав 10 хвилин і 0,3 секунди. Хоча ця похибка здається незначною, вона заклала основу для більш серйозних вразливостей.
Принцип атаки викривлення часу
Атака на спотворення часу використовує помилку Сатоші Накамото у розрахунках складності. Зловмисники маніпулюють таймстемпами блоків, змушуючи блокчейн просуватися в часі повільніше, одночасно дотримуючись правил MTP. Конкретно, зловмисники можуть:
Для більшості блоків встановіть мітку часу на одну секунду раніше, ніж у попередньому блоці.
Кожні шість блоків часова мітка просувається вперед на одну секунду.
У останньому блоці кожного циклу коригування складності встановіть мітку часу на реальний світовий час.
Часова позначка першого блоку наступного періоду корекції складності знову повертається в минуле.
Ця операція призводить до того, що час блокчейну все більше відстає від реального часу, при цьому складність постійно зростає. Проте після другого циклу коригування складність почне знижуватися, і зловмисники зможуть створювати блоки з надзвичайно високою швидкістю, потенційно створюючи велику кількість Біткойн.
Реалізація атаки та обмеження
Хоча теоретично ця атака є руйнівною, її реалізації заважає безліч викликів:
Потрібно контролювати більшість обчислювальної потужності.
Існування чесних майнерів збільшить складність атак.
Правила 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.
17 лайків
Нагородити
17
5
Поділіться
Прокоментувати
0/400
JustHodlIt
· 07-11 01:42
Відчувається, що безпека стала ще більшою, все стало стабільніше~
Переглянути оригіналвідповісти на0
SchrodingerWallet
· 07-10 02:19
Дірки знову заповнені, просто і грубо.
Переглянути оригіналвідповісти на0
DefiEngineerJack
· 07-10 02:19
*насправді* ще один нетривіальний патч безпеки, який доводить перевагу PoW... бачив гірші експлойти в PoS, якщо чесно
Переглянути оригіналвідповісти на0
ProbablyNothing
· 07-10 01:57
btc виправив вразливість, тепер вже стабільно, вірно?
Переглянути оригіналвідповісти на0
MemecoinResearcher
· 07-10 01:53
виправлення на основі протоколу, але чи можемо отримати статистичну значущість?
Виправлення вразливості атаки на спотворення часу в протоколі Біткойн: Аналіз пропозиції з очищення великого консенсусу
Вразливість атаки зі спотворенням часу протоколу Біткойн та її виправлення
26 березня 2025 року, розробники Біткойну запропонували м’який форк під назвою "Велике очищення консенсусу", метою якого є виправлення кількох вад і слабкостей, які тривалий час існують у протоколі Біткойну. Однією з найсерйозніших вад є "атака на спотворення часу", про яку ми детально розглянемо в цій статті.
Захист часових міток блоків Біткойн
Перед обговоренням атаки на спотворення часу нам потрібно зрозуміти поточні правила захисту від маніпуляцій з часом:
Середній минулий час ( MPT ) правило: Часова мітка блоку повинна бути пізнішою за середній час попередніх 11 блоків.
Правила часу блоків у майбутньому: часова мітка блоку не може бути більш ніж на 2 години раніше від медіанного часу рівноправних вузлів. Дозволена максимальна різниця між часом, наданим вузлом, та локальними системними годинами становить 90 хвилин.
Ці правила покликані забезпечити, щоб блок-мітки часу не були ні занадто запізнілими, ні занадто ранніми. Однак атака на спотворення часу здійснюється шляхом підробки міток часу, що відсуваються далеко в минуле.
Помилка "на один" Сатоші Накамото
Дифузійний період Біткойна складає 2016 блоків, що розраховується на основі цільового часу блоку в 10 хвилин, що приблизно дорівнює двом тижням. При розрахунку коригування складності видобутку протокол обчислює різницю між часовими мітками першого і останнього блоку у вікні з 2016 блоків. Однак, Сатоші Накамото зробив невелику помилку при розрахунку цільового часу: він використав 2016, а не 2015 як множник.
Ця помилка призвела до того, що цільовий час був на 0,05% довшим, ніж насправді, внаслідок чого фактичний цільовий інтервал часу для Біткойн складав 10 хвилин і 0,3 секунди. Хоча ця похибка здається незначною, вона заклала основу для більш серйозних вразливостей.
Принцип атаки викривлення часу
Атака на спотворення часу використовує помилку Сатоші Накамото у розрахунках складності. Зловмисники маніпулюють таймстемпами блоків, змушуючи блокчейн просуватися в часі повільніше, одночасно дотримуючись правил MTP. Конкретно, зловмисники можуть:
Ця операція призводить до того, що час блокчейну все більше відстає від реального часу, при цьому складність постійно зростає. Проте після другого циклу коригування складність почне знижуватися, і зловмисники зможуть створювати блоки з надзвичайно високою швидкістю, потенційно створюючи велику кількість Біткойн.
Реалізація атаки та обмеження
Хоча теоретично ця атака є руйнівною, її реалізації заважає безліч викликів:
Рішення
Щоб запобігти атакам на спотворення часу, пропозиція рекомендує ввести просте правило на початку нового періоду складності: вимагати, щоб час першого блоку нового періоду не був раніше певного періоду часу перед останнім блоком попереднього періоду. Наразі обговорюваний період часу варіюється від 10 хвилин до 2 годин.
У новій пропозиції щодо очищення великого консенсусу цей проміжок часу встановлено на 2 години. Це обмеження складає лише 0,6% від цільового часу циклу корекції складності, ефективно обмежуючи можливість зниження складності.
Цей метод є простішим у порівнянні з безпосереднім зміною алгоритму корекції складності і не вимагає хард-форку. Він може ефективно запобігти атакам на спотворення часу і мінімізувати ризики випадкових недійсних блоків, при цьому залишаючись узгодженим з існуючими правилами таймстемпів майбутніх блоків.
Що впровадження цього виправлення, мережа Біткойн зможе краще протистояти потенційним атакам маніпуляції часом, що додатково зміцнить її безпеку та стабільність.