Logo
Поділитися цією статтею

Дослідники виявляють недоліки в Bitcoin гаманцях, які можна використати для подвійних витрат

Нове дослідження показало, що стандартний спосіб транзакцій з Bitcoin може бути використаний зловживанням, щоб створити свого роду подвійні витрати.

Стандартний спосіб здійснення транзакцій Bitcoin Нові дослідження показали, що їх можна зловживати, щоб уможливити своєрідне подвійне витрачання коштів.

Продовження Нижче
Не пропустіть жодної історії.Підпишіться на розсилку The Protocol вже сьогодні. Переглянути Всі Розсилки

Спеціалісти з блокчейну в стартапі ZenGo, що займається розробкою гаманців, виявили вразливість, яка вплинула на щонайменше три основні конкуруючі Крипто – Ledger Live, Edge і Breadwallet (BRD) – і потенційно інші.

Помилка, яку компанія з Тель-Авіва називає BigSpender, дозволяє хакеру подвоїти кошти користувача та, можливо, завадити йому більше ніколи використовувати свій гаманець. Він працює, використовуючи спосіб обробки певного гаманця Біткоїни заміна за комісією (RBF), функція захисту від збоїв, яка дозволяє користувачам замінити непідтверджену транзакцію ONE з вищою комісією.

«[BigSpender] може призвести до значних фінансових втрат і в деяких випадках зробити гаманець жертви повністю непридатним для використання, і жертва не зможе захистити себе», ZenGo Про це повідомив генеральний директор Уріель Огайон в електронному листі. «Тож це можна розглядати як a напад високої тяжкості.”

Як і інші додаткові функції Bitcoin з пов’язаними вразливими місцями, наприклад транзакції з обмеженим часом, функція RBF стала стандартним способом для користувачів надсилати значення туди й FORTH. Це було запропоновано та прийнято спільнотою розробників як спосіб для біткойнерів обійти повільний час підтвердження, сплачуючи більшу комісію.

Дивіться також: Рафаель Ауер - Трилема безпеки та майбутнє Bitcoin

З самого початку були побоювання щодо функції RBF не підтримується Bitcoin гаманцями, незважаючи на те, що вони інтегровані на рівень протоколу системи Bitcoin , сказав дослідник Bitcoin під псевдонімом 0xB10C. "ZenGo показує, що користувача можна обдурити, змусивши подумати, що він отримує Bitcoin , хоча він його не отримує. Я вважаю, що це новинка. Принаймні я не чув про це раніше", - сказав він.

Фірма протестувала дев’ять різних гаманців, включаючи Ledger Live, Trust Wallet, Exodus, Edge, Bread, Coinbase, Blockstream Green, Blockchain і Atomic Wallet. Троє з протестованих виявилися вразливими до теоретичного експлойту.

«Ми перевіряли не всі гаманці, але можливо, якщо три найбільші залучені, їх також буде більше», — сказав Огайон. ZenGo попередив фірми про свої висновки та дав їм 90 днів на усунення вразливості.

Ledger і BRD випустили зміни в коді, щоб запобігти атаці, і виплатили ZenGo винагороду за нерозголошені помилки, тоді як Edge проходить «значний рефакторинг», який вирішить цю проблему, повідомив генеральний директор Edge Пол Пуї в електронному листі.

Хак використовує відому вразливість у тому, як певні гаманці обробляють непідтверджені транзакції, включаючи, але не обмежуючись транзакціями RBF, сказав Пітер Тодд, колишній розробник Bitcoin і Архітектор RBF.

Як це працює: зловмисники надсилають кошти передбачуваній жертві та встановлюють достатньо низькі комісії, щоб майже гарантувати, що транзакція не отримає підтвердження. Для вразливих гаманців ця очікувана транзакція буде відображена як збільшення балансу рахунку одержувача, що, можливо, змусить деяких жертв помилково вважати незавершену транзакцію вже підтвердженою. Потім зловмисник «скасовує» незавершену транзакцію, за термінологією ZenGo, використовуючи RBF, щоб змінити одержувача на адресу, яку він контролює. До того моменту, як жертва зрозуміє, що транзакцію фактично скасовано, вона вже доставить товар.

Щоб було зрозуміло: подібні атаки були можливі до RBF, але через відсутність належних запобіжних заходів з боку постачальників гаманців, варіант оплати підкреслив ризик.

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

Подвійні проблеми?

Якщо хакер може обманом змусити людину повірити, що вона отримала платіж, водночас зберігаючи контроль над Bitcoin, це подвійне витрачання, за словами дослідників ZenGo. Інші заперечують таке використання терміну.

"Ви повинні вирішити, що таке визначення подвійних витрат. Більшість людей, які T є тролями, скажуть, що подвійні витрати - це коли у вас є підтверджена транзакція, яка якимось чином визнана недійсною та витрачена з іншою підтвердженою транзакцією", - Джеймсон Лопп, технічний директор стартапу Casody.

Ця атака за своєю природою використовує переваги того, як гаманці відображають непідтверджені транзакції. У цьому сенсі атака – хоча й шахрайська – T порушує функціонування коду Bitcoin .

«Вся мета блокчейну полягає в тому, щоб запобігти проблемі подвійних витрат», — сказав Лопп. «Це повертається до оригінального Сатоші білий папір, де сказано, що рішенням подвійних витрат є розподілена книга, яку перевіряють багато людей».

Єдине, на що ви можете покластися, це транзакції, які були видобуті

Загальне емпіричне правило під час транзакцій з Bitcoin полягає в тому, щоб ніколи не довіряти транзакції з менш ніж шістьма підтвердженнями, сказав 0xB10C. Цю тезу повторювали кілька розробників, у тому числі Тодд, Лопп і технічний директор BRD Семюель Сатч. Якщо цей експлойт пройде, принаймні частина відповідальності лежить на жертві.

«Єдине, на що ви можете покластися, — це видобуті транзакції», — сказав Тодд.

У цьому сенсі Сатч назвав BigSpender «незначною помилкою» та «начебто надуманою», але також є чимось, що варто виправити та заплатити винагороду за помилку. За словами Сатча, BRD нещодавно перевищив 5 мільйонів користувачів.

«Більше розробників гаманців повинні знати, що їхні користувачі T знають відмінностей під капотом», — сказав Лопп. Багато хто навіть T знає різниці між підтвердженим і непідтвердженим з точки зору безпеки. Тож на розробниках лежить обов’язок створити кращий користувальницький досвід, щоб їх не заплутали та не обдурили такі речі».

З цією метою Ledger оновив спосіб відображення незавершених транзакцій у гаманці. Якщо користувачі не впевнені, «перевірити статус транзакції» за допомогою провідника блоків. «Сьогодні така перевірка неможлива у вашому банку», — сказав технічний директор Ledger Чарльз Гіллемет електронною поштою.

Подвійне бачення

Оновлення гаманців для чіткого відображення того, що відбувається під час транзакції RBF, добре і добре для всіх учасників. Проте дослідники ZenGo виявили, що існує атака другого порядку, яка слідує тій же схемі, що описана вище, і може назавжди вимкнути гаманець незалежно від того, чи жертва знає про транзакцію.

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

Дивіться також: Тривала помилка DeFi Dapp досі не виправлена ​​галуззю (оновлено)

По суті, це а відмова в обслуговуванні (DoS) атака, яка не дозволяє людям використовувати свої гаманці.

«Це також вимикає інші види спроб надсилання, якщо алгоритм вибору монет гаманця вибирає кошти з цієї неіснуючої транзакції», — сказав Огайон. Якщо говорити Сатчем, ці гаманці «муровані». «Це величезна незручність».

Сатч сказав, що BRD зробив уразливість головним пріоритетом для фірми після того, як її попередили. Як не дивно, йому вдалося виправити помилку під час роботи з непов’язаною проблемою, сказав він.

Проблема, яку ZenGo піднімає у своїх дослідженнях безпеки, не поширена в гаманцях, які тестувала команда. The переважна більшість Bitcoin гаманців здатні отримувати транзакції RBF, і багато компаній, які стоять за ними, мають «обмежені ресурси», сказав Сатч, і не можуть негайно надати виправлення.

Увімкнувши функцію RBF на Casa, Лопп сказав, що налаштував систему так, щоб ці типи транзакцій не відображалися до підтвердження, що є нестандартним для галузі. «Параметри за замовчуванням відображатимуть ці транзакції», — сказав він.

Оновлення (2 липня, 20:15 UTC): Уривок, у якому перефразовано Пітера Тодда, було змінено, щоб зрозуміти, що він мав на увазі проблему того, як деякі Bitcoin гаманці відображають непідтверджені транзакції широко, а не лише транзакції RBF. Інші уривки також були переглянуті для ясності.

Daniel Kuhn
[@portabletext/react] Unknown block type "undefined", specify a component for it in the `components.types` prop
Daniel Kuhn