Біткойн виправлення вразливостей: проблема атаки на спотворення часу буде вирішена
26 березня 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 році, використовуючи помилку Сатоші Накамо у розрахунку складності. У цій атаці, припустимо, що майнінг повністю централізований, майнери можуть встановлювати будь-які часові мітки, дозволені протоколом. Зловмисники встановлюють часові мітки більшості блоків на одну секунду раніше, ніж у попередньому блоці, що уповільнює просування блокчейну в часі, при цьому дотримуючись правил MTP.
Щоб просувати час якомога повільніше, майнери можуть безперервно підтримувати однаковий часовий штамп для шести блоків, а потім у наступному блоці збільшити час на одну секунду, і так далі. Це означає, що часовий штамп блоку рухається вперед лише на одну секунду кожні шість блоків.
Цей напад призведе до того, що блокчейн буде все більше відставати від реального часу, складність зросте, що ускладнить видобуток. Однак, для підсилення ефекту атаки, в останньому блоці кожного періоду коригування складності, майнери встановлюють мітку часу на реальний світовий час. Наступний блок (, тобто перший блок нового вікна коригування складності ), потім встановлюється назад у минуле, на секунду раніше за передостанній блок попереднього вікна коригування складності. Це все ще відповідає правилам MTP, оскільки окремий аномальний випадок не вплине на медіану 11 блоків.
Під час проведення такої атаки, складність після першого циклу не буде підлягати змінам. Проте, після другого циклу коригування після початку атаки, складність почне знижуватися. Потім майнери зможуть створювати блоки з дуже високою швидкістю, що може призвести до отримання великої кількості Біткойн, а потім продати їх для отримання прибутку.
Здійсненність атаки та рішення
Хоча теоретично така атака може спричинити руйнівні наслідки, її реалізація стикається з деякими викликами. Для виконання атаки може знадобитися контроль над більшістю обчислювальної потужності. Якщо чесні майнери вводять справжні мітки часу, складність атаки значно зросте. Правила MTP і мітки часу чесних майнерів можуть обмежити ступінь маніпуляцій з мітками часу зловмисними майнерами. Крім того, якщо чесні майнери створюють перший блок у будь-якому вікні коригування складності, атака в цьому циклі не матиме успіху.
Ще одним фактором, який може ускладнити виконання атаки, є те, що вона видима для всіх. Будь-хто може побачити аномалії у часових мітках, і перш ніж складність буде знижена, потрібно маніпулювати навколишніми часовими мітками, що може дати нам час для впровадження термінового мʼякого хардфорка.
Щоб вирішити цю вразливість, розробники запропонували відносно просте рішення. Нова пропозиція вимагає, щоб час першого блоку нового періоду складності не був раніше певної кількості хвилин до останнього блоку попереднього періоду. Наразі обговорюваний часовий діапазон варіюється від 10 хвилин до 2 годин. У останній пропозиції з очищення великого консенсусу цей час був встановлений на 2 години.
Це обмеження у 2 години становить лише приблизно 0,6% від цільового часу циклу коригування складності, тому значно обмежує можливості маніпуляції складністю вниз. Це внесення змін ефективно запобігає атакам на спотворення часу та максимально знижує ризик випадкового створення недійсних блоків, при цьому відповідаючи існуючим правилам часових міток майбутніх блоків.
Завдяки впровадженню цього вдосконалення, мережа Біткойн зможе краще протистояти потенційним атакам на часові спотворення, що ще більше зміцнить її безпеку та стабільність.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
18 лайків
Нагородити
18
4
Поділіться
Прокоментувати
0/400
TokenGuru
· 9год тому
бик啊 btcстарий проект все ще серйозно виправляє помилки, не як деякі альткоїн
Переглянути оригіналвідповісти на0
LootboxPhobia
· 07-30 16:54
Знову виправили вразливість, налякали мене до смерті.
Переглянути оригіналвідповісти на0
DaoResearcher
· 07-30 16:38
Отже, відповідно до теорії управлінських механізмів 3.0, цей план має системні недоліки.
Переглянути оригіналвідповісти на0
defi_detective
· 07-30 16:37
Чекайте, що це за принцип? Не розумію, брате, розкажи.
Біткойн виправить вразливість атаки на спотворення часу, підвищуючи безпеку мережі
Біткойн виправлення вразливостей: проблема атаки на спотворення часу буде вирішена
26 березня 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 році, використовуючи помилку Сатоші Накамо у розрахунку складності. У цій атаці, припустимо, що майнінг повністю централізований, майнери можуть встановлювати будь-які часові мітки, дозволені протоколом. Зловмисники встановлюють часові мітки більшості блоків на одну секунду раніше, ніж у попередньому блоці, що уповільнює просування блокчейну в часі, при цьому дотримуючись правил MTP.
Щоб просувати час якомога повільніше, майнери можуть безперервно підтримувати однаковий часовий штамп для шести блоків, а потім у наступному блоці збільшити час на одну секунду, і так далі. Це означає, що часовий штамп блоку рухається вперед лише на одну секунду кожні шість блоків.
Цей напад призведе до того, що блокчейн буде все більше відставати від реального часу, складність зросте, що ускладнить видобуток. Однак, для підсилення ефекту атаки, в останньому блоці кожного періоду коригування складності, майнери встановлюють мітку часу на реальний світовий час. Наступний блок (, тобто перший блок нового вікна коригування складності ), потім встановлюється назад у минуле, на секунду раніше за передостанній блок попереднього вікна коригування складності. Це все ще відповідає правилам MTP, оскільки окремий аномальний випадок не вплине на медіану 11 блоків.
Під час проведення такої атаки, складність після першого циклу не буде підлягати змінам. Проте, після другого циклу коригування після початку атаки, складність почне знижуватися. Потім майнери зможуть створювати блоки з дуже високою швидкістю, що може призвести до отримання великої кількості Біткойн, а потім продати їх для отримання прибутку.
Здійсненність атаки та рішення
Хоча теоретично така атака може спричинити руйнівні наслідки, її реалізація стикається з деякими викликами. Для виконання атаки може знадобитися контроль над більшістю обчислювальної потужності. Якщо чесні майнери вводять справжні мітки часу, складність атаки значно зросте. Правила MTP і мітки часу чесних майнерів можуть обмежити ступінь маніпуляцій з мітками часу зловмисними майнерами. Крім того, якщо чесні майнери створюють перший блок у будь-якому вікні коригування складності, атака в цьому циклі не матиме успіху.
Ще одним фактором, який може ускладнити виконання атаки, є те, що вона видима для всіх. Будь-хто може побачити аномалії у часових мітках, і перш ніж складність буде знижена, потрібно маніпулювати навколишніми часовими мітками, що може дати нам час для впровадження термінового мʼякого хардфорка.
Щоб вирішити цю вразливість, розробники запропонували відносно просте рішення. Нова пропозиція вимагає, щоб час першого блоку нового періоду складності не був раніше певної кількості хвилин до останнього блоку попереднього періоду. Наразі обговорюваний часовий діапазон варіюється від 10 хвилин до 2 годин. У останній пропозиції з очищення великого консенсусу цей час був встановлений на 2 години.
Це обмеження у 2 години становить лише приблизно 0,6% від цільового часу циклу коригування складності, тому значно обмежує можливості маніпуляції складністю вниз. Це внесення змін ефективно запобігає атакам на спотворення часу та максимально знижує ризик випадкового створення недійсних блоків, при цьому відповідаючи існуючим правилам часових міток майбутніх блоків.
Завдяки впровадженню цього вдосконалення, мережа Біткойн зможе краще протистояти потенційним атакам на часові спотворення, що ще більше зміцнить її безпеку та стабільність.