Безопасен ли ваш Bitcoin кошелёк? Обзор проекта WalletScrutiny
cemehbl4

@cemehbl4

Безопасен ли ваш Bitcoin кошелёк? Обзор проекта WalletScrutiny
28.04.2023 21:31

И снова, здравствуйте. Сегодня я хотел бы рассказать вам о проекте https://walletscrutiny.com.

Идея проекта проста - по умолчанию мы не доверяем производителям биткоин кошельков, поэтому попытаемся проверить их доступными средствами.

Делать аудит за свой счёт или силами своей команды разработчиков - слишком дорого и долго. И в любом случае это приведет лишь к дополнительному звену в цепочке доверия. Именно поэтому на главной сайта всегда красуется бублик в разделе Audited.

Далее делается предположение, что воспроизводимая сборка является значительным плюсом кошелька. Воспроизводимая (Reproducible) или детерминированная сборка (Deterministic Build) - это когда проект собирается из опубликованного авторами исходного кода, а на выходе получается запускаемый бинарный файл с тем же хэшем, что и у готового файла, который разработчики предлагают пользователям. Таким образом можно убедиться, что опубликованный исходный код на 100% соответствует тому, из которого собрано готовое для установки приложение.

Следующий пункт в этой иерархии - кошельки с открытым кодом, но команде проекта не удалось воспроизвести готовый бинарник, совпадающий с распространяемым (Unreproducible).

Далее - Build Error, то есть кошельки, которые авторам проекта не удалось собрать по опубликованным инструкциям от разработчиков.

No Source - тут всё понятно, нет исходного кода.

Custodial - приватные ключи находятся на серверах разработчиков, а не на устройстве пользователя.

Так же имеются дополнительные разделы, например:

Fake - подделки под настоящие приложения;

No BTC - кошельки, не поддерживающие биткоин;

Few Users - мало скачиваний с маркетов.

Ещё есть дополнительные метки, такие как Stale - то есть давно не обновляашиеся, или No Send/Receive - банально не рабочие.

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

В целом, сайт весьма интересный и рекомендуется к изучению.

А что же является недостатками сего замечательного ресурса?

На сайте присутствуют приложения только из Play Market и App Store, то есть только мобильные кошельки. На практике же десктопные решения зачастую предпочтительнее мобильных товарищей.

Есть раздел с аппаратными кошельками, в который я не стал пока особо вникать. А причина проста - Trezor T занесён в Reproducible, а Леджеры определены в No Source - и в том, и в другом случае, это является правдой лишь отчасти.

Во главу угла ставится воспроизводимость сборки. Тут нужно пояснить, что сам факт воспроизводимости не является гарантией безопасности. Гораздо безопаснее использовать популярный, но невоспроизводимый, кошелёк с открытым исходным кодом, чем кошелёк, которым мало пользуются, но он воспроизводим. А всё дело в том, что, чем популярнее кошелёк, тем больше независимых разработчиков и энтузиастов изучают его код, а следовательно имеется меньше не выявленных уязвимостей. С их же подходом, например, Mycelium или SBW: Simple Bitcoin Wallet имеют оценку выше, чем уважаемый в среде шифропанков Samourai Wallet, ориентированный на приватность. Если я, например, Mycelium хотя бы устанавливал, то про SBW даже не слышал. Так же считаю необходимым упомянуть, что авторы сайта являются разработчиками Mycelium - хорошо это или плохо, решать вам. К тому же в силу особенностей iOS и App Store, все открытые кошельки для iPhone будут всегда в категории Unreproducible. К тому же многие разработчики просто не хотят заморачиваться с Deterministic Build.

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

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

Второе, что хотелось бы реализовать - это ссылки на документацию по сборке и описание каких-то нюансов. Полные инструкции публиковать не реально, если описывать сборку с нуля. Естественно, я это сделаю по запросу для какого-то кошелька, который у интересующихся не получится собрать, как, например, я это делал для Ledger Live https://slabber.io/posts/1143.

Так же в описаниях будет добавлена информация о наличии в интерфейсе кошелька каких-либо дополнительных сервисов "на доверии", например, обменников.

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

Ну и конечно, добавлю сборку кошельков, в которых нет поддержки биткоина, тот же метамаск. Wallet Scrutiny для таких кошельков просто ставит метку No BTC, ничего более не проверяя.

А ещё Wallet Scrutiny никак не анализирует серверную часть кошелька, а только пользовательский интерфейс, этот пробел, безусловно, требует заполнения.

Ну и конечно, я не с пустыми руками)

Пример обзора

Я решил протестировать сборку AtomicDEX, о котором подробно писал ранее https://slabber.io/posts/2053.

Имеется четыре проекта.

1) AtomicDEX WEB

[!] Исходный код не опубликован

2) AtomicDEX Desktop

Здесь я привожу ссылку на коммит, который использовался в тесте, по нему можно определить дату последнего изменения в коде перед тестом.

Linux: успех. Успехом считаем завершенную компиляцию и тестовый запуск.

macOS: успех

Windows: провал. Готовое приложение не запускается с ошибкой 0xc000007b. Если заменить файл wally.dll на версию из официального релиза, то приложение работает. wally.dll - сторонняя библиотека, которая компилируется по инструкции от разработчиков AtomicDEX с некоторыми нюансами, описывать которые смысла не имеет, так как готовый файл всё равно не работает.

3) AtomicDEX Mobile

Android: успех

iOS: успех

4) AtomicDEX API

AtomicDEX использует electrum-серверы или публичные серверы EVM-блокчейнов, предоставляемые разработчиками монет. API является связующим звеном между серверами и пользователями, а также пользователей друг с другом для совершения атомарных обменов.

Linux: успех

macOS: успех

Windows: успех

Итог

Сборка всех компонентов AtomicDEX возможна из исходного кода, за исключением WEB-версии и нюансов с билдом под Windows. Документация достаточно подробная. Детерминированная сборка не документируется. В WEB-версии так же имеется ограниченная поддержка кошельков Trezor - только в режиме кошелька, для торговли использовать не получится.

Обзор №2, так сказать, чтобы вы почуствовали разницу

BRD (Bread) Wallet

1) Мобильное приложение

[!] Исходный код для версий новее 4.14 не опубликован

Android: провал. Ошибка сборки

iOS: провал. Ошибка сборки

Также протестирована сборка из старых репозиториев:

Android: провал. Ошибка сборки

iOS: провал. Не запускается из-за обязательного включения iCloud Services, что невозможно сделать без платного аккаунта разработчика Apple

2) Серверная часть

[!] Исходный код не опубликован

Итог

Сборка приложений невозможна из исходного кода. Подробная документация по сборке отсутствует. Серверная часть является закрытым сервисом. Проект заброшен, последняя версия кошелька предлагает мигрировать на другой кошелёк с закрытым кодом - Coinbase Wallet.

Я думаю, всем понятно, какой из представленных выше кошельков лучше не использовать:)

В условиях Дикого Криптозапада мы должны обладать как можно более исчерпывающей информацией о программах, способных тратить наши биткоины. Если вам, как и мне, надоели бесконечные обзоры кошельков, а-ля "Лучший криптокошелек 2023" или "Какие кнопки (из двух) нажимать на ладжере" - присоединяйтесь, пора сделать что-то стоящее. Телега: https://t.me/cemehbl4_chat

Post earned 0.00 UFO

Комментарии

Comments: