Біткойн повторне交易漏洞: рідкісні історичні події та аналіз ризиків у майбутньому

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

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

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

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

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

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

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

Повторні транзакції можуть спричинити проблеми для гаманців і блокчейн-браузерів, а також затуманити походження Біткойнів. Ще серйозніше, це може бути використано для атак на біржі та інші установи, що призведе до втрат коштів. Щоб вирішити цю проблему, у березні 2012 року було впроваджено м'який форк BIP30, який забороняє використання повторних ідентифікаторів транзакцій, якщо попередня транзакція вже не була використана. У вересні того ж року це правило було додатково розширено на всі блоки.

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

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

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

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

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

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

Переглянути оригінал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Нагородити
  • 6
  • Поділіться
Прокоментувати
0/400
BlockchainBouncervip
· 22год тому
Баг 2010 року справді викликає ностальгію
Переглянути оригіналвідповісти на0
RiddleMastervip
· 07-09 16:38
Цей баг вже давно потрібно було виправити.
Переглянути оригіналвідповісти на0
¯\_(ツ)_/¯vip
· 07-09 16:27
Цей баг має щось цікаве.
Переглянути оригіналвідповісти на0
FUD_Vaccinatedvip
· 07-09 16:21
Ну нічого собі, вже з 2010 року почалися баги!
Переглянути оригіналвідповісти на0
FlashLoanPrincevip
· 07-09 16:12
Чи може монета повторно торгуватися?
Переглянути оригіналвідповісти на0
  • Закріпити