Нещодавно один з розробників Біткойн запропонував нову пропозицію щодо покращення, мета якої полягає у виправленні кількох вразливостей і слабких місць, які існують у протоколі Біткойн протягом багатьох років. Однією з серйозних вразливостей є "атака на спотворення часу", про яку ми детально поговоримо в цій статті.
Механізм захисту часових міток блоків Біткойн
Перед обговоренням атаки на спотворення часу, спочатку розглянемо два основні правила, які Біткойн використовує для запобігання маніпуляціям з часом:
Середній минулий час (MPT) правило: Часова мітка блоку повинна бути пізніше за середній час останніх 11 блоків.
Правила часу блоків у майбутньому: час блоків не може випереджати середній час рівноправних вузлів більше ніж на 2 години.
Ці два правила запобігають тому, щоб час блоків був занадто попереду або позаду. Однак атака на спотворення часу якраз і використовує ці вразливості правил, підробляючи часові мітки, щоб відправити їх далеко в минуле.
Обчислювальні помилки Сатоші Накамото
Період корекції складності Біткойна містить 2016 блоків, що становить приблизно два тижні. При розрахунку корекції складності видобутку, протокол обчислює різницю між мітками часу першого і останнього блоків у цьому вікні з 2016 блоків. Однак, Сатоші Накамото допустив невелику помилку при проектуванні: він використав 2016, а не 2015 для розрахунку цільового часу. Це призвело до того, що цільовий час виявився на 0.05% довшим, ніж мав бути насправді, внаслідок чого фактичний цільовий інтервал між блоками Біткойна становить 10 хвилин і 0.3 секунди, а не рівно 10 хвилин.
Хоча ця похибка в 0,3 секунди сама по собі не є сильною, вона викликала більш серйозну вразливість. Обчислення складності базується лише на перших і останніх блоках кожного з вікон у 2016 блоків, що створює можливості для атак на спотворення часу.
Принцип атаки на спотворення часу
Ядром атаки на спотворення часу є маніпуляція часовими мітками блоків. Зловмисник може встановити часові мітки більшості блоків так, щоб вони були лише на 1 секунду пізніше, ніж у попереднього блоку, в той час як кожні 6 блоків часову мітку просувають вперед на 1 секунду, щоб відповідати правилам MPT. У останньому блоці кожного циклу корекції складності зловмисник встановлює часову мітку на реальний світовий час, а в першому блоці наступного циклу вона знову встановлюється назад.
Ця операція призведе до того, що час блокчейну все більше відставатиме від реального часу, що, в свою чергу, вплине на коригування складності. Починаючи з другого періоду коригування, складність різко знизиться, що дозволить зловмисникам створювати блоки з дуже високою швидкістю та отримувати велику кількість Біткойн.
Вплив атаки та його здійсненність
Теоретично, така атака може призвести до катастрофічних наслідків. У крайніх випадках, складність може бути знижена до виробництва більше 10 блоків за секунду. Проте, реалізація такої атаки також стикається з багатьма викликами:
Потрібно контролювати більшість обчислювальної потужності.
Існування чесних майнерів збільшить складність атак.
Процес атаки повністю видимий, може викликати термінове виправлення.
Рішення
Щоб виправити цю вразливість, розробники запропонували відносно просте рішення: вимагати, щоб час першого блоку нового циклу складності не був раніше певного часу останнього блоку попереднього циклу. Наразі рекомендований часовий інтервал становить 2 години, що складає лише 0,6% від цільового часу циклу корекції складності, і може ефективно обмежити ступінь маніпуляції складністю.
Це рішення ефективно захищає від атак на спотворення часу та максимально зменшує ризик випадкового створення недійсних монет. Воно відповідає існуючим правилам часу майбутніх блоків, дозволяючи майнерам виправляти максимальну допустиму часову похибку в межах одного блоку.
В цілому, це рішення зберігає безпеку мережі Біткойн, водночас намагаючись зменшити зміни до існуючих правил, і є відносно обережним і ефективним рішенням.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
8 лайків
Нагородити
8
4
Поділіться
Прокоментувати
0/400
DataPickledFish
· 08-03 02:18
Слід було давно відремонтувати. У криптосвіті кажуть, що безпека — це просто розвага.
Переглянути оригіналвідповісти на0
NftRegretMachine
· 08-03 02:16
Добре, зараз Біткойн теж може подорожувати.
Переглянути оригіналвідповісти на0
New_Ser_Ngmi
· 08-03 02:11
А це, поки старий Накамото ще живий, швидше за все, виправити.
Переглянути оригіналвідповісти на0
SerumDegen
· 08-03 02:00
ngmi якщо ти досі думаєш, що btc без помилок... насправді вже був реkt через проблеми з часовими мітками
Біткойн виправив вразливість спотворення часу, алгоритм трудностей з перенацілюванням був вдосконалений
Виправлення вразливості спотворення часу Біткойн
Нещодавно один з розробників Біткойн запропонував нову пропозицію щодо покращення, мета якої полягає у виправленні кількох вразливостей і слабких місць, які існують у протоколі Біткойн протягом багатьох років. Однією з серйозних вразливостей є "атака на спотворення часу", про яку ми детально поговоримо в цій статті.
Механізм захисту часових міток блоків Біткойн
Перед обговоренням атаки на спотворення часу, спочатку розглянемо два основні правила, які Біткойн використовує для запобігання маніпуляціям з часом:
Середній минулий час (MPT) правило: Часова мітка блоку повинна бути пізніше за середній час останніх 11 блоків.
Правила часу блоків у майбутньому: час блоків не може випереджати середній час рівноправних вузлів більше ніж на 2 години.
Ці два правила запобігають тому, щоб час блоків був занадто попереду або позаду. Однак атака на спотворення часу якраз і використовує ці вразливості правил, підробляючи часові мітки, щоб відправити їх далеко в минуле.
Обчислювальні помилки Сатоші Накамото
Період корекції складності Біткойна містить 2016 блоків, що становить приблизно два тижні. При розрахунку корекції складності видобутку, протокол обчислює різницю між мітками часу першого і останнього блоків у цьому вікні з 2016 блоків. Однак, Сатоші Накамото допустив невелику помилку при проектуванні: він використав 2016, а не 2015 для розрахунку цільового часу. Це призвело до того, що цільовий час виявився на 0.05% довшим, ніж мав бути насправді, внаслідок чого фактичний цільовий інтервал між блоками Біткойна становить 10 хвилин і 0.3 секунди, а не рівно 10 хвилин.
Хоча ця похибка в 0,3 секунди сама по собі не є сильною, вона викликала більш серйозну вразливість. Обчислення складності базується лише на перших і останніх блоках кожного з вікон у 2016 блоків, що створює можливості для атак на спотворення часу.
Принцип атаки на спотворення часу
Ядром атаки на спотворення часу є маніпуляція часовими мітками блоків. Зловмисник може встановити часові мітки більшості блоків так, щоб вони були лише на 1 секунду пізніше, ніж у попереднього блоку, в той час як кожні 6 блоків часову мітку просувають вперед на 1 секунду, щоб відповідати правилам MPT. У останньому блоці кожного циклу корекції складності зловмисник встановлює часову мітку на реальний світовий час, а в першому блоці наступного циклу вона знову встановлюється назад.
Ця операція призведе до того, що час блокчейну все більше відставатиме від реального часу, що, в свою чергу, вплине на коригування складності. Починаючи з другого періоду коригування, складність різко знизиться, що дозволить зловмисникам створювати блоки з дуже високою швидкістю та отримувати велику кількість Біткойн.
Вплив атаки та його здійсненність
Теоретично, така атака може призвести до катастрофічних наслідків. У крайніх випадках, складність може бути знижена до виробництва більше 10 блоків за секунду. Проте, реалізація такої атаки також стикається з багатьма викликами:
Рішення
Щоб виправити цю вразливість, розробники запропонували відносно просте рішення: вимагати, щоб час першого блоку нового циклу складності не був раніше певного часу останнього блоку попереднього циклу. Наразі рекомендований часовий інтервал становить 2 години, що складає лише 0,6% від цільового часу циклу корекції складності, і може ефективно обмежити ступінь маніпуляції складністю.
Це рішення ефективно захищає від атак на спотворення часу та максимально зменшує ризик випадкового створення недійсних монет. Воно відповідає існуючим правилам часу майбутніх блоків, дозволяючи майнерам виправляти максимальну допустиму часову похибку в межах одного блоку.
В цілому, це рішення зберігає безпеку мережі Біткойн, водночас намагаючись зменшити зміни до існуючих правил, і є відносно обережним і ефективним рішенням.