Біткойн повторна транзакція: цікава, але надзвичайно низькоризикова уразливість
У мережі Біткойн існує цікаве явище: дві групи абсолютно однакових транзакцій. Це можливо, оскільки транзакції coinbase не мають входів, а безпосередньо генерують нові монети. Таким чином, дві різні транзакції coinbase можуть надіслати однакову кількість Біткойн на однакову адресу і бути побудованими абсолютно однаковим чином, що робить їх абсолютно ідентичними. Оскільки ці транзакції однакові, їхні ідентифікатори транзакцій (TXID) також збігаються, оскільки TXID є хеш-резюме даних транзакції.
Ці дві групи повторюваних транзакцій відбулися з 14 по 15 листопада 2010 року, тривалість приблизно 16 годин. Перша група повторюваних транзакцій була розміщена між другою групою. Ми класифікуємо d5d2....8599 як першу повторювану транзакцію, оскільки вона першою стала копією, хоча вперше з'явилася в блокчейні пізніше за іншу повторювану транзакцію e3bf....b468.
Ці повторювані операції з Біткойн стосуються загальної суми в 200 BTC, або можливо 100 BTC, в залежності від способу розуміння. На даний момент ці Біткойн не були використані. Теоретично, особа, що має відповідний приватний ключ, може використовувати ці Біткойн, але як тільки вони будуть використані, повторні 50 BTC не можуть бути використані знову та будуть втрачені, тому фактично доступними залишаються лише 100 BTC.
Повторні транзакції явно є проблемою. Вони можуть викликати плутанину в гаманцях і блокчейн-браузерах, також можуть ускладнити розуміння джерела Біткойнів. Це також може призвести до деяких атак і вразливостей, наприклад, використання двох повторних транзакцій для оплати комусь двічі, але насправді лише половина коштів доступна.
Щоб вирішити цю проблему, розробники запропонували кілька покращень:
BIP30: м'який форк, впроваджений у березні 2012 року, забороняє використання повторюваних TXID для транзакцій, якщо попередній TXID не був використаний.
BIP34: активовано в березні 2013 року, вимагає, щоб транзакції coinbase містили висоту блоку, що робить всі транзакції унікальними.
У листопаді 2015 року розробники видалили перевірку BIP30, оскільки BIP34 уже вирішив цю проблему.
Однак, BIP34 не є ідеальним рішенням. У деяких блоках до активації BIP34 існує ситуація, коли перший байт scriptSigs транзакції coinbase точно збігається з майбутньою дійсною висотою блоку. Наступний блок, у якому може виникнути повторна транзакція, - це 1,983,702, який, як очікується, буде створено приблизно в січні 2046 року.
Попри це, вартість і складність використання цього вразливості є дуже високими. Наприклад, для блоку 1,983,702, майнери повинні витратити понад 170 Біт( за поточною ціною близько 15 мільйонів доларів) для здійснення атаки, і практично не отримують реальної вигоди.
Враховуючи складність і вартість копіювання угод, а також рідкість можливостей, ця уразливість не становить основної загрози безпеці Біткойну. Однак, розробники можуть все ще шукати повне виправлення цієї проблеми до 2046 року, можливими способами є примусове виконання зобов'язань SegWit тощо.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
20 лайків
Нагородити
20
5
Поділіться
Прокоментувати
0/400
SmartContractPlumber
· 21год тому
Цікава 0day, але трохи схожа на тестовий випадок.
Переглянути оригіналвідповісти на0
GateUser-a5fa8bd0
· 07-14 21:40
Старий баг. Чому тоді його не використали?
Переглянути оригіналвідповісти на0
consensus_whisperer
· 07-14 21:39
Знову вразливість старого антикварного Сатоші Накамото.
Переглянути оригіналвідповісти на0
SchrodingerWallet
· 07-14 21:34
Біль у печінці, цей баг з'явився на ранніх стадіях.
Біткойн повторна угода уразливість: Історичні проблеми та майбутні виклики
Біткойн повторна транзакція: цікава, але надзвичайно низькоризикова уразливість
У мережі Біткойн існує цікаве явище: дві групи абсолютно однакових транзакцій. Це можливо, оскільки транзакції coinbase не мають входів, а безпосередньо генерують нові монети. Таким чином, дві різні транзакції coinbase можуть надіслати однакову кількість Біткойн на однакову адресу і бути побудованими абсолютно однаковим чином, що робить їх абсолютно ідентичними. Оскільки ці транзакції однакові, їхні ідентифікатори транзакцій (TXID) також збігаються, оскільки TXID є хеш-резюме даних транзакції.
Ці дві групи повторюваних транзакцій відбулися з 14 по 15 листопада 2010 року, тривалість приблизно 16 годин. Перша група повторюваних транзакцій була розміщена між другою групою. Ми класифікуємо d5d2....8599 як першу повторювану транзакцію, оскільки вона першою стала копією, хоча вперше з'явилася в блокчейні пізніше за іншу повторювану транзакцію e3bf....b468.
Ці повторювані операції з Біткойн стосуються загальної суми в 200 BTC, або можливо 100 BTC, в залежності від способу розуміння. На даний момент ці Біткойн не були використані. Теоретично, особа, що має відповідний приватний ключ, може використовувати ці Біткойн, але як тільки вони будуть використані, повторні 50 BTC не можуть бути використані знову та будуть втрачені, тому фактично доступними залишаються лише 100 BTC.
Повторні транзакції явно є проблемою. Вони можуть викликати плутанину в гаманцях і блокчейн-браузерах, також можуть ускладнити розуміння джерела Біткойнів. Це також може призвести до деяких атак і вразливостей, наприклад, використання двох повторних транзакцій для оплати комусь двічі, але насправді лише половина коштів доступна.
Щоб вирішити цю проблему, розробники запропонували кілька покращень:
BIP30: м'який форк, впроваджений у березні 2012 року, забороняє використання повторюваних TXID для транзакцій, якщо попередній TXID не був використаний.
BIP34: активовано в березні 2013 року, вимагає, щоб транзакції coinbase містили висоту блоку, що робить всі транзакції унікальними.
У листопаді 2015 року розробники видалили перевірку BIP30, оскільки BIP34 уже вирішив цю проблему.
Однак, BIP34 не є ідеальним рішенням. У деяких блоках до активації BIP34 існує ситуація, коли перший байт scriptSigs транзакції coinbase точно збігається з майбутньою дійсною висотою блоку. Наступний блок, у якому може виникнути повторна транзакція, - це 1,983,702, який, як очікується, буде створено приблизно в січні 2046 року.
Попри це, вартість і складність використання цього вразливості є дуже високими. Наприклад, для блоку 1,983,702, майнери повинні витратити понад 170 Біт( за поточною ціною близько 15 мільйонів доларів) для здійснення атаки, і практично не отримують реальної вигоди.
Враховуючи складність і вартість копіювання угод, а також рідкість можливостей, ця уразливість не становить основної загрози безпеці Біткойну. Однак, розробники можуть все ще шукати повне виправлення цієї проблеми до 2046 року, можливими способами є примусове виконання зобов'язань SegWit тощо.