Повторні вразливості в історії Біткойн: причини, вплив та аналіз майбутніх ризиків

robot
Генерація анотацій у процесі

Дублювання транзакцій в біткоіни: цікавий недолік з низьким рівнем ризику

Огляд

Біткойн-транзакції зазвичай здійснюються шляхом посилання на ID попередньої транзакції для використання невитрачених виходів. Ці виходи можна використовувати лише один раз, інакше це призведе до проблеми подвійних витрат. Проте в історії Біткойна дійсно виникали дві групи повністю ідентичних транзакцій. Ця ситуація могла виникнути, оскільки coinbase-транзакції не мають входів, а безпосередньо генерують нові монети. Таким чином, дві різні coinbase-транзакції можуть надіслати однакову кількість до одного й того ж адреси, побудовані абсолютно однаково, що призводить до генерації одного й того ж ID транзакції.

Ці дві групи повторних транзакцій відбулися між 14 та 15 листопада 2010 року, тривалість близько 16 годин. ID першої групи повторних транзакцій - d5d2....8599, незважаючи на те, що вона вперше з'явилася в блокчейні пізніше за іншу повторну транзакцію e3bf....b468.

Біткойн的 повторні транзакції: цікавий баг із дуже низьким ризиком

Деталі повторної торгівлі

Ці дві групи повторних транзакцій з'являються в чотирьох різних блоках. Блокчейн-оглядачі мають різну поведінку за замовчуванням при відображенні цих транзакцій: деякі показують раніші блоки, а деякі - пізніші.

У цих чотирьох пов'язаних блоках лише один блок (91,812) містить інші транзакції, об'єднавши 1 Біт і 19 Біт в один вихід 20 Біт.

Біткойн 的 повторні транзакції: цікавий баг з мінімальним ризиком

Чи можна використовувати ці виходи?

Кожна повторна транзакція має вартість 50 Біт, загалом залучено 200 Біт( або 100 Біт, в залежності від способу розуміння). На даний момент, ці 200 Біт ще не були використані. Теоретично, особа, яка має відповідний приватний ключ, може використовувати ці біткойни, але як тільки їх використають, повторні 50 Біт не можуть бути використані знову і будуть втрачені, тому насправді тільки 100 Біт можуть бути повернені.

Біткойн повторна транзакція: цікава помилка з мінімальним ризиком

Проблема повторних угод

Повторні交易 можуть спричинити плутанину в гаманцях та блокчейн-браузерах, а також призвести до невизначеного походження Біткойн. Вони також можуть бути використані для деяких атак та експлуатацій вразливостей, наприклад, для введення оманливих депозитів на біржі.

Рішення

Щоб вирішити проблему повторних транзакцій, у березні 2012 року було впроваджено м'який форк BIP30, що забороняє використання повторних ідентифікаторів транзакцій, якщо попередня транзакція не була використана. Того ж року в вересні це правило було додатково змінено, щоб застосовуватися до всіх блоків.

У березні 2013 року м'який хард-форк BIP34 вимагав, щоб транзакції coinbase містили висоту блоку, що насправді вирішило проблему повторних транзакцій. Після цього програмне забезпечення Bitcoin Core припинило перевірку BIP30, оскільки вона більше не була необхідною.

Біткойн的 повторна торгівля: цікавий баг з мінімальним ризиком

Потенційні майбутні проблеми

Хоча BIP34 вирішує більшість проблем, але в деяких блоках до активації BIP34 перший байт scriptSig транзакції coinbase точно збігається з майбутньою дійсною висотою блока. Це означає, що на певних майбутніх висотах блока все ще може виникнути повторна транзакція.

Наступний блок, у якому може виникнути повторна транзакція, - це 1,983,702, який, як очікується, буде створений приблизно в січні 2046 року. Однак вартість використання цієї вразливості є дуже високою, необхідно знищити велику кількість Біткойн, і це майже не приносить жодної реальної вигоди для атакуючого.

Біткойн повторні транзакції: цікавий баг з дуже низьким ризиком

Висновок

Враховуючи складність копіювання угод, витрати та рідкість можливостей, цей недолік не становить основної загрози безпеці Біткойн. Проте, через свою унікальність та можливість тривалого існування, це все ще є цікавим технічним питанням. Розробники можуть прагнути до повного вирішення цієї проблеми до 2046 року, можливо, за допомогою м'якого форка. Одним із можливих рішень є примусове виконання SegWit зобов'язань.

Біткойн повторні транзакції: цікава помилка з дуже низьким ризиком

BTC2.54%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 2
  • Поділіться
Прокоментувати
0/400
SmartMoneyWalletvip
· 16год тому
у блокчейні дані ніколи не брешуть, 97% ризику вже заблоковано BIP34.
Переглянути оригіналвідповісти на0
AltcoinOraclevip
· 16год тому
захоплююче, як протокол розвивається... мої власні метрики показують 0.0021% ймовірність фактичної атаки, чесно кажучи
Переглянути оригіналвідповісти на0
  • Закріпити