Вразливість атаки спотворення часу в протоколі Біткойн
Розробник Біткойн Антуан Пуансо 26 березня 2025 року запропонував нову пропозицію щодо вдосконалення, метою якої є виправлення кількох вразливостей і слабких місць, які тривалий час існували в протоколі Біткойн, за допомогою м'якого хардфорку. Ця пропозиція, відома як "Велике очищення консенсусу", не лише вирішила проблему повторних транзакцій, що обговорювалася раніше, але й запропонувала рішення для більш серйозної вразливості - "атаки на спотворення часу".
Захисний механізм часових міток Біткойна
Перед обговоренням атак на спотворення часу, спочатку розглянемо існуючі правила захисту Біткойна від маніпуляцій із часом:
Середній минулий час (MPT) правило: Час блоків повинен бути пізніше середнього часу останніх 11 блоків.
Правила часу блоків у майбутньому: час блоків не повинен перевищувати медіанний час у вузлах-партнерах більш ніж на 2 години. Крім того, максимальна допустима різниця між часом вузла та локальним системним годинником становить 90 хвилин.
Ці правила мають на меті запобігти тому, щоб час блоків занадто відхилявся від реального часу, як у минулому, так і в майбутньому. Однак атака на спотворення часу здійснюється шляхом підробки часового штампа, який значно раніше реального часу.
Помилка "на один" Сатоші Накамото
Труднощі налаштування Біткойна розраховуються на основі 2016 блоків, що в теорії становить приблизно два тижні часу. Під час розрахунку труднощів видобутку, протокол обчислює різницю в часових мітках між першим і останнім блоками з цих 2016 блоків. Однак ці 2016 блоків фактично містять лише 2015 інтервалів блоків. Правильний цільовий час має становити 60 секунд × 10 хвилин × 2015 = 1,209,000 секунд, але протокол Біткойна використовує число 2016, що призводить до результату 1,209,600 секунд. Ця незначна помилка робить цільовий час на 0.05% довшим, ніж має бути.
Хоча ця похибка здається незначною, вона викликала більш серйозну проблему. Обчислення складності базується на першому та останньому блоці в кожному вікні з 2016 блоків, а не на різниці між останнім блоком попереднього вікна та останнім блоком поточного вікна. Цей спосіб обчислення створює можливість для атаки на спотворення часу.
Принцип атаки спотворення часу
Атака на спотворення часу була вперше виявлена приблизно в 2011 році. У цій атаці припускається, що видобуток повністю централізований, і шахтарі можуть встановлювати мітки часу в межах, дозволених протоколом. Зловмисник встановлює мітки часу більшості блоків на одну секунду раніше, ніж у попередньому блоці, або рухається вперед на одну секунду лише після кожних шести блоків, щоб якомога повільніше просувати час.
Ця операція призведе до того, що час блокчейну поступово відставатиме від реального часу, а складність постійно зростатиме. Щоб посилити ефект атаки, в останньому блоці кожного періоду налаштування складності зловмисник встановить мітку часу на реальний світовий час. А перший блок наступного періоду буде встановлений назад у минуле, на секунду раніше, ніж передостанній блок попереднього періоду.
Таким чином, зловмисник може значно знизити складність видобутку після другого періоду коригування, що дозволяє йому створювати блоки з дуже швидкою швидкістю та отримувати велику кількість Біткойн.
Здійсненість атак і виклики
Хоча теоретично ця атака може призвести до серйозних наслідків, її реальна реалізація стикається з численними викликами:
Потрібно контролювати більшість обчислювальної потужності.
Існування чесних майнерів збільшить складність атак.
Правила MTP та чесний часовий штамп обмежують ступінь зворотного відстеження зловмисних часових штампів.
Якщо чесний майнер створить перший блок у будь-якому вікні коригування складності, атака в цьому циклі виявиться неефективною.
Процес атаки видимий для всіх і може спровокувати термінове м'яке розгалуження для виправлення.
Рішення
Існує кілька можливих способів виправити цей вразливість:
Змінити алгоритм регулювання складності, обчислити часовий проміжок між різними блоками вікна 2016 та виправити помилку "не вистачає одного".
Скасування правил MTP, які вимагають, щоб час кожного блоку мав рухатися вперед.
Встановити нові правила обмеження, що вимагають, щоб час першого блоку нового періоду складності не був раніше певної кількості хвилин останнього блоку попереднього періоду.
Пропозиція "Великої консенсусної очистки" Пуансо використовує третій підхід, рекомендує встановити часовий ліміт у 2 години. Цей варіант може ефективно зменшити атаки на часові спотворення та максимально знизити ризик випадкового виникнення недійсних блоків.
Загалом, спільнота Біткойн активно реагує на цю потенційну загрозу, постійно вдосконалюючи протокол, зокрема через м'які хардфорки, щоб забезпечити довгострокову безпеку та стабільну роботу мережі.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
22 лайків
Нагородити
22
5
Поділіться
Прокоментувати
0/400
SatoshiSherpa
· 07-14 18:42
Виправлення помилок дійсно схоже на виправлення помилок.
Переглянути оригіналвідповісти на0
FUD_Whisperer
· 07-14 18:38
Виправили баги? Це вже давно потрібно було виправити.
Переглянути оригіналвідповісти на0
OldLeekConfession
· 07-14 18:38
Цей баг вже виправляють 4 роки?
Переглянути оригіналвідповісти на0
GweiWatcher
· 07-14 18:35
Цей баг потрібно було виправити ще раніше, справді вже не можу дивитися.
Переглянути оригіналвідповісти на0
PumpingCroissant
· 07-14 18:34
Цей баг буде виправлено тільки у 2025 році, доведеться чекати дуже довго.
Біткойн планує виправити вразливість атаки на часові спотворення, пропозиція Софтфорку вже на підході
Вразливість атаки спотворення часу в протоколі Біткойн
Розробник Біткойн Антуан Пуансо 26 березня 2025 року запропонував нову пропозицію щодо вдосконалення, метою якої є виправлення кількох вразливостей і слабких місць, які тривалий час існували в протоколі Біткойн, за допомогою м'якого хардфорку. Ця пропозиція, відома як "Велике очищення консенсусу", не лише вирішила проблему повторних транзакцій, що обговорювалася раніше, але й запропонувала рішення для більш серйозної вразливості - "атаки на спотворення часу".
Захисний механізм часових міток Біткойна
Перед обговоренням атак на спотворення часу, спочатку розглянемо існуючі правила захисту Біткойна від маніпуляцій із часом:
Середній минулий час (MPT) правило: Час блоків повинен бути пізніше середнього часу останніх 11 блоків.
Правила часу блоків у майбутньому: час блоків не повинен перевищувати медіанний час у вузлах-партнерах більш ніж на 2 години. Крім того, максимальна допустима різниця між часом вузла та локальним системним годинником становить 90 хвилин.
Ці правила мають на меті запобігти тому, щоб час блоків занадто відхилявся від реального часу, як у минулому, так і в майбутньому. Однак атака на спотворення часу здійснюється шляхом підробки часового штампа, який значно раніше реального часу.
Помилка "на один" Сатоші Накамото
Труднощі налаштування Біткойна розраховуються на основі 2016 блоків, що в теорії становить приблизно два тижні часу. Під час розрахунку труднощів видобутку, протокол обчислює різницю в часових мітках між першим і останнім блоками з цих 2016 блоків. Однак ці 2016 блоків фактично містять лише 2015 інтервалів блоків. Правильний цільовий час має становити 60 секунд × 10 хвилин × 2015 = 1,209,000 секунд, але протокол Біткойна використовує число 2016, що призводить до результату 1,209,600 секунд. Ця незначна помилка робить цільовий час на 0.05% довшим, ніж має бути.
Хоча ця похибка здається незначною, вона викликала більш серйозну проблему. Обчислення складності базується на першому та останньому блоці в кожному вікні з 2016 блоків, а не на різниці між останнім блоком попереднього вікна та останнім блоком поточного вікна. Цей спосіб обчислення створює можливість для атаки на спотворення часу.
Принцип атаки спотворення часу
Атака на спотворення часу була вперше виявлена приблизно в 2011 році. У цій атаці припускається, що видобуток повністю централізований, і шахтарі можуть встановлювати мітки часу в межах, дозволених протоколом. Зловмисник встановлює мітки часу більшості блоків на одну секунду раніше, ніж у попередньому блоці, або рухається вперед на одну секунду лише після кожних шести блоків, щоб якомога повільніше просувати час.
Ця операція призведе до того, що час блокчейну поступово відставатиме від реального часу, а складність постійно зростатиме. Щоб посилити ефект атаки, в останньому блоці кожного періоду налаштування складності зловмисник встановить мітку часу на реальний світовий час. А перший блок наступного періоду буде встановлений назад у минуле, на секунду раніше, ніж передостанній блок попереднього періоду.
Таким чином, зловмисник може значно знизити складність видобутку після другого періоду коригування, що дозволяє йому створювати блоки з дуже швидкою швидкістю та отримувати велику кількість Біткойн.
Здійсненість атак і виклики
Хоча теоретично ця атака може призвести до серйозних наслідків, її реальна реалізація стикається з численними викликами:
Рішення
Існує кілька можливих способів виправити цей вразливість:
Пропозиція "Великої консенсусної очистки" Пуансо використовує третій підхід, рекомендує встановити часовий ліміт у 2 години. Цей варіант може ефективно зменшити атаки на часові спотворення та максимально знизити ризик випадкового виникнення недійсних блоків.
Загалом, спільнота Біткойн активно реагує на цю потенційну загрозу, постійно вдосконалюючи протокол, зокрема через м'які хардфорки, щоб забезпечити довгострокову безпеку та стабільну роботу мережі.