2,9⋅10^50 лет на взлом: обзор некастодиального кошелька Blender Wallet со встроенным биткоин-миксером
По данным портала Chain.info, почти 15% доступных биткоинов хранятся на пяти централизованных биржах. Если что-то случится с серверами бирж или держателями ключей, пользователи потеряют доступ к криптовалюте. Так произошло с OKEx: криптобиржа приостановила вывод средств, когда не смогла связаться с одним из держателей приватного ключа.
Рассказываем о более безопасном способе хранения криптовалюты — некастодиальном кошельке Blender Wallet со встроенным биткоин-миксером.
Аппаратные, кастодиальные и некастодиальные кошельки: как это работает
Владельцы криптовалюты используют три типа кошельков: аппаратные, кастодиальные и некастодиальные.
Аппаратные кошельки — электронные устройства, которые хранят приватные ключи в зашифрованном виде. Для доступа к биткоин-адресу нужно подключить аппаратный кошелек к компьютеру и ввести пароль.
Кастодиальные кошельки хранят приватные ключи на серверах. Пользователь вводит логин и пароль, а кошелек ищет его ключ и предоставляет доступ к биткоин-адресу.
Некастодиальные кошельки не хранят приватные ключи, а генерируют их при каждом входе пользователя из мнемонической фразы. К таким кошелькам относится Blender Wallet от создателей биткоин-миксера Blender.io.
Мнемоническая фраза (seed) — это набор слов из словаря BIP39, в котором каждое слово соответствует числу от 1 до 2048.
Blender Wallet использует мнемоническую фразу так:
- заменяет каждое слово фразы двоичным числом. Например, слово «abandon» становится 00000000000, а «bamboo» — 00010010001;
- объединяет полученные числа в строку;
- подставляет строку в формулу генерации приватного ключа вместо случайной переменной k. От этой переменной зависит результат вычислений: если два раза использовать одну и ту же k, получатся одинаковые ключи.
Мнемоническую фразу нельзя восстановить, поэтому во время регистрации Blender Wallet проверяет, что пользователь ее записал. Для этого кошелек запрашивает несколько слов с разными порядковыми номерами.
Почему Blender Wallet не взломать: фраза, пароль, аутентификация
Устойчивость мнемонической фразы ко взлому зависит от ее длины и размера словаря.
Мы посчитали, сколько времени потратят майнеры биткоина на взлом фразы Blender Wallet. Для этого мы вычислили количество комбинаций из 24 слов и разделили на хешрейт сети. Оказалось, что для взлома перебором майнерам понадобится 2,9⋅1050 лет.
В Blender Wallet можно использовать дополнительные меры безопасности:
- задать пароль для входа в кошелек. Blender Wallet добавляет его к мнемонической фразе: это увеличивает время взлома в 2048 раз;
- включить двухфакторную аутентификацию. Blender Wallet использует Google Authenticator для подтверждения входа в кошелек и проведения транзакций.
Пользователь задает пароль при создании кошелька. Его нельзя добавить или изменить после формирования мнемонической фразы. Двухфакторную аутентификацию можно включать и выключать в любой момент.
Безопасность средств на некастодиальном кошельке зависит от того, как пользователь хранит мнемоническую фразу. Ее не стоит отправлять самому себе в мессенджере или загружать в облако.
Особенности кошелька: лейблы, выбор и заморозка адресов
Адреса и транзакции в блокчейне обозначаются последовательностями символов, которые трудно запомнить и различить. Blender Wallet упростил работу с транзакциями при помощи лейблов, заморозки и выбора нескольких адресов. Пользователи могут:
- присваивать метки транзакциям и адресам для быстрого поиска и учета;
- замораживать адреса для контроля трат;
- выбирать один или несколько адресов при отправке средств.
Blender Wallet проводит анонимные транзакции при помощи встроенного биткоин-миксера: смешивает монеты пользователя с биткоинами других участников сети. Благодаря этому никто не может отследить настоящего отправителя. Стоимость микширования составляет 0,5–2% от суммы транзакции.
Кроме этого, Blender Wallet поддерживает иерархически детерминированные адреса (HD Wallet). Иерархическая детерминация — это способ управления несколькими биткоин-адресами при помощи одного приватного ключа. Кошелек с иерархической детерминацией генерирует приватные ключи для дочерних адресов при помощи мнемонической фразы родительского адреса.
Иерархически детерминированные адреса полезны тем, кто заботится об анонимности. Blender Wallet позволяет сгенерировать несколько чистых дочерних адресов и принимать на них транзакции.
Для доступа к родительскому и дочерним адресам используется одна и та же мнемоническая фраза. При этом приватные ключи дочерних адресов можно экспортировать и использовать в других кошельках.
Тестируем Blender Wallet: отмечаем транзакции и смотрим статистику авторизаций
В Blender Wallet нельзя импортировать приватные ключи и мнемонические фразы из других кошельков, поэтому мы создали новый кошелек с паролем и двухфакторной аутентификацией.
Первым делом перевели на него $1,5, присвоили транзакции лейбл и нашли ее по метке. Потом заморозили адрес и попробовали отправить транзакцию — Blender Wallet ее отклонил.
Миксером не пользовались: из-за активности в сети не хватило денег на оплату комиссий.
Blender Wallet сохраняет статистику входа в кошелек и отмечает неудачные попытки. Если злоумышленники получат доступ к мнемонической фразе, вы заметите попытку взлома и успеете вывести средства.
Отдельно отметим русскоязычный интерфейс и полностью переведенный FAQ. В документации есть такая информация:
- работа с биткоином и криптокошельками для новичков;
- список протоколов, которые поддерживает Blender Wallet;
- описание функций Blender Wallet.
Во время тестирования нашли недостаток кошелька: в Blender Wallet нельзя ввести размер транзакционной комиссии. Кошелек предлагает выбрать ее из доступных вариантов.
Выводы
Blender Wallet подойдет криптоинвесторам, которые заботятся об анонимности. Они могут смешивать транзакции с помощью миксера и принимать биткоины на чистые иерархические адреса.
Система лейблов и заморозки пригодится для работы с большим количеством адресов и сортировки транзакций. При этом метки будут видны только в Blender Wallet.
Blender Wallet не поддерживает импорт ключей из других кошельков. Вам придется создавать новый кошелек, но в этом есть плюсы: можно включить дополнительную защиту в виде аутентификации и пароля.
Подписывайтесь на новости ForkLog в Twitter!
Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!