Биткоин-кошелёк помогает получать платежи, видеть баланс и готовить переводы. Но это название охватывает разные способы управления: платежи может подписывать ваше приложение, отдельное устройство или оператор кастодиального сервиса. Поэтому важнее внешнего вида экрана понимать, кто контролирует ключи и как восстановить доступ.
Друг отправляет биткоин на адрес из вашего кошелька. Он не пересылает на телефон файл с монетами, а создаёт транзакцию в сети Bitcoin. Кошелёк отслеживает, поступил ли платёж и получил ли подтверждение в блоке, и учитывает его в балансе. Когда вы позже хотите заплатить сами, он готовит новую транзакцию. Для её одобрения обычно нужна цифровая подпись — доказательство права потратить средства. Кошелёк создаёт её закрытым ключом, секретной информацией, которую не раскрывает другим при подписании. Приложение и сеть выполняют разные задачи: кошелёк помогает провести платёж, а сеть проверяет его соответствие правилам. [1]
Показанный баланс часто состоит из нескольких отдельных ещё не потраченных сумм, называемых UTXO. Кошелёк находит их по данным, которыми управляет, и проверяет, какие уже использованы. Для простого наблюдения закрытые ключи не нужны. Watch-only Wallet может показывать поступления или готовить предложение платежа, но сам его не подпишет. Так удобно, например, следить за сбережениями, ключи от которых остаются в отдельном устройстве. Поэтому сумма на экране ещё не доказывает, что именно это приложение может отправить деньги. [1]
При Self-custody, то есть самостоятельном хранении, вы контролируете ключи, нужные для подписи. Вместе с этим вы отвечаете за их защиту и восстановление. В custodial, или кастодиальном, сервисе ключи хранит поставщик и именно он выполняет вывод средств. Баланс в его приложении показывает, сколько его учёт позволяет вам вывести; он не означает, что вы контролируете соответствующие ключи. Важны также доступность и правила сервиса. Поэтому два приложения могут показывать одинаковую сумму, но вести себя совсем по-разному при потере доступа или проблемах оператора. [1]
Адрес позволяет кому-то заплатить вам. Кошелёк создаёт его из данных, определяющих, как впоследствии можно потратить полученный биткоин. Адрес можно отправить плательщику; одного его знания обычно недостаточно, чтобы перевести ваши деньги в другое место. Иную роль играют закрытый ключ и Seed Phrase — резервная последовательность слов, из которой совместимые кошельки могут восстановить ключи. Эти секреты никому не передавайте. При этом передача адреса влияет на приватность: человек, знающий его, может просматривать его публичную историю. Новый адрес для следующего поступления помогает не связывать без необходимости разные платежи. [1]
Для платежа кошелёк выбирает подходящие UTXO, формирует сумму получателю и возможную сдачу, предлагает комиссию. Затем транзакцию подписывают и передают в сеть. Все шаги необязательно выполняет одно устройство. PSBT — формат передачи незавершённой биткоин-транзакции между приложением и устройством подписания. Hardware Wallet защищает ключи и создаёт подписи внутри отдельного устройства. Так он может подписать предложение с компьютера, не передавая ему ключи. Проверяйте адрес назначения и сумму на доверенном экране устройства. Само оно не знает, кому вы в действительности хотели заплатить. [2]
Многие современные кошельки выводят несколько ключей из общей основы, seed, по правилам BIP 32. Seed Phrase, используемая, например, в BIP 39, помогает восстановить эту основу; это не просто один ключ, записанный словами. Если вы используете BIP39 passphrase, необязательное дополнительное значение для вывода ключей, она тоже нужна при восстановлении. Опечатка может открыть другой кошелёк без предупреждения. Путь вывода описывает способ создания отдельных ключей, а тип скрипта — форму записи условий расходования. Эти данные тоже могут понадобиться программе для поиска правильных ключей и адресов. В Multisig, где расходование требует нескольких подписей, сохраните также правила подписания и публичные данные соподписантов. Одних слов одного кошелька может не хватить. [3] [4] [2]
Проверенный мобильный кошелёк может помочь освоиться с небольшими транзакциями и платить каждый день. Более крупная сумма на долгий срок требует продуманной защиты: где находятся ключи, кто может добраться до них и сработает ли резервная копия. Отдельное устройство подписания снижает некоторые риски заражённого телефона или компьютера, но не предотвращает ошибок при одобрении платежа. Отделение денег для текущих расходов от сбережений может ограничить последствия одной ошибки. Цель не просто в максимально сложной защите: процедура, которую вы не понимаете или по которой не можете восстановить доступ, создаёт свои риски. [1]
Выбранное приложение или устройство должно поддерживать ваш тип кошелька и формат резервной копии. Записанная копия — не то же самое, что проверенная возможность восстановить кошелёк. Слова должны быть полными, читаемыми и в правильном порядке; другие нужные данные тоже не должны потеряться. Используйте безопасную проверку копии или восстановление, рекомендованные вашим кошельком или устройством. Не проверяйте копию, вводя настоящие слова на присланной кем-то странице для «проверки кошелька». Мнимая поддержка тоже в них не нуждается. Потерянный телефон можно заменить, если правильная копия позволяет восстановить ключи. Простая установка того же приложения или смена его пароля не вернёт отсутствующие исходные ключи. [4] [5]
Чтобы показать баланс, кошельку нужно узнать состояние соответствующих транзакций. Он может использовать сервер поставщика или подключаться к вашему Full Node — компьютеру, самостоятельно проверяющему правила Bitcoin. Сервер может устанавливать связи между адресами и запросами и показывать не те же неподтверждённые транзакции, что другой узел. Собственный узел помогает лишь тогда, когда кошелёк действительно им пользуется. Это отдельный вопрос от владения ключами: приложение может полностью оставлять подписание вам и при этом получать информацию с чужого сервера. Самостоятельное хранение и независимую проверку поэтому следует оценивать отдельно. [1]
Даже лучшее устройство не поможет, если установить поддельное приложение, раскрыть резервные слова или одобрить платёж на чужой адрес. Phishing, или фишинг, — обман, при котором злоумышленник имитирует надёжный сайт, сообщение или поддержку, чтобы получить секреты или склонить вас к опасному действию. Проверяйте источники приложений и обновлений, сверяйте данные платежей и защищайте копии также от потери или уничтожения. Если кто-то получил ключи, новый пароль приложения не сделает его копию недействительной. Воспринимайте кошелёк как весь способ управления средствами: приложение, возможное устройство подписания, резервную копию и ваши привычки при их использовании. [2] [5]
Для полной картины прочитайте эту статью вместе с Private Key, UTXO, Транзакция, Full Node, Lightning Network. На эту статью также ссылаются UTXO, Private Key, Lightning Network, Биткоин-адрес.