Біткойн повторна торгівля: цікава, але з обмеженим впливом уразливість
У мережі Біткойн існує цікава вразливість - повторні транзакції. Зазвичай, транзакції Біткойн використовують невитрачені виходи, посилаючись на ID попередньої транзакції. Ці виходи можуть бути витрачені лише один раз, інакше це призведе до проблеми подвоєної оплати. Проте в історії Біткойн дійсно траплялися дві групи абсолютно однакових транзакцій.
Ця ситуація може виникнути, оскільки транзакції coinbase не мають входів, а безпосередньо генерують нові монети. Таким чином, дві різні транзакції coinbase можуть надсилати однакову кількість Біткойнів на одну й ту ж адресу, що призводить до створення абсолютно однакових транзакцій. Оскільки вміст транзакцій однаковий, їхні ідентифікатори транзакцій (TXID) також будуть однаковими.
Ці дві групи повторних угод відбулися з 14 по 15 листопада 2010 року, тривалість становила приблизно 16 годин. Перша група повторних угод має ID d5d2....8599, друга група - e3bf....b468. Цікаво, що d5d2....8599, хоча спочатку став копією, все ж з'явився на блокчейні пізніше, ніж e3bf....b468.
Ці повторювані угоди на суму 50 BTC кожна, загалом залучають 200 BTC. З певної точки зору, 100 BTC фактично не існує. Станом на сьогодні, ці 200 BTC ще не були витрачені. Теоретично, особа, що має відповідний приватний ключ, може витратити ці біткойни, але як тільки вони будуть витрачені, повторні 50 BTC будуть втрачені, тому фактично лише 100 BTC можуть бути відновлені.
Повторні транзакції, очевидно, можуть спричинити плутанину для гаманців і блокчейн-браузерів, а також можуть бути використані для атак. Наприклад, зловмисник може внести кошти на біржу двома повторними транзакціями, а потім відразу ж їх вивести, намагаючись збанкрутувати біржу.
Щоб вирішити цю проблему, спільнота Біткойн вжила кілька заходів:
У березні 2012 року, м'який форк BIP30 заборонив використання повторюваних TXID для транзакцій, якщо попередній TXID не було витрачено.
У вересні 2012 року Грег Максвелл змінив правила, щоб перевірка BIP30 застосовувалася до всіх блоків, але залишив два згадані раніше повторювані транзакції.
У березні 2013 року м'який форк BIP34 вимагав, щоб транзакції coinbase містили висоту блоку, що в основному вирішило проблему повторних транзакцій.
У листопаді 2015 року Біткойн-ядро припинило виконання перевірки BIP30, оскільки BIP34 вже виправив цю проблему.
Проте, у деяких блоках до активації BIP34 перший байт scriptSigs coinbase-транзакції точно збігався з майбутніми дійсними значеннями висоти блоку. Це означає, що проблема повторних транзакцій не була вирішена на 100%. Наступний блок, у якому може виникнути повторна транзакція, становить 1,983,702, очікується, що він буде створений приблизно у січні 2046 року.
Однак вартість використання цього вразливості є дуже високою. Наприклад, для блоку 1,983,702 зловмисник повинен спалити близько 170 BTC, що за поточною ціною становить приблизно 15 мільйонів доларів. І ці кошти, ймовірно, не можуть бути повернені. Крім того, з моменту оновлення SegWit у 2017 році, транзакції coinbase також містять зобов'язання щодо всіх транзакцій у блоці, що ще більше ускладнює атаки.
Враховуючи складність і витрати на копіювання угод, а також рідкість можливостей, ця вразливість не становить основної загрози безпеці Біткойн. Тим не менш, розробники все ще працюють над пошуком рішень, які можуть вимагати реалізації через м'який хардфорк. Одним із можливих підходів є примусове виконання зобов'язань SegWit.
В цілому, хоча вразливість до повторних транзакцій дуже цікава, її фактичний вплив є надзвичайно обмеженим. Вона більше відображає складність мережі Біткойн та зусилля розробників постійно вдосконалювати систему.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
9 лайків
Нагородити
9
6
Поділіться
Прокоментувати
0/400
ArbitrageBot
· 11год тому
Є баги — є гроші!
Переглянути оригіналвідповісти на0
LiquidationSurvivor
· 11год тому
Ти виправляєш баги, я збільшую позицію~
Переглянути оригіналвідповісти на0
PebbleHander
· 11год тому
Досі не закінчили?
Переглянути оригіналвідповісти на0
ShibaMillionairen't
· 11год тому
Чанан не дуже, все ще проблемна справа
Переглянути оригіналвідповісти на0
ImpermanentTherapist
· 11год тому
Нода вийшла з ладу, люди це вже давно передбачали.
Біткойн повторні транзакційні вразливості: історичні цікаві факти та майбутні виклики
Біткойн повторна торгівля: цікава, але з обмеженим впливом уразливість
У мережі Біткойн існує цікава вразливість - повторні транзакції. Зазвичай, транзакції Біткойн використовують невитрачені виходи, посилаючись на ID попередньої транзакції. Ці виходи можуть бути витрачені лише один раз, інакше це призведе до проблеми подвоєної оплати. Проте в історії Біткойн дійсно траплялися дві групи абсолютно однакових транзакцій.
Ця ситуація може виникнути, оскільки транзакції coinbase не мають входів, а безпосередньо генерують нові монети. Таким чином, дві різні транзакції coinbase можуть надсилати однакову кількість Біткойнів на одну й ту ж адресу, що призводить до створення абсолютно однакових транзакцій. Оскільки вміст транзакцій однаковий, їхні ідентифікатори транзакцій (TXID) також будуть однаковими.
Ці дві групи повторних угод відбулися з 14 по 15 листопада 2010 року, тривалість становила приблизно 16 годин. Перша група повторних угод має ID d5d2....8599, друга група - e3bf....b468. Цікаво, що d5d2....8599, хоча спочатку став копією, все ж з'явився на блокчейні пізніше, ніж e3bf....b468.
Ці повторювані угоди на суму 50 BTC кожна, загалом залучають 200 BTC. З певної точки зору, 100 BTC фактично не існує. Станом на сьогодні, ці 200 BTC ще не були витрачені. Теоретично, особа, що має відповідний приватний ключ, може витратити ці біткойни, але як тільки вони будуть витрачені, повторні 50 BTC будуть втрачені, тому фактично лише 100 BTC можуть бути відновлені.
Повторні транзакції, очевидно, можуть спричинити плутанину для гаманців і блокчейн-браузерів, а також можуть бути використані для атак. Наприклад, зловмисник може внести кошти на біржу двома повторними транзакціями, а потім відразу ж їх вивести, намагаючись збанкрутувати біржу.
Щоб вирішити цю проблему, спільнота Біткойн вжила кілька заходів:
У березні 2012 року, м'який форк BIP30 заборонив використання повторюваних TXID для транзакцій, якщо попередній TXID не було витрачено.
У вересні 2012 року Грег Максвелл змінив правила, щоб перевірка BIP30 застосовувалася до всіх блоків, але залишив два згадані раніше повторювані транзакції.
У березні 2013 року м'який форк BIP34 вимагав, щоб транзакції coinbase містили висоту блоку, що в основному вирішило проблему повторних транзакцій.
У листопаді 2015 року Біткойн-ядро припинило виконання перевірки BIP30, оскільки BIP34 вже виправив цю проблему.
Проте, у деяких блоках до активації BIP34 перший байт scriptSigs coinbase-транзакції точно збігався з майбутніми дійсними значеннями висоти блоку. Це означає, що проблема повторних транзакцій не була вирішена на 100%. Наступний блок, у якому може виникнути повторна транзакція, становить 1,983,702, очікується, що він буде створений приблизно у січні 2046 року.
! Дублювання транзакцій Bitcoin: цікавий баг з мінімальним ризиком
Однак вартість використання цього вразливості є дуже високою. Наприклад, для блоку 1,983,702 зловмисник повинен спалити близько 170 BTC, що за поточною ціною становить приблизно 15 мільйонів доларів. І ці кошти, ймовірно, не можуть бути повернені. Крім того, з моменту оновлення SegWit у 2017 році, транзакції coinbase також містять зобов'язання щодо всіх транзакцій у блоці, що ще більше ускладнює атаки.
Враховуючи складність і витрати на копіювання угод, а також рідкість можливостей, ця вразливість не становить основної загрози безпеці Біткойн. Тим не менш, розробники все ще працюють над пошуком рішень, які можуть вимагати реалізації через м'який хардфорк. Одним із можливих підходів є примусове виконання зобов'язань SegWit.
В цілому, хоча вразливість до повторних транзакцій дуже цікава, її фактичний вплив є надзвичайно обмеженим. Вона більше відображає складність мережі Біткойн та зусилля розробників постійно вдосконалювати систему.