«Не твои ключи — не твои биткоины»

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

Эта страница — вводная карта темы. Каждый раздел даёт одну главную мысль и отправляет за подробностями на отдельную страницу.

Биткоин — актив на предъявителя

При создании кошелька рождается приватный ключ. Из него выводятся публичные ключи и адреса, по которым приходят монеты; сам приватный ключ — единственное, что доказывает владение и позволяет потратить средства.

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

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

Кастодиальное хранение и его цена

При кастодиальном хранении (биржи, кастодиальные кошельки) приватными ключами владеет третья сторона. Риски не гипотетические:

  • взлом или неплатёжеспособность кастодиана (Mt. Gox, FTX, Bitfinex — крупнейшие прецеденты);
  • заморозка счёта по требованию властей или по внутреннему решению;
  • ограничения на вывод, вводимые регулятором.

Кастодиальное хранение допустимо только для средств, которые вы готовы потерять, и только временно — в процессе покупки или продажи.

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

  • Какую долю капитала вы держите в биткоине — доли процента, проценты или десятки процентов? Ради защиты половины сбережений вы стерпите неудобства, ради карманной суммы — нет.
  • Как часто вам нужен доступ? Это текущий счёт, среднесрочная подушка или долгосрочные сбережения, к которым вы не притронетесь годами?

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

Горячее и холодное

Горячий кошелёк подключён к интернету: ключи доступнее и вам, и злоумышленнику. Годится для небольших сумм и повседневных трат, включая Лайтнинг.

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

Отсюда три базовые модели самостоятельного хранения:

  • Горячий кошелёк — приложение на смартфоне или компьютере. Небольшие суммы, частые траты.
  • Аппаратный кошелёк — отдельное устройство, подписывающее транзакции офлайн. Основной инструмент долгого хранения.
  • Мультиподпись — несколько ключей в разных местах и, желательно, на устройствах разных производителей.

Сид-фраза

Все современные кошельки строятся вокруг сид-фразы — двенадцати или двадцати четырёх слов, из которых математически выводятся все ключи кошелька. Сид-фраза не «доступ к кошельку», она и есть кошелёк: кто её знает, тот распоряжается средствами, где бы физически ни лежало устройство.

Уязвимых моментов у неё два, и путают их постоянно.

Хранение. Пять правил, ни одно из которых ничего не стоит:

  1. Никогда не вводить онлайн — ни на сайтах, ни в приложениях, ни в переписке. Настоящая проверка кошелька сид-фразы не требует.
  2. Никогда не фотографировать — снимок уходит в облако быстрее, чем вы успеваете об этом подумать.
  3. Записать на бумаге или металле и хранить физически, офлайн.
  4. Сделать несколько копий в разных местах — на случай пожара, затопления, кражи.
  5. Никому не сообщать, включая «техподдержку».

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

Аппаратные кошельки

Аппаратный кошелёк — устройство, чья единственная задача держать ключи и подписывать транзакции внутри себя. Ключи не покидают его в открытом виде, наружу выходит только подписанный результат.

Для большинства людей это лучший компромисс между простотой и безопасностью — но не волшебная коробка. Покупая такое устройство, вы принимаете на веру сразу несколько вещей: качество источника случайности, честность прошивки, целостность устройства по дороге к вам. Разбор каждой точки доверия и способов её сократить — на странице аппаратные кошельки: модель угроз.

Конкретные модели здесь сознательно не называются: выбор зависит от того, от чего вы защищаетесь, а не от места в чьём-то рейтинге.

Мультиподпись

Мультиподпись — схема m-из-n: чтобы потратить средства, нужно m подписей из n существующих ключей. Например, две из трёх. Вводный материал: мультиподпись на 21ideas.

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

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

Парольная фраза

Парольная фраза — дополнительное слово или строка, добавляемая к сид-фразе. Она порождает совершенно отдельный кошелёк, и знания одной только сид-фразы для доступа к нему недостаточно.

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

Как выбирать: от чего вы защищаетесь

Уровень защиты правильнее выбирать не по сумме на кошельке, а по списку угроз, которые вы считаете для себя реальными.

От чего защищаетесьЧто действительно закрывает
Ключ утёк в сеть: вредонос, подмена буфера обмена, ввод слов на сайтеЛюбое офлайн-хранение: ключ не появляется на подключённой машине
Кастодиан обанкротился, заморозил счёт или потерял монетыСамостоятельное хранение как таковое
Устройство украли или изъялиPIN, парольная фраза, раздельное хранение устройства и резервной копии
Резервная копия сгорела, потерялась или испортиласьНесколько копий в разных местах, металл вместо бумаги
Вас принуждают отдать доступСкрытый кошелёк за парольной фразой, мультиподпись с географическим разнесением
Производитель ошибся: слабый ключ, дефект прошивки, подмена в путиКворум устройств разных производителей; самостоятельно заданная энтропия

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

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

Источники

Дополнительные материалы