Вразливість атаки на спотворення часу в протоколі Біткойн
Розробник Біткойн Antoine Poinsot 26 березня 2025 року запропонував нову пропозицію щодо покращення, метою якої є виправлення кількох вразливостей і слабкостей, що існують у протоколі Біткойн, через оновлення м'яким форком. Однією з більш серйозних вразливостей є "атака на спотворення часу", про яку ми детально поговоримо в цій статті.
Протокол захисту часових міток блоку Біткойн
Перед обговоренням атак на спотворення часу, спочатку давайте згадаємо про чинні правила захисту від маніпуляцій з часом у мережі Біткойн:
Медіанне минуле час (MPT) правило: час блоків повинен бути пізніше ніж медіанний час останніх 11 блоків.
Майбутні правила часу блоків: час блоків не повинен перевищувати 2 години від середнього часу пірингових вузлів. Крім того, максимальна дозволена різниця між часом вузла та локальними системними годинами становить 90 хвилин, що також є заходом безпеки.
Правила MPT забезпечують, що часові мітки блоків не будуть занадто ретроактивними, тоді як правила майбутніх блоків заважають часовим міткам бути занадто попередніми. Варто зазначити, що неможливо впровадити заходи, подібні до правил майбутніх блоків, щоб запобігти використанню старих часових міток, оскільки це може вплинути на початковий процес синхронізації блокчейну. Атака на спотворення часу саме використовує можливість підробки архаїчних часових міток.
Маленька помилка Сатоші Накамото
Складність Біткойн налаштовується кожні 2016 блоків, що приблизно дорівнює двом тижням, виходячи з цільового часу створення блоку в 10 хвилин. Для розрахунку налаштування складності видобутку протокол обчислює різницю між часовими мітками першого і останнього блоку в відповідному вікні з 2016 блоків. Це вікно з 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, кожні 6 блоків потрібно підтримувати однаковий часовий штамп, а потім в наступному блоці збільшити час на 1 секунду.
У останньому блоці кожного циклу коригування складності встановіть мітку часу на реальний світовий час.
Перший блок наступного вікна коригування складності знову має бути зворотним часом, на 1 секунду раніше, ніж передостанній блок попереднього періоду.
Цей метод атаки призведе до того, що час блокчейну буде все більше відставати від реального часу, а рівень складності постійно зростатиме, ускладнюючи видобуток. Однак, починаючи з другого періоду коригування, рівень складності почне знижуватися. Атакуючий зможе потім дуже швидко створювати блоки, генеруючи велику кількість Біткойнів, отримуючи таким чином потенційні вигоди.
Здійсненність атак і виклики
Несмотря на теоретичну руйнівність такої атаки, на практиці її реалізація стикається з багатьма викликами:
Можливо, потрібно контролювати більшість мережевої обчислювальної потужності.
Існування чесних майнерів ускладнить атаки.
Правила MTP та чесний часовий штамп можуть обмежити ступінь зворотного відстеження зловмисних часових штампів.
Процес атаки видимий для всіх, може спровокувати термінове м'яке розгалуження для виправлення.
Потенційні рішення
Виправити цю вразливість відносно просто, але може знадобитися зміна протоколу м'якого форка. Просте рішення полягає в тому, щоб вимагати, щоб позначка часу першого блоку нового періоду складності не була раніше певної кількості хвилин останнього блоку попереднього періоду. У пропозиції Поансота цей часовий обмеження встановлено на 2 години, що приблизно становить 0,6% від цільового часу коригування складності, що ефективно обмежує масштаб маніпуляцій зі складністю.
Ці переваги обмеження в 2 години включають:
Мінімізувати ризик випадкових недійсних блоків
бути узгодженим з правилами часових міток блокчейну в майбутньому
Відносно консервативні зміни за нормальних обставин можуть бути більш гнучкими, ніж правила MTP
Однак, цей метод все ще дозволяє зловмисникам маніпулювати складністю приблизно на 0,6% за кожен цикл, але це буде одноразова зміна, яка не може накопичуватися.
В цілому, атаки на спотворення часу хоч і теоретично становлять загрозу, але їхнє реальне виконання є досить складним. За допомогою належного оновлення протоколу ми можемо додатково зміцнити безпеку та стабільність мережі Біткойн.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
25 лайків
Нагородити
25
5
Поділіться
Прокоментувати
0/400
LiquidationKing
· 07-13 07:37
Час потрібно захищати кодом
Переглянути оригіналвідповісти на0
DegenWhisperer
· 07-10 09:13
Софтфорк дійсно надійний?
Переглянути оригіналвідповісти на0
DarkPoolWatcher
· 07-10 09:09
Виправляти вразливості потрібно завчасно
Переглянути оригіналвідповісти на0
TokenVelocityTrauma
· 07-10 09:06
Уразливості повинні бути виправлені якомога швидше
Біткойн протокол існує вразливість до атаки зі спотворенням часу. Новий проект пропонує виправити це через Софтфорк.
Вразливість атаки на спотворення часу в протоколі Біткойн
Розробник Біткойн Antoine Poinsot 26 березня 2025 року запропонував нову пропозицію щодо покращення, метою якої є виправлення кількох вразливостей і слабкостей, що існують у протоколі Біткойн, через оновлення м'яким форком. Однією з більш серйозних вразливостей є "атака на спотворення часу", про яку ми детально поговоримо в цій статті.
Протокол захисту часових міток блоку Біткойн
Перед обговоренням атак на спотворення часу, спочатку давайте згадаємо про чинні правила захисту від маніпуляцій з часом у мережі Біткойн:
Медіанне минуле час (MPT) правило: час блоків повинен бути пізніше ніж медіанний час останніх 11 блоків.
Майбутні правила часу блоків: час блоків не повинен перевищувати 2 години від середнього часу пірингових вузлів. Крім того, максимальна дозволена різниця між часом вузла та локальними системними годинами становить 90 хвилин, що також є заходом безпеки.
Правила MPT забезпечують, що часові мітки блоків не будуть занадто ретроактивними, тоді як правила майбутніх блоків заважають часовим міткам бути занадто попередніми. Варто зазначити, що неможливо впровадити заходи, подібні до правил майбутніх блоків, щоб запобігти використанню старих часових міток, оскільки це може вплинути на початковий процес синхронізації блокчейну. Атака на спотворення часу саме використовує можливість підробки архаїчних часових міток.
Маленька помилка Сатоші Накамото
Складність Біткойн налаштовується кожні 2016 блоків, що приблизно дорівнює двом тижням, виходячи з цільового часу створення блоку в 10 хвилин. Для розрахунку налаштування складності видобутку протокол обчислює різницю між часовими мітками першого і останнього блоку в відповідному вікні з 2016 блоків. Це вікно з 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 році, і вона використовує цю незначну помилку у розрахунку складності, яку зробив Сатоші Накамото. Припустимо, що видобуток абсолютно централізований, зловмисник може маніпулювати часовими мітками блоків наступним чином:
Цей метод атаки призведе до того, що час блокчейну буде все більше відставати від реального часу, а рівень складності постійно зростатиме, ускладнюючи видобуток. Однак, починаючи з другого періоду коригування, рівень складності почне знижуватися. Атакуючий зможе потім дуже швидко створювати блоки, генеруючи велику кількість Біткойнів, отримуючи таким чином потенційні вигоди.
Здійсненність атак і виклики
Несмотря на теоретичну руйнівність такої атаки, на практиці її реалізація стикається з багатьма викликами:
Потенційні рішення
Виправити цю вразливість відносно просто, але може знадобитися зміна протоколу м'якого форка. Просте рішення полягає в тому, щоб вимагати, щоб позначка часу першого блоку нового періоду складності не була раніше певної кількості хвилин останнього блоку попереднього періоду. У пропозиції Поансота цей часовий обмеження встановлено на 2 години, що приблизно становить 0,6% від цільового часу коригування складності, що ефективно обмежує масштаб маніпуляцій зі складністю.
Ці переваги обмеження в 2 години включають:
Однак, цей метод все ще дозволяє зловмисникам маніпулювати складністю приблизно на 0,6% за кожен цикл, але це буде одноразова зміна, яка не може накопичуватися.
В цілому, атаки на спотворення часу хоч і теоретично становлять загрозу, але їхнє реальне виконання є досить складним. За допомогою належного оновлення протоколу ми можемо додатково зміцнити безпеку та стабільність мережі Біткойн.