Біткойн повторні транзакції: цікава та дуже низькоризикова системна уразливість
У мережі Біткойн існує унікальне явище: дві групи абсолютно однакових транзакцій. Це може статися, оскільки транзакції coinbase не потребують жодних входів транзакцій, а безпосередньо генерують нові монети. Таким чином, дві різні транзакції coinbase можуть надіслати однакову кількість біткойнів на ту ж адресу та бути побудовані абсолютно однаковим чином, що призводить до появи абсолютно однакових транзакцій. Оскільки ці транзакції мають однаковий вміст, їхні ідентифікатори транзакцій ( TXID ) також будуть збігатися, оскільки TXID є хеш-резюме даних транзакції.
Ці дві групи повторних угод відбулися між 14 та 15 листопада 2010 року, тривалість близько 16 годин. Перша група повторних угод була вставлена між другою групою. Ми класифікуємо d5d2....8599 як першу повторну угоду, оскільки вона спершу стала копією, хоча вперше з'явилася на блокчейні після іншої повторної угоди e3bf....b468.
Цікаво, що різні блокчейн-браузери по-різному відображають ці повторні транзакції. Деякі браузери за замовчуванням показують більш ранні блоки, тоді як інші показують більш пізні блоки.
Ці повторні транзакції стосуються загальної кількості Біткойн у 200 BTC, або можна зрозуміти як 100 BTC. Станом на сьогодні всі ці Біткойн ще не були використані. Теоретично, якщо хтось має приватний ключ, пов'язаний з цими виходами, вони можуть використовувати ці Біткойн. Однак, як тільки їх використають, повторні 50 BTC не можна буде використовувати знову і вони втрачені, таким чином фактично лише 100 BTC можуть бути повернені.
Повторні транзакції, очевидно, можуть спричинити деякі проблеми. Вони можуть викликати плутанину у гаманцях та блокчейн-оглядачах, а також ускладнити визначення справжнього походження Біткойну. Крім того, їх також можуть використовувати для деяких атак та експлуатацій уразливостей.
Щоб вирішити цю проблему, розробники Біткойн у 2012 році запропонували м'який форк BIP30, який забороняє використання дублікатів TXID для транзакцій, якщо попередній TXID вже не був використаний. Пізніше це правило було змінено, щоб стосуватися всіх блоків, а не лише блоків після 15 березня 2012 року.
У липні 2012 року було запропоновано план м'якого хардфорка BIP34, який активували в березні 2013 року. Ця зміна вимагала, щоб транзакції coinbase містили висоту блоку, що, здавалося, повністю вирішує проблему повторних транзакцій. Однак виявилося, що в блоках, активованих до BIP34, все ще є деякі транзакції coinbase, де перший байт scriptSigs точно збігається з майбутньою дійсною висотою блоку.
Наступний блок, в якому можуть виникнути повторні транзакції, становитиме 1,983,702 і, за прогнозами, з'явиться приблизно в січні 2046 року. Якщо майнери хочуть здійснити таку атаку, їм не лише потрібно буде достатньо пощастити, щоб знайти цей блок, але й витратити величезні кошти. Згідно з нинішньою ціною Біткойна, це коштуватиме понад 15 мільйонів доларів.
Враховуючи складність і витрати на копіювання транзакцій, а також те, що можливість їх використання є дуже рідкісною, цей недолік не виглядає як основна проблема безпеки Біткойна. Тим не менш, розробники протягом багатьох років витратили багато часу на цю проблему, і дата 2046 року може стати останнім терміном для її вирішення в умах деяких розробників. Існує багато способів виправити цю помилку, можливо, знадобиться м'який форк. Одним із можливих способів виправлення є примусове виконання зобов'язання SegWit.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
15 лайків
Нагородити
15
6
Поділіться
Прокоментувати
0/400
GasFeeCryer
· 10год тому
Цей баг дійсно болісний.
Переглянути оригіналвідповісти на0
RooftopReserver
· 10год тому
200枚?Ця хвиля Рект
Переглянути оригіналвідповісти на0
YieldChaser
· 10год тому
Знайти дірку й стати багатим за одну ніч!
Переглянути оригіналвідповісти на0
ChainWallflower
· 10год тому
Цей баг виявився лише помилковою тривогою.
Переглянути оригіналвідповісти на0
TokenSherpa
· 11год тому
насправді, шаблони даних свідчать про серйозні вразливості протоколу... досить тривожно, якщо чесно
Біткойн історія повторних транзакцій розшифрування: рідкісні вразливості системи та потенційні виклики 2046 року
Біткойн повторні транзакції: цікава та дуже низькоризикова системна уразливість
У мережі Біткойн існує унікальне явище: дві групи абсолютно однакових транзакцій. Це може статися, оскільки транзакції coinbase не потребують жодних входів транзакцій, а безпосередньо генерують нові монети. Таким чином, дві різні транзакції coinbase можуть надіслати однакову кількість біткойнів на ту ж адресу та бути побудовані абсолютно однаковим чином, що призводить до появи абсолютно однакових транзакцій. Оскільки ці транзакції мають однаковий вміст, їхні ідентифікатори транзакцій ( TXID ) також будуть збігатися, оскільки TXID є хеш-резюме даних транзакції.
Ці дві групи повторних угод відбулися між 14 та 15 листопада 2010 року, тривалість близько 16 годин. Перша група повторних угод була вставлена між другою групою. Ми класифікуємо d5d2....8599 як першу повторну угоду, оскільки вона спершу стала копією, хоча вперше з'явилася на блокчейні після іншої повторної угоди e3bf....b468.
Цікаво, що різні блокчейн-браузери по-різному відображають ці повторні транзакції. Деякі браузери за замовчуванням показують більш ранні блоки, тоді як інші показують більш пізні блоки.
Ці повторні транзакції стосуються загальної кількості Біткойн у 200 BTC, або можна зрозуміти як 100 BTC. Станом на сьогодні всі ці Біткойн ще не були використані. Теоретично, якщо хтось має приватний ключ, пов'язаний з цими виходами, вони можуть використовувати ці Біткойн. Однак, як тільки їх використають, повторні 50 BTC не можна буде використовувати знову і вони втрачені, таким чином фактично лише 100 BTC можуть бути повернені.
Повторні транзакції, очевидно, можуть спричинити деякі проблеми. Вони можуть викликати плутанину у гаманцях та блокчейн-оглядачах, а також ускладнити визначення справжнього походження Біткойну. Крім того, їх також можуть використовувати для деяких атак та експлуатацій уразливостей.
Щоб вирішити цю проблему, розробники Біткойн у 2012 році запропонували м'який форк BIP30, який забороняє використання дублікатів TXID для транзакцій, якщо попередній TXID вже не був використаний. Пізніше це правило було змінено, щоб стосуватися всіх блоків, а не лише блоків після 15 березня 2012 року.
У липні 2012 року було запропоновано план м'якого хардфорка BIP34, який активували в березні 2013 року. Ця зміна вимагала, щоб транзакції coinbase містили висоту блоку, що, здавалося, повністю вирішує проблему повторних транзакцій. Однак виявилося, що в блоках, активованих до BIP34, все ще є деякі транзакції coinbase, де перший байт scriptSigs точно збігається з майбутньою дійсною висотою блоку.
Наступний блок, в якому можуть виникнути повторні транзакції, становитиме 1,983,702 і, за прогнозами, з'явиться приблизно в січні 2046 року. Якщо майнери хочуть здійснити таку атаку, їм не лише потрібно буде достатньо пощастити, щоб знайти цей блок, але й витратити величезні кошти. Згідно з нинішньою ціною Біткойна, це коштуватиме понад 15 мільйонів доларів.
Враховуючи складність і витрати на копіювання транзакцій, а також те, що можливість їх використання є дуже рідкісною, цей недолік не виглядає як основна проблема безпеки Біткойна. Тим не менш, розробники протягом багатьох років витратили багато часу на цю проблему, і дата 2046 року може стати останнім терміном для її вирішення в умах деяких розробників. Існує багато способів виправити цю помилку, можливо, знадобиться м'який форк. Одним із можливих способів виправлення є примусове виконання зобов'язання SegWit.