В как минимум трех криптовалютных кошельках ― Ledger Live, Edge и Breadwallet (BRD) ― была обнаружена уязвимость, которая позволяла злоумышленнику провести атаку двойного расходования (спорное определение ― подробнее об этом ниже) на пользователя. Об этом сообщает Coindesk со ссылкой на исследование разработчиков криптовалютного кошелька ZenGo.
Разработчики назвали уязвимость BigSpender ― она использует ошибку в функциональности биткоина Replace-by-Fee (RBF), которая позволяет пользователям доплачивать более высокую комиссию за неподтвержденную транзакцию, чтобы ускорить её включение в блокчейн. RBF стала широко используемой функций во многих биткоин-кошельках.
По словам исследователя биткоина под псевдонимом 0xB10CС, хотя функция интегрирована на уровне протокола, с самого начала существовали опасения по поводу возможных проблем её реализации в биткоин-кошельках. «Ислледование ZenGo описывает новый способ обмана пользователя. Он будет думать, что получил биткоины, тогда как на самом деле их нет. Я думаю, что это что-то новое. По крайней мере, раньше я об этом не слышал», ― сказал он.
Разработчики ZenGo протестировали девять различных кошельков ― Ledger Live, Trust Wallet, Exodus, Edge, BRD, Coinbase, Blockstream Green, Blockchain и Atomic Wallet. Три из них разработчики назвали потенциально уязвимыми для этой атаки.
«Мы протестировали не все существующие кошельки, но если уязвимы три крупнейших, то их может быть больше», ― сказал генеральный директор ZenGo Уриэль Охайон. Команда ZenGo сообщила разработчикам об уязвимости и дала им 90 дней на её устранение.
Ledger и BRD внесли соответствующие изменения в код и выплатили ZenGo вознаграждение (сумма не раскрывается). По словам генерального директора Edge Пол Пуэя, кошелек в настоящее время проходит «существенный рефакторинг», который должен решить эту проблему.
Питера Тодд, который участвовал в разработке RBF, сказал, что злоумышленник может использовать известную уязвимость в том, как определенные кошельки отображают биткоин-транзакции.
Как это работает: мошенник отправляет средства жертве и устанавливают очень низкую комиссию, чтобы транзакция не получала подтверждение. Пока транзакция ожидает включения в блокчейн, злоумышленник отменяет ее. Однако уязвимые кошельки отобржают эту транзакцию увеличением баланса, и, следовательно, некоторые пользователи могут ошибочно предположить, что транзакция прошла.
Это несоответствие между заявленным и фактическим балансом жертвы может быть использовано злоумышленниками. Таким образом, уязвимость скрывается в интерфейсе кошелька.
По мнению разработчиков ZenGo, если хакер может убедить человека в том, что он получил платеж, и в то же время сохранить контроль над биткоинами, то это можно назвать атакой двойной расходования.
«Тут важно определить, что вы подразумеваете под двойным расходованием. Большинство людей, которые не занимаются троллингом, скажут, что двойное расходование ― это когда у вас есть подтвержденная транзакция, которая каким-то образом признана недействительной и потрачена на другую подтвержденную транзакцию», ― сказал Джеймсон Лопп, разработчик биткоина и технический директор стартапа Casa.
Эта атака использует уязвимости в интерфейсе некоторых кошельков, а не в коде биткоина.
«Весь смысл блокчейна заключается в том, что он решает проблему двойного расходования», ― добавил Лопп. «В whitepaper биткоина говорится, что решение двойной расходования заключается в наличии распределенного реестра».
По словам 0xB10C, общее правило при совершении сделок в биткоине ― никогда не доверять транзакциям с менее чем шестью подтверждениями. Эту точку зрения повторили многие разработчики, в том числе Тодд, Лопп и технический директор BRD Сэмюэль Сатч.
«Разработчики кошельков должны понимать, что многие пользователи не знают всех особенностей работы блокчейна», ― говорит Лопп. «Многие даже не знают разницы между подтвержденными и неподтвержденными транзакциями. Таким образом, ответственность в этом случае лежит на разработчиках ― нельзя допускать того, чтобы пользователей могли обмануть таким способом».
Источник: CoinSpot.io