Чему мы можем научиться, изучая хаки? Раскрытие информации о конфиденциальности и движениях криптовалюты после взлома DAO 2016

Симбиоз

Термин «криптовалюта» почти стал синонимом хакерства. Кажется, что каждую неделю происходят масштабные взломы бирж, кошельков отдельных пользователей, смарт-контрактов и общедоступных блокчейнов, на которых они сидят. Во многих случаях векторы атаки очевидны в ретроспективе: код не тестировался, внутренние процессы для предотвращения фишинга отсутствовали, базовые стандарты кода не соблюдались и т. д. Изучение самих взломов часто не дает много интересной информации для тех, кто уже знаком с базовые методы обеспечения безопасности. 

Но каждый крипто-взлом состоит из двух основных компонентов: есть сам взлом, а затем методологии, с помощью которых хакер и его соратники пытаются обналичить украденную добычу. Для сторонников конфиденциальности попытки анонимизировать эти средства представляют собой интересные тематические исследования уровней анонимности, достижимых в публичных блокчейн-сетях.

Поскольку средства тщательно отслеживаются высокоорганизованными и хорошо финансируемыми государственными учреждениями и корпорациями, они дают сообществу возможность наблюдать за эффективностью различных задействованных кошельков конфиденциальности. Если эти хакеры не могут оставаться приватными, каковы шансы, что обычные пользователи, ищущие конфиденциальности в общедоступных сетях, смогут ее достичь? 

Взлом DAO 2016, показательный случай

При изучении этих взломов и последующих арестов становится ясно, что в большинстве случаев хакеры совершают серьезные ошибки, пытаясь анонимизировать свою криптовалюту. В некоторых случаях сбои происходят по вине простых ошибок пользователя. В других случаях они вызваны ошибками в программном обеспечении кошелька, которое они использовали, или другими менее очевидными ошибками на пути к конвертации криптовалюты в реальные активы. 

Недавно особенно интересное дело, взлом DAO в 2016 году, получило значительное развитие — расследование статье Forbes была опубликована информация о предполагаемом хакере. Процесс, с помощью которого был идентифицирован этот человек, дает некоторое представление о широко используемом кошельке конфиденциальности, Wasabi Wallet, и о том, как неправильное использование программного обеспечения может привести к «разделению» средств предполагаемого хакера. 

Допущены критические ошибки

Что касается порядка операций, то первым шагом хакера было конвертировать часть своих украденных средств из Ethereum Classic в биткойны. Хакер использовал Shapeshift для обмена, который в то время предоставлял полную общедоступную запись всех сделок на платформе. Из Shapeshift часть средств перешла в кошелек Wasabi. Отсюда дела идут по наклонной.  

Для тех, кто не знаком, CoinJoin — это прозвище для специального протокола построения транзакций, который позволяет нескольким сторонам объединять свои средства в крупную транзакцию с целью разорвать связь между средствами, поступающими в CoinJoin, и средствами, вытекающими из CoinJoin.

Вместо транзакции с одним плательщиком и получателем платежа транзакция CoinJoin имеет несколько плательщиков и получателей платежа. Скажем, например, у вас есть CoinJoin с 10 участниками — если CoinJoin правильно построен и все правила взаимодействия правильно соблюдены, средства, вытекающие из CoinJoin, будут иметь набор анонимности 10. т. е. любой из 10 «смешанных выходов». » из транзакции может принадлежать любому из 10 (или более) «несмешанных входов» транзакции. 

Хотя CoinJoins может быть очень мощным инструментом, у участников есть много возможностей совершить критические ошибки, которые значительно ухудшат или полностью подорвут любую конфиденциальность, которую они могли получить благодаря CoinJoin. В случае с предполагаемым хакером DAO была допущена такая ошибка. Как вы прочтете далее, существует вероятность того, что эта ошибка была ошибкой пользователя, однако также возможно, что в кошельке Wasabi была ошибка (поскольку она исправлена), которая привела к нарушению конфиденциальности. 

Кошелек Wasabi использует Протокол ZeroLink, который создает CoinJoins со смешанными выходами одинаковой ценности. Это означает, что все пользователи должны смешивать только определенное заранее определенное количество биткойнов. Любое значение, превышающее эту сумму, которое входит в CoinJoin, должно быть возвращено в виде несмешанного биткойна соответствующим пользователям.

Если, например, Алиса имеет один биткойн-выход 15, а CoinJoin принимает только выходы стоимостью 1 биткойн, по завершении CoinJoin Алиса будет иметь смешанный биткойн-выход 1 и несмешанный биткойн-выход 05. Биткойн 05 считается «несмешанным», потому что его можно связать с исходным выходом Алисы 15. Смешанный вывод больше не может быть напрямую связан с вводом и будет иметь набор анонимности, состоящий из всех других участников CoinJoin. 

Чтобы сохранить конфиденциальность CoinJoin, крайне важно, чтобы смешанные и несмешанные выходы никогда не были связаны друг с другом. В случае, если они случайно агрегируются в блокчейне биткойна в одной или нескольких транзакциях, наблюдатель может использовать эту информацию для отслеживания смешанных выходных данных до их источника. 

В случае с хакером DAO, похоже, что в процессе использования кошелька Wasabi они использовали один адрес в нескольких CoinJoins; в одном случае адрес использовался как несмешанный выход сдачи, во втором случае он использовался как смешанный выход.

Это относительно необычная ошибка в контексте CoinJoin, потому что этот метод вины по ассоциации требует транзакции ниже по течению от CoinJoins для «объединения» несмешанных и смешанных выходов, связывая их вместе. Но в этом случае анализировать транзакции за пределами двух CoinJoins не требовалось, потому что один и тот же адрес использовался конфликтующими способами в двух отдельных CoinJoins. 

По сути, такая возможность существует из-за конструктивного решения в программном обеспечении Wasabi Wallet: Wasabi Wallet использует единый путь вывода как для смешанных, так и для несмешанных выходных данных. Это считается плохая практика. Сотрудник Wasabi заявил, что это должно было сделать восстановление кошелька совместимым с другими кошельками, однако BIP84 (который является схема вывода Wasabi Wallet) имеет стандартный способ распознавания пути вывода, назначенного для изменения результатов.

Сбои, вызванные этим выбором дизайна, наиболее заметны, когда у пользователя одновременно запущены два экземпляра кошелька Wasabi с использованием одного и того же начального числа. В этом сценарии два экземпляра могут выбрать один и тот же адрес таким конфликтующим образом при одновременной попытке запуска микса из каждого экземпляра. Об этом предупреждают в официальная документация. Также возможно, что виновниками были известные ошибки в кошельке Wasabi.

Выводы и выводы

Итак, что мы узнаем из этого? Хотя эта ошибка с васаби не совсем конец истории, она сыграла решающую роль в отслеживании предполагаемого хакера. Еще раз подтверждается наша вера в то, что конфиденциальность — это сложно. Но на практике у нас есть еще один пример важности предотвращения загрязнения вывода при использовании инструментов конфиденциальности и того, насколько тщательный «контроль над монетами» требуется как пользователям, так и программному обеспечению. Возникает вопрос, какие протоколы конфиденциальности предназначены для минимизации этого класса атак? 

Одним из интересных решений является CoinSwap, где вместо объединения выходных данных в большую транзакцию вы обмениваетесь выходными данными с другим пользователем. Таким образом, вы обмениваетесь историями монет, а не объединяете истории монет. Что еще более важно, если CoinSwap выполняется вне сети (как это реализовано в Mercury Wallet), вообще не нужно обрабатывать несмешанные выходные данные сдачи. 

Хотя существуют возможные пользовательские ошибки, которые могут привести к «де-своппингу» CoinSwap, эти ошибки, возможно, гораздо более очевидны для конечного пользователя, потому что любое слияние выходов с нарушением конфиденциальности может быть выполнено только путем явного смешивания поменял вывод на тот, который еще не был заменен, в отличие от объединения двух выходов, которые уже прошли через CoinJoin, только один из которых на самом деле смешанный.

Кошелек Mercury в настоящее время является единственным средством CoinSwap вне сети, доступным для конечных пользователей. Он позволяет пользователям блокировать свои монеты в протоколе второго уровня (известном как цепочка состояний), а затем вслепую обмениваться своими выводами с другими пользователями цепочки состояний. Это очень интересный метод, с которым стоит поэкспериментировать тем, кто заинтересован в изучении новых инструментов конфиденциальности с интересной функциональностью и приемлемыми компромиссами.

Получите ежедневный обзор Bitcoin, Defi, NFT и Web3 новости от CryptoSlate

Это бесплатно, и вы можете отказаться от подписки в любое время.

Получить Edge на крипторынке?

Станьте участником CryptoSlate Edge и получите доступ к нашему эксклюзивному сообществу Discord, более эксклюзивному контенту и анализу.

Ончейн анализ

Снимки цен

Больше контекста

Присоединяйтесь сейчас за 19 долларов в месяц Узнайте обо всех преимуществах

Источник: https://cryptoslate.com/what-can-we-learn-from-studying-hacks-revealing-insights-on-privacy-and-cryptocurrency-movements-after-the-dao-2016-hack/