«Не твои ключи — не твои биткоины»
Это не слоган, а определение. Биткоин — актив на предъявителя: владение здесь означает не запись в чужом реестре, а контроль над приватным ключом. Основа: Биткоин-кошельки: зачем и как хранить свои приватные ключи.
Эта страница — вводная карта темы. Каждый раздел даёт одну главную мысль и отправляет за подробностями на отдельную страницу.
Биткоин — актив на предъявителя
При создании кошелька рождается приватный ключ. Из него выводятся публичные ключи и адреса, по которым приходят монеты; сам приватный ключ — единственное, что доказывает владение и позволяет потратить средства.
Отсюда следствие, которое стоит принять буквально: если ключами распоряжаетесь не вы, биткоинами вы не владеете. Передавая ответственность за хранение третьей стороне, вы передаёте вместе с ней и сами монеты.
Обратная сторона такая же прямая: самостоятельное хранение делает вас ответственным за безопасность. Ошибку здесь никто не отменит и не откатит.
Кастодиальное хранение и его цена
При кастодиальном хранении (биржи, кастодиальные кошельки) приватными ключами владеет третья сторона. Риски не гипотетические:
- взлом или неплатёжеспособность кастодиана (Mt. Gox, FTX, Bitfinex — крупнейшие прецеденты);
- заморозка счёта по требованию властей или по внутреннему решению;
- ограничения на вывод, вводимые регулятором.
Кастодиальное хранение допустимо только для средств, которые вы готовы потерять, и только временно — в процессе покупки или продажи.
Главный выбор при хранении — соотношение безопасности и удобства, и эти два свойства прямо противоположны. Где именно встать на этом спектре, помогают решить два вопроса:
- Какую долю капитала вы держите в биткоине — доли процента, проценты или десятки процентов? Ради защиты половины сбережений вы стерпите неудобства, ради карманной суммы — нет.
- Как часто вам нужен доступ? Это текущий счёт, среднесрочная подушка или долгосрочные сбережения, к которым вы не притронетесь годами?
И встречное предостережение оттуда же, которое стоит десятка советов по безопасности: не усложняйте схему до такой степени, чтобы самому забыть, как получить доступ к средствам. Историй о монетах, потерянных из-за переусложнённой схемы, не меньше, чем историй о взломах.
Горячее и холодное
Горячий кошелёк подключён к интернету: ключи доступнее и вам, и злоумышленнику. Годится для небольших сумм и повседневных трат, включая Лайтнинг.
Холодный кошелёк к интернету не подключён. Пользоваться им менее удобно, но для длительного хранения это единственный разумный вариант.
Отсюда три базовые модели самостоятельного хранения:
- Горячий кошелёк — приложение на смартфоне или компьютере. Небольшие суммы, частые траты.
- Аппаратный кошелёк — отдельное устройство, подписывающее транзакции офлайн. Основной инструмент долгого хранения.
- Мультиподпись — несколько ключей в разных местах и, желательно, на устройствах разных производителей.
Сид-фраза
Все современные кошельки строятся вокруг сид-фразы — двенадцати или двадцати четырёх слов, из которых математически выводятся все ключи кошелька. Сид-фраза не «доступ к кошельку», она и есть кошелёк: кто её знает, тот распоряжается средствами, где бы физически ни лежало устройство.
Уязвимых моментов у неё два, и путают их постоянно.
Хранение. Пять правил, ни одно из которых ничего не стоит:
- Никогда не вводить онлайн — ни на сайтах, ни в приложениях, ни в переписке. Настоящая проверка кошелька сид-фразы не требует.
- Никогда не фотографировать — снимок уходит в облако быстрее, чем вы успеваете об этом подумать.
- Записать на бумаге или металле и хранить физически, офлайн.
- Сделать несколько копий в разных местах — на случай пожара, затопления, кражи.
- Никому не сообщать, включая «техподдержку».
Создание. Сид-фраза — это запись случайного числа, и если это число родилось предсказуемым, безупречное хранение уже ничего не спасёт. Проверить качество источника случайности снаружи нельзя: правильный и сломанный генератор выдают внешне одинаковые слова, одинаковый отпечаток и одинаковые адреса. Разбор — на странице энтропия и случайность.
Аппаратные кошельки
Аппаратный кошелёк — устройство, чья единственная задача держать ключи и подписывать транзакции внутри себя. Ключи не покидают его в открытом виде, наружу выходит только подписанный результат.
Для большинства людей это лучший компромисс между простотой и безопасностью — но не волшебная коробка. Покупая такое устройство, вы принимаете на веру сразу несколько вещей: качество источника случайности, честность прошивки, целостность устройства по дороге к вам. Разбор каждой точки доверия и способов её сократить — на странице аппаратные кошельки: модель угроз.
Конкретные модели здесь сознательно не называются: выбор зависит от того, от чего вы защищаетесь, а не от места в чьём-то рейтинге.
Мультиподпись
Мультиподпись — схема m-из-n: чтобы потратить средства, нужно m подписей из n существующих ключей. Например, две из трёх. Вводный материал: мультиподпись на 21ideas.
Она решает то, чего не решает ни одно отдельное устройство, — убирает единую точку отказа. Потеря одного ключа не означает потерю монет, а злоумышленнику нужно добраться до нескольких устройств в разных местах. Та же схема хорошо ложится на наследование: ключи распределяются между людьми и хранилищами заранее.
Но защищает не количество ключей само по себе, а их независимость. Кворум, собранный целиком из устройств одного производителя на одной прошивке, от дефекта этого производителя не спасает: все ключи выведены одним и тем же механизмом и перебираются так же, как один.
Парольная фраза
Парольная фраза — дополнительное слово или строка, добавляемая к сид-фразе. Она порождает совершенно отдельный кошелёк, и знания одной только сид-фразы для доступа к нему недостаточно.
Это честный второй слой — и одновременно новый способ потерять всё. Любая парольная фраза, включая опечатку, порождает валидный кошелёк: устройство не сообщит вам об ошибке, оно просто откроет другой, пустой. Поэтому парольная фраза требует такой же дисциплины хранения, как сама сид-фраза, и обязательной сверки отпечатка кошелька до того, как вы внесёте средства.
Как выбирать: от чего вы защищаетесь
Уровень защиты правильнее выбирать не по сумме на кошельке, а по списку угроз, которые вы считаете для себя реальными.
| От чего защищаетесь | Что действительно закрывает |
|---|---|
| Ключ утёк в сеть: вредонос, подмена буфера обмена, ввод слов на сайте | Любое офлайн-хранение: ключ не появляется на подключённой машине |
| Кастодиан обанкротился, заморозил счёт или потерял монеты | Самостоятельное хранение как таковое |
| Устройство украли или изъяли | PIN, парольная фраза, раздельное хранение устройства и резервной копии |
| Резервная копия сгорела, потерялась или испортилась | Несколько копий в разных местах, металл вместо бумаги |
| Вас принуждают отдать доступ | Скрытый кошелёк за парольной фразой, мультиподпись с географическим разнесением |
| Производитель ошибся: слабый ключ, дефект прошивки, подмена в пути | Кворум устройств разных производителей; самостоятельно заданная энтропия |
Последняя строка отличается от остальных принципиально. Первые пять угроз закрываются тем, что вы делаете со своим устройством. Шестая — единственная, против которой одно устройство бессильно по построению: если ключ родился предсказуемым или прошивка делает не то, что показывает на экране, проверить это изнутри той же коробки нечем.
Поэтому качественный скачок в защите даёт не более дорогое устройство, а кворум из устройств разных производителей на разных кодовых базах — чтобы ошибка одного вендора не дотянулась до порога подписи. Следующий шаг после этого — географическое разнесение ключей, и он уже про логистику и наследование, а не про технику.
Источники
- Биткоин-кошельки: зачем и как хранить свои приватные ключи
- Мультиподпись
- Сравнение аппаратных кошельков
- Что такое сид-фраза?
- Крах FTX