SeedSigner: оффлайн-крепость для ваших биткоинов
Cover

SeedSigner: аппаратный кошелек своими руками

August 24, 2023

Как лучше всего хранить свои биткоины? Безопасное и доступное холодное хранение биткоина.

Гид подготовлен Тони⚡️.Поддержать проект.

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

SeedSigner разрабатывается энтузиастами. Его код открыт и поддерживается разработчиками абсолютно бесплатно. Если этот проект принес вам пользу, перейдите по этой ссылке и поддержите команду, стоящую за ним!

Проблема #

Сложности #

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

Заявление Ledger

Распространенным решением ранее были официальные реселлеры, но по вышеупомянутым причинам сегодня они не способны предоставлять свои услуги на территории РФ. И даже ранее, когда проблем с доставкой не было, доверие к ним гарантировалось авторитетом производителей, таких как Ledger и Trezor. Проблемой даже в этом случае является то, что из-за усложнения и “удлинения” логистической цепочки (появляется больше третьих лиц, что повышает вероятность вмешательства и нарушения целостности устройства), кто-то из сотрудников одной из сторон может “пойти во все тяжкие” и подменить внутренности устройства. Мы не раз видели подобное на примере бедолаг, покупавших аппаратный кошелек у третьих лиц, только чтобы отправить свои сбережения на неподконтрольный им адрес, и Trezor здесь является не исключением, а лишь одним примером из многих

Опасности #

Именно по этой причине любимчик многих прожженных биткоинеров - самых громких и уважаемых голосов международного пространства - фирма Coinkite, никогда не сотрудничала с реселлерами, и отправляла свои устройства исключительно из своего главного офиса в Канаде. Риск вмешательства в целостность устройства слишком велик, а ставки слишком высоки. Представьте, что вы собираетесь хранить на своем кошельке $1000 долларов - на самом деле не такие уже и большие деньги на сегодняшний день - и решаете сберечь $30, обратившись к реселлеру. Каким бы мизерным не был шанс того, что вам попадется неоригинальный кошелек, он все же существует. Вы правда готовы рискнуть $1000, чтобы сэкономить $30?

Сегодня времена “минимального риска” уже позади, и мы остались с еще более грустными вариантами - покупкой аппаратных устройств у “вроде-бы-слишком-авторитетных-чтобы-обмануть” частных магазинов и, абсолютно неприемлемой опцией покупки устройства на Wildberries, Ozon и т.п. Я не могу поверить, что люди действительно покупают устройства, на которых планируют хранить крупные суммы, в онлайн-магазинах общего назначения, но это действительно происходит.

Комментарий довольного покупателя кошелька Trezor на Ozon

Дороговизна #

В связи со сложностями доставки цены на устройства становятся все менее дружелюбными. Базовая модель популярного кошелька Trezor One продается с 28% наценкой по сравнению с ценами на официальном сайте:

Когда речь заходит о продвинутых моделях, разница в цене приближается к 5,000 рублей:

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

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

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

Необходимые компоненты #

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

Raspberry Pi Zero #

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

Приобрести микрокомпьютер можно на AliExpress или в любом магазине электроники на ваш выбор. По ссылке на AliExpress доступна модель с избыточной комплектацией, но многие составляющие здесь полезны - зарядное устройство позволит вам запускать ваше устройство прямо от розетки, избегая подключения к компьютеру. Еще более важной особенностью этой модели является то, что по ссылке доступна Raspberry Pi WH - эта модель уже оснащена так называемыми пинами, к которым мы впоследствии будем подключать плату с дисплеем. Обратите внимание, так как многие продавцы предлагают модель “W”, в которой этих пинов нет. Неудобство этой версии заключается не только в том, что вам придется покупать блок с пинами отдельно, но и то, что вам придется самостоятельно припаивать этот блок. Будьте внимательны.

На рынке доступно две основные версии Raspberry Pi Zero - W и WH. Первая из моделей (W) продается без пинов. Это означает, что вам придется покупать пины отдельно и припаивать их самостоятельно. Я настоятельно рекомендую искать именно модель Raspberry Pi Zero WH.

Дисплей #

Плата с дисплеем и джойстиком - второй необходимый компонент. С одной стороны он крепится на пины Raspberry, а с другой крепится к микрокомпьютеру на специальные болты. Убедитесь, что болты идут в комплекте. Ссылка на товар на AliExpress. Разумеется, этот элемент также доступен в куче магазинов и вы вольны приобрести его где угодно. Обратите внимание, что если вы планируете использовать устройство в оригинальном корпусе, важно приобрести плату с дисплеем 1.3 дюйма. Также обратите внимание на количество и расположение кнопок. Товар должен быть идентичен тому, что вы увидите на фото ниже:

Камера #

Камера будет использоваться для сканирования QR-кодов и генерации приватных ключей (энтропия берется из сделанной на камеру фотографии). Ссылка на товар на AliExpress. Для нашего устройства будет нужен нестандартный шлейф для подключения камеры к Raspberry Pi Zero. Некоторые более дорогие комплекты содержат несколько разных шлейфов. Вы вольны выбрать тот, который приглянулся вам, но мы заказывали шлейф отдельно. Ссылка на шлейф на AliExpress.

Карта microSD  #

Карта нужна для установки и запуска программного обеспечения SeedSigner. На официальном сайте указано, что объема в 64MB будет достаточно. Не скупитесь и покупайте самую качественную microSD - она прослужит дольше.

Корпус #

Оригинальные корпуса, предлагаемые проектом можно найти в заграничном онлайн-магазине. Корпус, как правило, продается в двух вариантах - открытая и закрытая оранжевая пилюля. Корпуса можно (и рекомендуется) распечатать самостоятельно: обратиться в агенство 3D печати в ближайшем крупном городе или найти энтузиаста, например, на Авито. Проблем с этим возникнуть не должно, а цена вопроса варьируется от 250 до 1000 рублей в зависимости от наглости исполнителя 😄. Я нашел парня, который напечатал мне Orange Pill кейс за 600 рублей.

Обратите внимание, что кейс Open Pill (слева) не требует дополнительных деталей, в то время как для сборки Orange Pill (справа) потребуется:

  • 4 шестигранных болта М2.5 female-female длиной 10мм (как эти)

  • 4 стальных болта M2.5 длиной 6мм (как эти)

  • 4 стальных болта M2.5 длиной 12мм (как эти)

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

На Printables доступно множество кейсов, спроектированных энтузиастами и вы можете напечатать любой из понравившихся, но обратите внимание, что у кейсов может отличаться разъем для видеокамеры, и многие из них требуют более компактной камеры. Такую камеру можно приобрести по следующей ссылке: AliExpress

Хочу подчеркнуть, что все элементы, необходимые для сборки SeedSigner, можно приобрести буквально где угодно. В этом и заключается прелесть данного решения. Компоненты доступны на Wildberries и Ozon (хотя ценник там не особо радует), в местных магазинах техники, на разборках и т д. В случае SeedSigner не нужно бояться того, что какие-то детали, купленные с рук могут быть заражены вирусом или каким-либо образом коррумпированы. При генерации сид-фразы используется проверяемое программное обеспечение с открытым исходным кодом, а сама плата (RPi) лишь производит вычисления. Учитывая, что вы никогда не подключаете устройство к интернету, передать какие-либо данные ни у одного злоумышленника также не выйдет.

Цена #

В итоге SeedSigner в полной комплектации обойдется вам менее, чем в 5,500 рублей, что значительно дешевле базовой модели кошелька Trezor One и всех остальных зарекомендовавших себя устройств. 

НаименованиеЦена в рублях (с учетом доставки в Москву)
# Raspberry Pi Zero WH2,951
# ЖК-дисплей IPS 1,3 дюйма1,274
# Модуль камеры Raspberry Pi322
# FFC кабель для Raspberry Pi107
Карта microSD200
Печать корпуса600
Итого5,454

Сборка #

Разжившись всеми компонентами, можно приступать к установке программного обеспечения и сборке.

Составляющие SeedSigner

Программное обеспечение #

Скачиваем ПО из гитхаб-репозитория SeedSigner тут. На момент написания статьи это файл seedsigner_os.0.6.0.pi0.img; после выхода новых релизов или каких-либо других изменений нас будет интересовать файл, чье название заканчивается на ...pi0.img

Рекомендуется (но не является обязательным условием) проверить ПО на аутентичность. Я не буду подробно останавливаться на этом шаге, но желающие разобраться в этом процессе, могут обратиться к этому гиду от команды SeedSigner. 

Устанавливаем приложение Balena Etcher и прожигаем скачанный образ на microSD.

Железо #

Сборка компонентов не должна вызвать никаких сложностей. Я опишу сборку элементов без использования корпуса. Если вы обзавелись корпусом и нуждаетесь в видеогиде, можете перейти по этой ссылке.

Начнем с установки шестигранных болтов (латунные болтики в зиплоке) на плату RPi в отверстия, находящиеся на противоположной стороне от пинов. Эти болты будут выступать в качестве опор для устанавливаемой сверху платы экрана; с одной стороны плата будет крепиться на пины, а с другой - на эти болты.

Оттягиваем зажим для шлейфа (слева на изображении выше) на Raspberry и делаем то же самое на плате камеры. Будьте осторожны, чтобы не сломать зажим, иначе зафиксировать шлейф и, соответственно, подключить камеру не удастся.

Снимаем шлейф, изначально прикрепленный к камере (белый), и подсоединяем широкую часть золотистого шлейфа к плате камеры, а узкую - к RPi. Контакты (блестящая сторона шлейфа) должны быть направлены в сторону камеры, а у RPi - в противоположную сторону от пинов. Прижимаем зажимы обратно к платам равномерно с обеих сторон. Не переусердствуйте, но убедитесь, что шлейф плотно прилегает к платам. Если вы не уверены в том, как присоединить шлейф, обратитесь к видео, которым я делился выше.

Далее нежно загибаем шлейф, чтобы он обогнул RPi сверху (вдоль пинов). Это делается для того, чтобы камера потом не висела на шлейфе, а была аккуратно установлена на обратной стороне устройства.

Устанавливаем плату с дисплеем сверху RPi и продетого шлейфа камеры. Убедитесь, что пины точно расположены по отношению к разъемам в плате и равномерно нажмите на плату сверху. Результат должен выглядеть примерно так: 

Чтобы закрепить камеру на задней части устройства я использовал кабельные стяжки. Для этого оттягиваем камеру чуть сильнее и отводим ее на заднюю часть устройства. Кабельные стяжки поочередно затягиваем с каждой стороны дисплея, заранее позиционируя их так, чтобы замочки располагались также сзади. Убедитесь, что стяжки не загораживают оба выхода mini USB - один из них нам понадобится, чтобы питать устройство.

Сборка завершена. Хотя такой внешний вид устройства придется по душе не каждому, у него есть свой шифропанковский шарм и вещь больше похожа на какую-то игрушку для ботанов, чем на устройство для подписи биткоин-транзакций. В итоге такой вариант подойдет тем, кто не может найти энтузиаста с 3D принтером или не желает тратить ~600 рублей на корпус и предпочитает превратить их в саты - на момент написания статьи это примерно 25,000 сат 😉. Более того, если вы выберете предложенную выше маленькую камеру, выглядеть устройство будет более аккуратно, а прикрепить ее можно будет на имеющуюся в наборе клейкую ленту. Но имейте в виду, что вы можете столкнуться с проблемой при откреплении камеры, если решите позже использовать кейс.

Использование #

Включение #

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

Процесс включения устройства занимает 45-50 секунд. Не пугайтесь 😄

Основные элементы #

На домашнем экране расположены 5 базовых элементов управления устройством:

  1. Scan: вызывает камеру для сканирования QR-кода и подписи транзакций.

  2. Seeds: предоставляет доступ к хранящимся на устройстве (в период данной сессии) сид-фразам.

  3. Tools: инструменты, позволяющие создать новый сид, высчитать контрольную сумму сида или вызвать эксплорер биткоин-адресов.

  4. Settings: настройки устройства

  5. Power (значек выключения в правом верхнем углу): позволяет выключить или перезагрузить устройство.

Базовая настройка #

В первую очередь рекомендуется проверить корректно ли работают все кнопки. Для этого переходим в раздел ⚙️ Settings → I/O test. Здесь вы сможете убедиться, что все кнопки и джойстик работают исправно.

Еще одной важной опцией устройства является возможность выбрать, будет ли SeedSigner запоминать выставленные вами настройки, такие как поддерживаемые скрипты (SegWit, Taproot) и схемы подписи (мультисиг и единичная подпись). Если вы решите сохранять указанные вами настройки, они будут храниться на SD карте. Сделать это можно также перейдя в ⚙️ Settings → Persistent settings и поставив галочку напротив поля “Enabled”.

В разделе ⚙️ Settings также можно выбрать:

  • Поддерживаемое сопутствующее ПО, то есть программные биткоин-кошельки, с которыми вы впоследствии сможете собпрягать устройство (в подразделе “Coordinator software”).
  • Формат отображения сумм (в подразделе “Denomination display”).

В продвинутых настройках - “Advanced” вы можете выбрать:

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

  • Плотность генерируемого QR-кода. По умолчанию эта функция установлена на среднее значение. Это нормальная настройка, но я все же рекомендовал сменить ее на “High” - более плотное заполнение точек кода, - если вы собираетесь генерировать сид и QR, где планируете хранить крупные суммы в течение длительного срока. Чем выше плотность, тем выше вероятность того, что каким-либо образом частично испорченный QR все равно считается в будущем. Да, вам придется чуть больше повозиться с переносом кода на бумагу или металл, но оно того стоит.

  • Возможность экспорта Xpub - Xpub export - для использования привычного ПО на вашем компьютере или мобильном в качестве watch-only устройства. Благодаря этой опции вы сможете генерировать адреса получения, конструировать и транслировать транзакции в сеть, в то время как SeedSigner потребуется для подписи транзакций вашим хранящимся оффлайн приватным ключом. Эта функция должна быть включена.

  • Поддерживаемые функции - Sig types - и скрипты - Script types.

  • Поддержку пассфразы BIP-39 - важная функция, которую стоит оставить включенной и непременно использовать при создании крупных и долгосрочных кошельков. Лучшим вариантом здесь, пожалуй, является опция “Enabled”. Таким образом при каждом создании приватного ключа устройство будет предлагать вам добавить пассфразу. Такой подход эффективно создает сразу 2 кошелька - один без нее, доступный по простому скану QR-кода или вводу сид-фразы и второй, который открывается, если вы вводите пассфразу сразу после скана QR-кода. Это отличная опция не только для повышения безопасности, но и возможность “прикинуться чайником” или создать подставной кошелек. Вы можете закинуть небольшую сумму на кошелек / сид / QR без пассфразы, что введет злоумышленников - если те каким-то образом получат доступ к вашему QR или сиду - в заблуждение; они решат, что этот кошелек с небольшой суммой и есть ваше основное хранилище. Основной же ваш кошелек со сбережениями будет доступен по тому же QR / сиду в комбинации с пассфразой.

  • Поворот камеры - Camera rotation. Эта опция может пригодиться, если вы будете использовать нестандартный чехол, который заставит вас держать устройство отличным от привычного способа.

  • Формат QR-кодов - CompactSeedQR: компактные или полноценные. Компактные QR-коды упрощают задачу переноса кода на бумагу и добавляют дополнительный уровень “защиты от дураков”, так как этот формат не распознается большинством биткоин-кошельков и QR-сканнеров. При этом, даже в маловероятном случае кончины проекта SeedSigner, вы все равно сможете декодировать ваш QR, содержащий приватный ключ, хоть это и потребует дополнительных усилий. Я использую компактный формат QR-кода. Подробнее об этом можно узнать из документации проекта тут.

  • Поддержку “дочерних сидов” - BIP-85 child seeds: эта функция позволяет создавать новые сид-фразы на основе мастер-сида. Таким образом вы можете генерировать до 10,000 новых кошельков, каждый из которых можно будет восстановить, имея лишь основной мастер-сид. Этой опции есть множество применений; подробнее о ней можно узнать здесь.   

  • Отображение предупреждающих сообщений - Show privacy warnings, Show dire warnings: эти оповещения появляются, чтобы напомнить вам, что на следующем экране будет отображена приватная информация или что ваши действия вызовут необратимые последствия (удаление сида и т.п.). Эти сообщения можно отключить, если вы считаете себя экспертом и находите подобные напоминания раздражающими.

  • Отображение логотипа партнеров - Show partner logo: если вас раздражает лого HRF при старте устройства, вы можете его отключить в этом подразделе меню.

Функции #

SeedSigner поддерживает множество функций: целый ряд скриптов (от легаси до тапрута), мультисиг, парольные фразы и даже BIP-85 - генерацию дочерних сид-фраз. Многие из этих функций довольно комплексные и вряд ли будут использоваться рядовыми пользователями, поэтому я не буду подробно останавливаться на сложных схемах взаимодействия с устройством. При этом я и другие активные участники сообщества всегда рады помочь всем желающим в случае возникновения каких-либо проблем. Вы можете написать лично мне (контакты доступны в разделе обратная связь) или вступить в наш закрытый чат (вход стоит 2100 сат и оплачивается единоразово через сеть Лайтнинг). Я же опишу самый базовый вариант использования SeedSigner и посоветую видео участника сообщества, где он подробно разбирает возможности устройства - от генерации ключей до подписи транзакций и использования устройства в схеме мультисиг с настольным и мобильным кошельками.

Создание сид-фразы и генерация QR #

Для первоначального создания сид-фразы отправляемся в 🛠️ Tools → New Seed (вы можете выбрать между генерацией фразы из изображения (📷) и через бросок игральных кубиков (🎲). В первом случае устройство предлагает сделать фото на камеру и берет энтропию (необходимые случайные значения) из этого файла; во втором - вы сами бросаете игральную кость, и полученные значения представляют собой случайные числа, ложащиеся в основу сид-фразы. Подробнее о математической составляющей генерации приватных ключей можно узнать из видео Игоря. Вне зависимости от выбранного способа после того, как вы сделали фото или (много раз) бросили кости, вам будет представлен сид. Вы вольны выбрать сид из 12 или 24 слов. Помните, что с одной стороны 24 слова будут надежнее, а с другой - вам придется больше повозиться при переносе QR-кода на бумагу. Я все же убежден, что оно того стоит - вы один раз потратите больше времени, но ваши средства навсегда останутся в разы более защищенными.

Запишите сид и после убедитесь, что вы ничего не перепутали. Устройство вам в этом поможет.

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

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

На этом процесс создания сид-фразы завершен. Более того, мы записали саму фразу, то есть у нас есть резервная копия кошелька. Но как нам пользоваться, не жертвуя при этом удобством? Для этого мы будем использовать так называемый watch-only wallet - кошелек, который будет способен получать средства, конструировать и отправлять транзакции, но не будет иметь доступа к сид-фразе и/или приватному ключу. Транзакции будут подписываться через SeedSigner в оффлайн-режиме - ваш приватный ключ никогда не будет касаться интернета, но при этом мы не будем лишены удобства использования привычных нам мобильных или десктопных кошельков.

В рамках этого гида я предоставлю пример использования мобильного кошелька Blue Wallet в связке с SeedSigner подробнее о кошельке Blue можно узнать в этом гиде. Другими совместимыми кошельками являются Nunchuck (моблильный), Sparrow и Specter (десктопные кошельки).

Для подключения мобильного кошелька на SeedSigner нажимаем “Export Xpub” (экспортировать публичный ключ). Эта опция находится в разделе Seeds основного меню.

Не выключайте устройство посреди процесса генерации и бэкапа - при выключении SeedSigner стирает всю информацию из памяти.

Здесь вы можете выбрать Single Sig (подпись только SeedSigner’ом) или Multi Sig - подпись транзакций несколькими устройствами. В данном примере остановимся на более простом варианте - Single Sig; об использовании мультисиг-подхода можно узнать из этого видео (таймстемп).

Далее перед нами встает выбор скрипта - Native Segwit / Legacy / Taproot. На момент написания гида лучшим вариантом является Native Segwit - он по всем параметрам превосходит Legacy, а Taproot пока что недостаточно распространен. Далее выбираем кошелек, в который мы хотим экспортировать публичный ключ.

SeedSigner покажет нам детали публичного ключа: 

  • Отпечаток

  • Путь деривации

  • Xpub

Нажимаем “Export” и устройство предоставит нам QR-код, который следует отсканировать кошельком. 

Открываем Blue Wallet (или любой другой совместимый кошелек), нажимаем на знак “+” в правом верхнем углу → Импортировать кошелек → Отсканируйте QR-код.

Сканируем код на дисплее SeedSigner камерой BlueWallet и кошелек появляется в мобильном приложении:

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

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

Обратите внимание, что для сид-фраз разной длины потребуются разные размеры QR-кодов:

Количество словТипКоличество клеток
12стандарт25х25
12компакт21х21
24стандарт29х29
24компакт25х25

Вы можете подготовить QR-код и на простом клетчатом листе бумаги, как это сделал мой подписчик, сделавший мне один из самых крутых подарков, который я когда-либо получал - составляющие SeedSigner и QR приватного ключа с небольшим стеком сатошиков 🧡:

Как видите, исполнение не должно быть идеальным. Устройство отлично справляется со считыванием информации. Единственным условием является точность нанесения точек. SeedSigner предоставляет возможность проверить, корректно ли вы скопировали QR.

Обратите внимание, что квадраты по углам должны быть полностью закрашены, в то время как остальные точки могут быть более удобно нанесены в виде кружочков. Это особенно важно для тех, кто собирается наносить свой QR-код на металлическую пластину.

Итак, теперь у нас есть 2 бэкапа нашей сид-фразы: сами слова и QR-код. Первый способ нельзя назвать удобным для повседневного использования - мало кто захочет вводить сид каждый раз, когда необходимо подтвердить транзакцию. Поэтому сид мы можем как следует спрятать, а QR по необходимости держать поближе. Подходы к обеспечению безопасности сида лежат далеко за рамками этого гида; оставляю этот вопрос на вашей совести. Лишь подчеркну значимость парольной фразы - пары слов, которые обеспечат безопасность ваших средств даже если злоумышленники получат доступ к вашему сиду или QR-коду. Также хочу напомнить об интересной особенности компактных QR-кодов, которые может генерировать SeedSigner. Стандартные коды хранят строку вашего сида в виде 12 или 24 четырехзначных чисел, соответствующих индексам сид-слов. Это позволяет любому биткоин-кошельку легко распознать и конвертировать код в приватный ключ. При том, что это может быть более удобным и универсальным подходом (если вы потеряли ваш SeedSigner, вы можете отсканировать код любым биткоин-кошельком), он вынуждает вас более тщательно прятать ваш QR, так как любой сможет просто отсканировать код камерой кошелька и получить доступ к приватному ключу. Компактные QR-коды занимают меньше места, так как хранят информацию в бинарном формате и не распознаются камерой телефона или кошелька, а точнее воспринимаются ими как непонятный набор символов:

Это повышает устойчивость вашего кода к “необразованным похитителям”, но не лишает вас возможности декодировать QR даже в отсутсвии SeedSigner, используя, например, приложения ZXing или ZBar. За подробностями советую обратиться к этому документу. В итоге я советую использовать компактные коды - их проще переносить на бумагу и сложнее расшифровать.

Получение и отправка средств #

Создав QR-код и экспортировав watch-only кошелек, можно приступать к получению (и, по необходимости, отправке) средств. 

Обязательно проверьте корректно ли работает схема получения и отправки на небольшой сумме, прежде чем отправлять все свои сбережения.

Процедура получения средств ничем не отличается от привычного использования горячего кошелька: открываем кошелек, нажимаем получить и генерируем адерс: 

  1. Нажимаем “Получить”.

  2. Сканируем QR-код или копируем адрес, чтобы вставить в кошелек для отправления.

  3. Полученные средства отображаются в watch-only кошельке.

Отправка средств также во многом похожа на привычное использование горячего кошелька, но, учитывая, что наши саты теперь хранятся оффлайн, необходимо осуществить пару дополнительных действий:

  1. Конструируем транзакцию как обычно: нажимаем “Отправить” и вводим адрес получателя и сумму. При первой попытке отправки Blue Wallet попросит подтвердить намерение использования кошелька в связке с SeedSigner.
  1. Сканируем QR, появившийся на экране телефона своим SeedSigner’ом.
Прежде чем сканировать код сконструированной транзакции, убедитесь, что в ваш SeedSigner загружен приватный ключ, соответствующий вашему watch-only кошельку. Если вы только что включили устройство, нужно сначала отсканировать QR-код вашего приватного ключа, по необходимости ввести пасс-фразу, и только потом отсканировать частично подписанную транзакции с экрана Blue Wallet (Seeds → Scan PSBT).
Частично подписанные транзакции хранят в разы больше данных, чем обыкновенные транзакции и QR-коды, генерируемые для экспорта публичных ключей. Убедитесь, что сняли защитную пленку с камеры на SeedSigner, в противном случае вы можете столкнуться с проблемой считывания QR-кода.
  1. Проверяем информацию, касающуюся отправления, на SeedSigner - сумму, адрес получателя, адрес сдачи и подтверждаем отправку. 
  1. SeedSigner подписывает транзакцию и генерирует еще один QR-код - код подписанной транзакции. Его необходимо отсканировать камерой кошелька Blue Wallet для дальнейшего транслирования в Биткоин-сеть.

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

SeedSigner обладает множеством дополнительных функций и возможностей. Изучайте это устройство, тестируйте возможные опции и поделитесь своим опытом в нашем чате. Появились вопросы? Заходите в раздел сайта “Обратная связь”.


Подключитесь к нашему релею, чтобы оставить комментарий. Подробнее.