Ключ у вас, в своём кошельке
- Плюс: распоряжаетесь криптовалютой без чужого разрешения
- Плюс: вывод не зависит от правил сервиса
- Минус: потеряли ключ и seed-фразу, доступа нет
- Минус: ошибку исправить некому
Сама криптовалюта записана в блокчейне, общей записи всех переводов сети, и у каждого адреса там свой остаток. Кошелёк хранит приватный ключ приватный ключ (private key), которым вы распоряжаетесь остатком своего адреса1.
Представьте почтовый ящик с прорезью в общем подъезде. Номер ящика знают все, и бросить в прорезь письмо может любой. Открыть ящик и забрать письма может только тот, у кого ключ. Адрес в блокчейне похож на номер такого ящика, его можно сообщать любому отправителю. Приватный ключ похож на ключ от ящика, только мастерской, которая сделает дубликат, не существует. Запасной ключ есть, только если вы сами заранее его сделали: записали seed-фразу или настроили способ восстановления, который предлагает кошелёк.
Ключ создаёт сам кошелёк, выбирая очень большое число случайно1.
Из приватного ключа кошелёк вычисляет адрес1. Обратного пути нет, из адреса вычислить приватный ключ практически невозможно1. Это похоже на выпечку хлеба. Из теста хлеб испечь легко, а обратно в тесто его не превратить. Поэтому адрес можно спокойно показывать, публиковать и пересылать.
Seed-фраза стоит в этой цепочке выше ключей. Из неё кошелёк умеет вычислить сколько угодно ключей, поэтому одна seed-фраза восстанавливает все ключи кошелька2. Как устроена сама фраза и как её записать, разбирает статья что такое seed-фраза.
| Адрес | Приватный ключ | Seed-фраза | |
|---|---|---|---|
| Можно показывать другим? | да | нет | нет |
| Нужен, чтобы получить перевод? | да | нет | нет |
| Даёт право отправлять переводы? | нет | да | да |
| Открывает все адреса кошелька? | нет | нет | да |
Когда вы отправляете криптовалюту, кошелёк составляет перевод и ставит под ним подпись, вычисленную с помощью приватного ключа1. Подпись — это число, которое можно создать только этим ключом, а проверить её может любой компьютер сети, не узнавая самого ключа3. Сам ключ в сеть не отправляется, туда уходят перевод и подпись.
Проверяя подпись, сеть не спрашивает имени и не звонит владельцу. Верная подпись означает для неё, что перевод разрешил хозяин адреса, поэтому любой, кто узнал ваш ключ, распоряжается вашей криптовалютой наравне с вами1.
Подпись ставят и на сайтах, когда подключают к ним кошелёк. Ключ при этом остаётся в кошельке, однако подписанное разрешение может дать сайту право тратить ваши токены, например USDT, в пределах указанной суммы4. Что проверять перед такой подписью, объясняет статья безопасность при подключении криптокошелька.
Держать приватный ключ можно самому или доверить бирже либо другому сервису, который хранит криптовалюту за клиентов. В своём кошельке доступ к приватным ключам есть только у вас, а у биржи ключами управляет она5. Для этой разницы в крипте есть поговорка «Not your keys, not your coins», то есть «не ваши ключи — не ваши монеты». Свой кошелёк бывает приложением или отдельным устройством, и чем они отличаются по защите от кражи, разбирает статья горячий и холодный криптокошелёк.
Да, пока криптовалюта лежит на бирже, ключами от её адресов распоряжается биржа, и своего приватного ключа к этой криптовалюте у вас нет5. Адрес, на который вы пополняете аккаунт, принадлежит бирже, и перевод с её адресов подписывает она, когда вы заказываете вывод. Если биржу взломают, она закроется или обанкротится, доступ к криптовалюте можно потерять, а некоторые биржи смешивают деньги клиентов или пускают их в оборот, например дают в долг5 ⚖️. Чтобы ключ был у вас, криптовалюту выводят на свой кошелёк. Как сделать это без ошибки, разбирает статья как отправить криптовалюту.
Да, некоторые кошельки устроены так, что одной подписи для перевода мало. В кошельке с мультиподписью задают несколько ключей и число подписей, без которого перевод не пройдёт, например две из трёх3. Так банковскую ячейку открывают двумя ключами сразу, ключом клиента и ключом банка. Возможность подписать перевод и право собственности на криптовалюту — разные вопросы, и спор о праве решают по закону страны ⚖️.
Да, обычно из seed-фразы, из которой этот ключ создал кошелёк, или способом восстановления, который кошелёк предлагает и который вы заранее настроили сами. Копии ключа больше ни у кого нет, и восстановить его за вас не могут ни разработчики кошелька, ни сеть6. Если нет ни ключа, ни seed-фразы, доступ к криптовалюте на этом адресе потерян навсегда57. Не платите тем, кто обещает «восстановить ключ» или «вернуть доступ», о таком обмане рассказывает статья фишинг и скам.
Пароль или PIN-код открывает приложение кошелька на одном устройстве, приватный ключ даёт доступ к самой криптовалюте в блокчейне. Кошелёк хранит ключ на телефоне или компьютере в зашифрованном виде, и пароль нужен, чтобы этот ключ расшифровать1. Забытый пароль не страшен, если записана seed-фраза. Приложение ставят заново и восстанавливают из неё кошелёк уже с новым паролем6. Того, кто узнал ключ или seed-фразу, пароль не остановит, ведь он восстановит кошелёк на своём устройстве со своим паролем.
Нет, у обычного адреса приватный ключ сменить нельзя, ведь адрес вычислен из ключа1. Тот, кто знает ключ, может вывести всё в любой момент7, поэтому всю криптовалюту, включая токены и NFT, сразу переносят на новый кошелёк с новой seed-фразой, а старым адресом больше не пользуются. Шаги переноса те же, что при утечке seed-фразы, они разобраны в статье о seed-фразе.
В Bitcoin ключ состоит из 256 двоичных разрядов2, в Ethereum его обычно записывают строкой из 64 знаков, где есть цифры от 0 до 9 и латинские буквы от a до f1. Переписать такую строку от руки без ошибки трудно, поэтому в Bitcoin для переноса ключа из кошелька в кошелёк придумали формат WIF с проверочной суммой, которая помогает заметить опечатку2.
Между ключом и адресом есть промежуточный шаг. Из приватного ключа вычисляют открытый ключ, по которому сеть проверяет подписи, а из открытого ключа получают адрес3. Слова seed-фразы по стандарту BIP-39 превращаются в число10, а по стандарту BIP-32 из этого числа выводят целое дерево приватных ключей и, значит, адресов11.
Кроме мультиподписи, есть кошельки на технологии MPC, где работа с ключом распределена между несколькими участниками или устройствами12. В сети Ethereum кошелёк может быть смарт-контрактом, программой внутри сети со своими правилами, например с запасными ключами, которыми заменяют украденный7.