Кошельки

Концепции: Hot vs Cold, Custodial vs Not, Seed Phrase, MetaMask, Hardware Wallets, Multi-sig

:::section{mins=5} Что такое кошелёк :::

:::lead Кошелёк не хранит твоих монет. Монеты живут в блокчейне — в той же базе, копия которой запущена на десятках тысяч узлов по всему миру. Кошелёк хранит 256-битное число, которым ты доказываешь, что монеты — твои. Перепутать эти две сущности — самая распространённая ошибка новичка. :::

:::p{html} Когда биржа FTX упала в ноябре 2022 года, на её балансах числилось около $8 миллиардов клиентских средств. К маю 2026 года, после четырёх раундов выплат, многие классы кредиторов получили обратно 100% и больше — мелким держателям («convenience class») вернули 119% от номинала с 9% годовых сверху. Звучит почти как хеппи-энд. Но есть нюанс: расчёт шёл по ценам ноября 2022 года, когда биткоин стоил $16 000. На пике 2025 года биткоин стоил $126 000. Те, кто дождался выплаты, получили доллары, эквивалентные 12% той суммы, которую они могли бы вынести с биржи за неделю до коллапса. :::

:::p{html} Эта история — не про FTX. Это про то, чем аккаунт на централизованной бирже (CEX: Coinbase, Binance, Kraken, Bybit) отличается от кошелька. Под «биржей» в этой секции дальше имеется в виду именно CEX: место, куда ты переводишь крипту, и она лежит на адресах биржи под её ключами от твоего имени. Это противоположно DEX (Uniswap, Jupiter, Hyperliquid), где торги идут смарт-контрактами, а монеты остаются под твоим ключом — там ты сам и есть «склад». Дальше — про CEX. :::

:::p{html} Аккаунт на бирже — это требование: биржа должна тебе N монет, что отражено в её внутренней базе. Сами монеты на этот момент числятся в блокчейне на адресах биржи, под её ключами. Кошелёк работает иначе: ты держишь приватный ключ, который контролирует адрес в блокчейне напрямую, монеты на этом адресе записаны в общей цепочке, и подписать с него транзакцию можешь только ты. Разница между двумя формами владения видна именно в моменты сбоя. Биржу можно обанкротить, заморозить регулятором, взломать через инсайдера, и тогда запись «должны N монет» теряет связь с реальностью. С приватным ключом наоборот: пока он у тебя, никто не может ни заморозить адрес, ни откатить транзакции, ни выпустить дубликат баланса. Это и сила, и приговор: самокастоди убирает всех посредников, включая тех, к кому можно было бы обратиться, когда ты сам потерял ключ. :::

:::p{html} Технически кошелёк — это интерфейс к паре ключей: приватный (256-битный секрет) → публичный → адрес вида 0x1a2b...3c4d. Цепочка идёт только в одну сторону, математика разобрана в → 1.4 §2. На практике из неё вытекает фраза «not your keys, not your coins» — её повторяют так часто, что она потеряла резкость, но смысл остался буквальным. Если ключ держит биржа — она и решает, что произойдёт с балансом при сбое. Если ключ держишь ты — решаешь только ты, и груз последствий тоже твой. Каждое решение в этой карточке: какой кошелёк ставить, куда писать seed-фразу, что подписывать, что отзывать, — это решение о том, где на этой шкале ты сейчас стоишь. :::

:::callout{icon=💡} Это работает как витрина в публичном музее под стеклом с замком. Любой посетитель видит, что лежит на витрине: монета, манускрипт, метеорит — экспонат, оценка, даже история перемещений из зала в зал, если музей ведёт каталог. Что не видно — кто хранит ключ от стекла. Имя дарителя на табличке может стоять, может не стоять, может быть псевдонимом «частная коллекция». Снять с витрины может только тот, у кого ключ; если ключ потерян, музей не вскроет: дубликата нет, и это не упущение, а условие, на котором витрину вообще установили. Кошелёк работает так же, с одной поправкой: витрина стоит не в одном музее, а в распределённой базе, копия которой у десятков тысяч независимых хранителей. :::

:::keypoints{label="Ключевые моменты"}

  • FTX — не аномалия, а свежий пример паттерна: Mt. Gox (2014, выплаты идут до сих пор), QuadrigaCX (2019, основатель умер с единственными ключами), Celsius, BlockFi. Везде один и тот же режим: банкротство замораживает счета, выплаты идут годами, и сумма считается по ценам момента крушения. Биржа не «крипто, удобно»; это требование к платёжеспособному контрагенту.
  • Приватный ключ — не «пароль от аккаунта», а сам аккаунт. Восстановить его неоткуда: ни биржа, ни производитель кошелька, ни [[gloss:ethereum|Ethereum]] Foundation не знают и не могут вычислить чужой ключ.
  • Адрес, публичный ключ и приватный ключ — три уровня одной цепочки, идущей в одну сторону. Дать адрес другу безопасно; показать публичный ключ обычно тоже безопасно; показать приватный ключ — необратимо отдать всё.
  • «Not your keys, not your coins» — описание trade-off, а не моральный императив. CEX — рациональный выбор для активной торговли, для сумм, потеря которых не катастрофична, и для тех, кто реально оценивает риск потерять seed выше риска контрагента. Вопрос не «биржа или кошелёк», а «где какая часть капитала». :::

:::details{badge=Глубже title="Кошелёк без ключа: что watch-only говорит о слове «кошелёк»"} :::p{html} Введи в MetaMask, Rabby, Phantom или Ledger Live чужой публичный адрес, и получишь полноценный watch-only-кошелёк: видны баланс, входящие и исходящие транзакции, токены, [[gloss:nft|NFT]], история взаимодействий с [[gloss:defi|DeFi]]-протоколами. Не видно только одного — возможности что-либо подписать. Приватного ключа в таком кошельке нет, и не предполагается. Тот же интерфейс, та же сеть, та же цепочка; просто кнопка «Send» либо отсутствует, либо ведёт в тупик. :::

:::p{html} На практике watch-only решает три задачи. Первая — наблюдение за публичными адресами: трейдер держит в Rabby адрес Vitalik (0xd8dA...6045), горячий кошелёк Binance и казначейство MakerDAO; уведомление приходит, как только кит шевелится. Вторая — разделение чтения и подписи в hardware-setup'е. Ledger лежит в сейфе и подключается только в момент перевода; всё остальное время MetaMask запущен как watch-only-наблюдатель за тем же адресом. Баланс виден, цены обновляются, портфельный трекер работает, но если кто-то взломает компьютер, подписать ничего не получится: ключа в этом MetaMask нет. Третья — аудит и комплаенс: финансист DAO имеет watch-only-доступ ко всем казначейским адресам и видит каждую расходную транзакцию в реальном времени, не имея права подписи. :::

:::p{html} Watch-only — самое чистое доказательство того, что обсуждалось в основном тексте секции. Кошелёк, в котором полностью отсутствует приватный ключ, продолжает быть кошельком: видит «жизнь» адреса в той же цепочке, той же базе, что и реальный владелец. Разница между watch-only-кошельком и «настоящим» одна-единственная: наличие или отсутствие ключа, которым подписываются исходящие. Всё, что мы привыкли называть «кошельком», — иконка приложения, баланс, токены, история, оформление сети — это интерфейс. Сам факт владения сосредоточен в одной строке байтов, которая в watch-only просто не загружена. ::: :::

:::quiz{id=q-3-1-s1 correct=1 explanation="Верно. [[gloss:ethereum|ETH]] на CEX — это запись в её базе, что биржа должна тебе 1 [[gloss:ethereum|ETH]]. Сам [[gloss:ethereum|ETH]] при этом числится на одном из адресов биржи, контролируемом её приватными ключами. Пока биржа платёжеспособна — между этими двумя ситуациями нет видимой разницы. Когда биржа падает (FTX, Mt. Gox, QuadrigaCX) — разница становится осязаемой, и не в пользу пользователя. Вариант C неверен по смыслу: ничто в блокчейне не хранится «локально на диске», и кошелёк, и аккаунт на бирже работают с одной и той же общей цепочкой. Вариант D смешивает два разных слоя безопасности."} На балансе CEX A и в кошельке B числится «по 1 [[gloss:ethereum|ETH]]» от твоего имени. Чем эти [[gloss:ethereum|ETH]] принципиально отличаются друг от друга?

  • Ничем — баланс есть баланс, оба отображают одну и ту же сумму
  • На CEX [[gloss:ethereum|ETH]] числится на её адресе, а тебе биржа должна 1 [[gloss:ethereum|ETH]] согласно своей внутренней базе; в кошельке твой ключ контролирует адрес, на котором [[gloss:ethereum|ETH]] числится напрямую в цепочке
  • В кошельке [[gloss:ethereum|ETH]] хранится локально на твоём диске; на CEX — в облаке
  • В кошельке [[gloss:ethereum|ETH]] защищён сильнее, потому что блокчейн надёжнее облака :::

:::section{mins=4} Seed-фраза :::

:::lead Seed-фраза — это твой приватный ключ, переписанный в форме списка слов. Не «пароль к кошельку», а сам кошелёк в портативной форме: вставь 12 или 24 слова в любую совместимую программу, и получишь обратно те же адреса с тем же балансом. :::

:::p{html} В 2013 году айтишник из Уэльса Джеймс Хауэллс выбросил жёсткий диск со старого IBM ThinkPad на свалку Newport. На диске лежал кошелёк [[gloss:bitcoin|Bitcoin]] Core с приватным ключом, контролирующим примерно 8 000 [[gloss:bitcoin|BTC]], намайненных в 2009 году; по ценам 2025 года это около $750 миллионов. Двенадцать лет Хауэллс пытался добиться разрешения раскопать свалку. В январе 2025 года High Court окончательно отклонил его иск, в марте отклонили апелляцию, площадку закроют под solar farm в бюджетном году 2025–26. Деньги по-прежнему числятся на цепочке. Адрес виден в любом explorer, баланс не двигался с 2013. Ключ — под тоннами мусора. :::

:::p{html} История Хауэллса — буквальный пример класса проблем, ради которого и придумали seed-фразу. До 2013 года бэкап кошелька означал «скопируй файл [[gloss:wallet|wallet]].dat»: потерял диск — потерял ключ. В сентябре 2013 года, через несколько месяцев после того как Хауэллс выкинул свой HDD, Марек Палатинус и Павол Руснак (основатели Trezor) опубликовали [[gloss:bip|BIP]]-39. Стандарт описывает, как из 128 или 256 бит случайности получается список из 12 или 24 английских слов, выбранных из фиксированного словаря на 2048 позиций. Этот список можно записать на бумаге, выгравировать на металле, заучить. Любой кошелёк, реализующий [[gloss:bip|BIP]]-39, восстановит из этих слов те же ключи и адреса. К 2026 году стандарт поддерживают практически все массовые кошельки. :::

:::p{html} Чаще всего seed-фразу путают с тремя другими вещами. Это не пароль от MetaMask: пароль шифрует локальную копию кошелька на твоём устройстве, и его можно сбросить, лишь бы была seed. Это не имя аккаунта в UI («Account 1»): оно поверх адреса, не связано с ключами. Это не пароль от биржи: на CEX seed-фразу тебе и не дают, что логично, ключи там не твои. Локальная защита (пароль, биометрия, PIN) и seed-фраза работают на разных слоях: первая закрывает физический доступ к устройству здесь и сейчас; вторая позволяет восстановить кошелёк где угодно, на новом устройстве, через год. :::

:::p{html} У стандарта есть необязательное продолжение — [[gloss:bip|BIP]]-39 passphrase, «25-е слово». Это произвольная строка, которую кошелёк подмешивает к seed при вычислении ключей. Пустой passphrase даёт один набор адресов, любая ненулевая строка — совершенно другой, никак не связанный с первым. Из одной seed-фразы плюс passphrase получаются адреса с основным балансом; из той же seed без passphrase — пустой decoy-кошелёк. Это и есть «hidden [[gloss:wallet|wallet]]» в Trezor и Ledger. Цена опции: passphrase нигде не записывается на устройстве, помнить его нужно отдельно, и его потеря необратима как потеря самой seed. :::

:::callout{icon=💡} Это работает как геном живого организма. ДНК — это последовательность нуклеотидов, кодирующая весь будущий организм: каждая клетка, каждый белок, каждый сосуд выводятся из неё детерминированно. Тело — это «реализация», ДНК — её источник. Возьми ту же ДНК и помести её в любую подходящую среду, и из неё вырастет тот же организм с теми же признаками. Seed-фраза работает в той же логике: 24 слова — это «геном» твоего кошелька, из которого любой [[gloss:bip|BIP]]-39-совместимый кошелёк (MetaMask, Ledger, Trezor, Rabby) детерминированно «вырастит» те же ключи и адреса. С одной поправкой: у живого генома бывают мутации, у seed-фразы их быть не может. Изменишь одно слово — получишь другой организм. И этот «другой организм» будет нищим. :::

:::keypoints{label="Ключевые моменты"}

  • [[gloss:bip|BIP]]-39 появился осенью 2013 года — практически синхронно с первой волной историй про потерянные жёсткие диски с биткоинами. Это не совпадение, а реакция: индустрия осознала, что приватный ключ в одном файле на одном устройстве — это система с единственной точкой отказа, и стандартизировала способ переписать ключ в форме, пригодной для бэкапа на чём угодно.
  • Seed-фраза — это сам кошелёк в портативной форме, а не пароль к кошельку. Импорт seed в любую [[gloss:bip|BIP]]-39-совместимую программу мгновенно даёт доступ ко всем средствам на всех адресах этой seed. Никакой «привязки к устройству», никакого «авторизованного входа» — это не нужно и невозможно по самой природе стандарта.
  • На практике существует только английский wordlist. [[gloss:bip|BIP]]-39 определяет 11 языков (включая русский, японский, китайский), но кошельки массовой адопции — MetaMask, Phantom, Ledger Live, Trust, Rabby — поддерживают только английский. Записать seed «по-русски» можно только если транслитерировать каждое слово вручную, что нарушает спецификацию и ломает совместимость с другими кошельками.
  • 12 слов или 24 — это размен между удобством и энтропией. 12 слов кодируют 128 бит случайности; 24 — 256 бит. По состоянию криптографии 2026 года оба варианта невзламываемы перебором; разница начнёт играть роль только когда квантовые компьютеры станут реальной угрозой. До тех пор выбор — про эргономику: 12 слов проще запомнить и записать; 24 — стандарт hardware-кошельков и обязательный для [[gloss:multisig|multisig]]-схем уровня институтов. :::

:::details{badge=Глубже title="Откуда у BIP-39 взялись 2048 слов и почему этот список уже невозможно изменить"} :::p{html} До [[gloss:bip|BIP]]-39 кошельки экспериментировали с самыми разными форматами бэкапа. [[gloss:bitcoin|Bitcoin]] Core хранил [[gloss:wallet|wallet]].dat — бинарный файл, который нужно было копировать как есть. Сервисы вроде bitaddress.org выдавали приватный ключ строкой из 51 символа base58 (5J3mBb...), которую предлагалось записать вручную, с очевидным риском ошибиться при переписывании. Появлялись brain [[gloss:wallet|wallets]]: пользователь придумывал пароль, из которого [[gloss:sha-256|SHA-256]] порождала приватный ключ. Идея провалилась катастрофически: пароли оказывались предсказуемыми, и боты с готовыми словарями опустошали такие кошельки за минуты после первого пополнения. Electrum 1.0 ввёл свой собственный mnemonic, но без стандарта, и его словарь до сих пор не совместим с [[gloss:bip|BIP]]-39. В сентябре 2013 года Марек Палатинус и Павол Руснак — основатели Trezor, готовившие первый serial hardware-кошелёк — опубликовали спецификацию, которая привела индустрию к общему знаменателю. :::

:::p{html} Дизайн словаря — отдельная инженерия. 2048 слов = 11 бит на слово, что даёт круглые числа: 12 слов × 11 = 132 бита (128 бит энтропии + 4 бита checksum), 24 слова × 11 = 264 бита (256 + 8). Сам список из 2048 английских слов отбирался вручную по трём правилам: первые 4 буквы каждого слова уникальны (чтобы записать «полу-сокращённой» формой, если плохо помнишь хвост), нет омофонов и легко-путаемых пар (никаких «flour» и «flower»), нет смысловых дубликатов (есть «cat», нет «kitten»). Checksum в конце фразы — не для безопасности, а для опечатки: если ты неправильно записал одно слово, кошелёк при импорте отвергнет фразу как невалидную ещё до того, как покажет адреса. Шанс что случайно набранная 12-словная комбинация пройдёт проверку checksum — 1 из 16, 24-словная — 1 из 256. Это не «шанс взлома»: угадать чужую рабочую seed по-прежнему статистически невозможно — валидных 12-словных фраз 2128 ≈ 3,4 × 1038, что в 1017 раз больше, чем песчинок на всех пляжах и в пустынях Земли. Checksum нужен для отлова опечаток; безопасность даёт сама энтропия. :::

:::p{html} К 2026 году [[gloss:bip|BIP]]-39 окаменел. Каждая когда-либо созданная seed-фраза опирается ровно на тот словарь, что был зафиксирован в 2013 году: убери одно слово — и сотни миллионов кошельков перестанут валидироваться. Возможен ли «[[gloss:bip|BIP]]-39 v2» с обновлённым словарём или другим checksum? Технически да. Практически — нет: миграция требовала бы расшифровать старую seed, вычислить ключи, перенести средства на новые адреса, созданные из новой seed. Это не апгрейд протокола, это вынужденная транзакция для каждого пользователя на земле. Поэтому стандарт мёртв в смысле развития и жив в смысле использования; состояние, которого формальные стандарты редко достигают, и из которого почти не выходят. ::: :::

:::quiz{id=q-3-1-s2 correct=1 explanation="Верно. Пароль MetaMask — это локальный ключ шифрования базы кошелька на конкретном устройстве. Он защищает данные «в покое» на твоём компьютере и в генерации адресов не участвует. Seed-фраза — единственный носитель информации о ключах; вводя её на новом устройстве, ты получаешь полный кошелёк со всеми адресами и балансами. Новый пароль MetaMask запросит уже на новом устройстве — это будет локальная защита этой установки. Вариант D неверен по сути: у MetaMask нет «службы поддержки», которая может сбросить пароль или восстановить ключ — потому что у них этого ключа и нет, и не было никогда."} Ты установил MetaMask на новый компьютер, ввёл seed-фразу, но не помнишь старый пароль, которым он был защищён на предыдущем устройстве. Что произойдёт?

  • MetaMask потребует старый пароль и без него не даст доступ к кошельку
  • Кошелёк восстановится полностью; пароль был локальной защитой старой установки и к seed-фразе отношения не имеет
  • Часть адресов восстановится, часть — нет, потому что пароль участвовал в их генерации
  • Нужно сначала сбросить пароль через службу поддержки MetaMask, потом импортировать seed :::

:::section{mins=4} Типы кошельков :::

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

:::p{html} Главный вопрос про любой кошелёк — где живёт ключ. В MetaMask он хранится зашифрованным в локальной базе браузера; пароль расшифровывает его в момент подписи. В Ledger ключ зашит в Secure Element, отдельный чип, который физически не отдаёт ключ ни компьютеру, ни даже Ledger Live; наружу выходит только готовая подпись. В Coinbase Custody ключ распределён между серверами провайдера через MPC-протокол, и прямого доступа к нему у тебя нет вообще. Это три разных мира, и большинство практических решений про безопасность сводятся к тому, какой из них ты выбрал. :::

:::p{html} На практике кошельки делятся на четыре категории: :::

:::p{html}

  • Горячий программный кошелёк (MetaMask, Rabby, Phantom в роли расширения или мобильного приложения): ключ в зашифрованной базе на устройстве, защита — пароль или биометрия, устройство всегда онлайн. Удобно для ежедневного использования, уязвимо к заражению машины.
  • Hardware-кошелёк (Ledger, Trezor, Keystone): ключ в специальном чипе, физически не покидает устройство, подключается к компьютеру только в момент подписи.
  • Кастодиальный кошелёк (Coinbase [[gloss:wallet|Wallet]], Binance Web3 [[gloss:wallet|Wallet]], BitGo): ключ у провайдера, обычно распределённый через MPC; интерфейс ты получаешь через логин и пароль. Не самокастоди в полном смысле, но и не «биржевой аккаунт».
  • Смарт-контрактный кошелёк (Safe, Argent, ZeroDev): «кошелёк» — это контракт в блокчейне, со своей логикой подписи, [[gloss:multisig|multisig]] и recovery. Детальный разбор — в → 3.2.
:::

:::p{html} Самый распространённый практический сетап на 2026 год — гибрид: Rabby или MetaMask как UI плюс Ledger или Trezor как signer. Программный кошелёк знает только публичный адрес и используется для просмотра баланса, выбора операций, формирования транзакций (по сути работает в режиме watch-only из §1); сама подпись делегируется hardware-устройству, которое подключается на момент операции и отключается сразу после. Это не «два кошелька на один баланс», а разделение ролей внутри одного: UI отвечает за удобство, hardware — за защиту ключа. Понимание этой разделённости важнее любого выбора конкретного бренда: «лучший кошелёк» — это та комбинация, в которой удобный UI и защищённый signer закреплены за подходящими тебе устройствами. :::

:::callout{icon=💡} Это работает как уровни хранения ценностей в обычной жизни. Мелочь и проездной лежат в кармане куртки на вешалке у двери: удобно, но забери куртку из подъезда и всё пропало. Паспорт и документы — в ящике письменного стола; нужен ключ от стола, но грабитель найдёт. Бабушкины серьги и часы — в домашнем сейфе в спальне; код знаешь только ты, ломать долго. Договор на квартиру и завещание — в банковской ячейке; идти туда с паспортом, зато пожар в квартире им уже не страшен. Шкатулка с гербарием детства — у мамы за городом, открывается раз в десять лет. У каждого уровня своя цена: чем безопаснее хранение, тем медленнее доступ. Кошельки устроены ровно так же. :::

:::keypoints{label="Ключевые моменты"}

  • «Где живёт ключ» — определяющая ось классификации, а «hot vs cold» лишь следствие из неё. Тот же mobile-кошелёк становится cold, если телефон выключен и в авиарежиме, и снова hot, как только подключился к сети. Полезнее спрашивать «что нужно скомпрометировать, чтобы вытащить ключ», чем «горячий это кошелёк или холодный».
  • Hardware-устройство само по себе ещё не гарантирует безопасность. Безопасность появляется при правильном использовании: проверять адрес на экране устройства перед подписью, никогда не вводить seed-фразу в формы на компьютере, даже если сайт выглядит как Ledger Live или Trezor Suite (настоящие официальные приложения её никогда не запрашивают), не покупать с рук и не из коробок без оригинальных производственных пломб. Большинство потерь с hardware-кошельками — социальная инженерия вокруг корректно работающего устройства.
  • Кастодиальный кошелёк и биржевой аккаунт — не одно и то же, хотя оба относятся к категории «ключ не у тебя». Coinbase [[gloss:wallet|Wallet]] (продукт с MPC-распределением ключа) ≠ аккаунт на бирже Coinbase: в первом случае доли ключа распределены между тобой и провайдером, во втором ключи целиком у компании. Юридический статус активов и сценарии возврата при банкротстве у этих двух продуктов разные.
  • Смарт-контрактный кошелёк — это адрес, за которым стоит не приватный ключ, а код. Адрес внешне неотличим от обычного (0x...), но логика подписи описана в самом контракте: [[gloss:multisig|multisig]], дневные лимиты, social recovery, газ за чужой счёт. Цена — баги в коде самого кошелька как новый класс рисков. Разбор — в → 3.2. :::

:::details{badge=Глубже title="MPC, hardware, смарт-контракты: три инженерных ответа на один вопрос"} :::p{html} MPC (Multi-Party Computation). Приватный ключ не существует целиком ни в одной точке системы. Он разбит на n долей, распределённых между серверами (обычно n=3 или больше); для подписи нужны t из n долей, и они вычисляют подпись совместно, не собирая полный ключ. Атакующий, взломавший один сервер, получает бесполезную часть. На MPC построены Fireblocks (institutional custody, через систему прошло свыше $5 трлн в транзакциях), ZenGo (consumer), Coinbase [[gloss:wallet|Wallet]], MetaMask Institutional. Trade-off: ты доверяешь провайдеру, что доли действительно распределены физически и что протокол реализован без ошибок. Между чистой самокастоди и кастодиальным хранением: контроль не целиком у тебя, но и не у одной стороны. :::

:::p{html} Hardware. Ключ живёт в Secure Element — изолированном чипе с физической защитой от вскрытия. Подпись формируется внутри чипа и наружу не выходит, не выходит и сам ключ. У Ledger чип — ST33 от STMicroelectronics с сертификацией CC EAL 5+. Trezor Model One и Model T исторически шли без secure element (на общедоступном STM32); после случая 2023 года, когда Kaspersky задокументировал supply chain атаку с поддельным Trezor Model T, проданным через сторонний маркетплейс (другой чип, отключённая read-out защита), Trezor выпустил Safe 3 уже с собственным SE. Trade-off: доверие производителю чипа, разработчику прошивки и цепочке поставок до твоих рук. От удалённой атаки hardware защищает практически абсолютно; от физической — настолько, насколько ты контролируешь, откуда устройство приехало. :::

:::p{html} Smart-contract / [[gloss:account abstraction|Account Abstraction]]. Самый молодой из трёх подходов и единственный, который меняет не носитель ключа, а саму концепцию аккаунта. «Кошелёк» — это контракт в блокчейне со своей логикой: [[gloss:multisig|multisig]], лимиты, white-list адресов, recovery через доверенных лиц, газ, оплачиваемый paymaster'ом. Приватный ключ всё ещё нужен, но только для подписи операций над контрактом, не для прямого контроля адреса. Стандарт ERC-4337 заработал в марте 2023 года; [[gloss:eip-7702|EIP-7702]] в [[gloss:pectra|Pectra]] (май 2025) позволил конвертировать обычный [[gloss:eoa|EOA]]-аккаунт в smart-contract-аккаунт без миграции средств. Trade-off: код контракта может содержать баги, газ за инициализацию, и неравномерная поддержка стандартов между цепочками. Все три подхода решают одну задачу — устранить единственную точку отказа — но из трёх разных мест: распределить контроль (MPC), изолировать носитель (hardware), запрограммировать правила (AA). ::: :::

:::quiz{id=q-3-1-s3 correct=1 explanation="Верно. В такой связке MetaMask работает как UI и watch-only-наблюдатель за адресом, ключ к которому хранится в Ledger. Никакого приватного ключа MetaMask не знает: при попытке подписать транзакцию он формирует её данные и передаёт на устройство, где Ledger проверяет адрес назначения и сумму на собственном экране, после чего возвращает уже подписанную транзакцию. Это и есть гибридный сетап «hot UI + hardware signer», и по сути это hardware [[gloss:wallet|wallet]] — всё определяется тем, где живёт ключ. Вариант C неверен: приватный ключ один, второго в MetaMask просто нет."} Ты установил MetaMask и подключил к нему Ledger Nano X. Все транзакции подтверждаются на экране Ledger. Это hardware [[gloss:wallet|wallet]] или software [[gloss:wallet|wallet]]?

  • Software, потому что MetaMask — это software [[gloss:wallet|wallet]], а Ledger лишь подключается к нему
  • Hardware, потому что приватный ключ живёт в чипе Ledger; MetaMask работает только с публичным адресом и формирует транзакции для подписи на устройстве
  • Гибридный кошелёк — у него есть два независимых приватных ключа, в MetaMask и в Ledger
  • Зависит от настройки — если в MetaMask импортирована seed-фраза, то software; если нет — hardware :::

:::section{mins=4} Горячие кошельки :::

:::lead Горячий кошелёк — самый используемый инструмент в крипте и поэтому самый интересный для атакующего. Выбор тут не «какой лучше», а «у кого UX-команда сильнее, у кого защитные слои надёжнее, и кому ты доверяешь обновлять расширение в своём браузере следующие пять лет». :::

:::p{html} За последние два года ландшафт горячих кошельков сильно изменился. До 2024 года выбор был простым: MetaMask для [[gloss:evm|EVM]]-цепочек, Phantom для [[gloss:solana|Solana]], отдельный кошелёк для каждой не-[[gloss:evm|EVM]] сети. К маю 2026 эта схема устарела. MetaMask с июля 2025 поддерживает [[gloss:solana|Solana]] через фреймворк Snaps, с декабря 2025 — [[gloss:bitcoin|Bitcoin]]; всего 11 сетей по умолчанию. Phantom прошёл аналогичный путь с другой стороны: к [[gloss:solana|Solana]] добавились [[gloss:ethereum|Ethereum]], Polygon, Base и [[gloss:bitcoin|Bitcoin]]; на конец 2025 у Phantom 15 миллионов MAU и $25 млрд активов под управлением, плюс серия C на $150 млн при оценке $3 млрд. Rabby сознательно остался [[gloss:evm|EVM]]-only — это не упущение, а позиционирование. Когда раньше выбор зависел от цепочки, теперь он зависит от UX, набора защитных функций и от того, кому ты доверяешь. :::

:::p{html} Три кошелька, которые имеет смысл рассматривать первым делом в 2026 году: :::

:::p{html}

  • MetaMask (~30 млн MAU): де-факто стандарт, самая широкая поддержка цепочек и DApp-интеграций, встроенная защита Blockaid с симуляцией транзакций (по данным самой Blockaid, технология предотвратила потерь более чем на $5,3 млрд с момента запуска в продакшен). Минус: с конца 2020 года не полностью открытый — лицензия изменилась с MetaMask 11+. Поддерживает [[gloss:eip-7702|EIP-7702]] и ERC-4337 полностью.
  • Rabby: разработан командой DeBank, [[gloss:evm|EVM]]-only, лучший на рынке UX для просмотра транзакции до подписи (детальная симуляция, разбор approvals, предупреждения о подозрительных контрактах). Open source. [[gloss:eip-7702|EIP-7702]] поддерживается ограниченно — пока только revoke делегаций, без полноценной AA-функциональности. Выбор тех, кто живёт в [[gloss:evm|EVM]]-[[gloss:defi|DeFi]] и ценит контроль над каждым approval.
  • Phantom: исторически [[gloss:solana|Solana]]-first, теперь мультичейн ([[gloss:solana|Solana]] + [[gloss:ethereum|Ethereum]] + Polygon + Base + [[gloss:bitcoin|Bitcoin]]), закрытый исходный код. Лучший mobile UX на рынке, прозрачные swap'ы внутри кошелька. Выбор тех, кто пришёл через [[gloss:solana|Solana]]-экосистему или хочет один кошелёк для разных цепочек на телефоне.
:::

:::p{html} Что отличает хороший горячий кошелёк в 2026 году от посредственного — это не количество поддерживаемых цепочек, а защитный слой между нажатием «Confirm» и реальной транзакцией. Симуляция транзакций (Blockaid в MetaMask, встроенная в Rabby) показывает перед подписью, какие токены реально утекут с твоего адреса; phishing-детектор (списки опасных доменов и контрактов) блокирует подключения к скам-сайтам; интеграция с hardware-кошельком превращает любой горячий кошелёк в гибридный сетап из §3. Эти функции делают «хороший кошелёк» хорошим больше, чем красивый интерфейс или поддержка тысячи токенов. :::

:::callout{icon=💡} Это как выбор ежедневной машины. MetaMask — Toyota Camry: у всех, на каждой парковке, любой механик починит, без сюрпризов и без особенного характера. Rabby — Tesla Model 3: больше «умных» функций (симуляция, разбор approvals, предупреждения), но только в [[gloss:evm|EVM]]-«регионе» и со своим стилем вождения, который сначала непривычен. Phantom — мультибрендовый дилер: с одного брелока заводится и [[gloss:solana|Solana]]-Audi, и [[gloss:ethereum|Ethereum]]-BMW, и [[gloss:bitcoin|Bitcoin]]-Toyota, причём приоритет всё ещё на Audi, родной марке. Hardware-кошелёк — сейф в гараже, в котором лежат ключи от всех машин; сами машины он не заменяет. «Лучшая машина» зависит от того, куда ты обычно ездишь и сколько разных маршрутов в день. :::

:::keypoints{label="Ключевые моменты"}

  • MetaMask 2026 — не тот же продукт, что MetaMask 2023. То, что было символом «[[gloss:evm|EVM]]-only кошелька», сходится с Phantom в одну форму: оба теперь мультичейн, оба интегрируют hardware, оба добавляют защитные слои. Историческое разделение «MetaMask для [[gloss:ethereum|Ethereum]], Phantom для [[gloss:solana|Solana]]» больше не описывает реальность — выбор сместился с цепочки на UX и доверие к команде.
  • Симуляция транзакций перед подписью — главная защитная инновация 2024–2026. Раньше пользователь подписывал нечитаемые hex-данные и надеялся. Сейчас Blockaid в MetaMask и встроенная симуляция Rabby показывают конкретные диффы балансов: «ты потратишь столько-то [[gloss:ethereum|ETH]], отдашь approval на все [[gloss:nft|NFT]] этому контракту». Это останавливает больше потерь, чем образованность пользователя, потому что не требует от него быть экспертом.
  • Open source ≠ безопасность автоматически, но closed source — практически всегда красный флаг. Rabby полностью открыт, Phantom закрыт, MetaMask с конца 2020 не полностью открытый. На дистанции открытый код снижает риск подмены кошелька в магазине расширений и первым получает новые защитные слои — в том числе privacy-preserving фичи через фреймворк Kohaku, представленный Виталиком на Devconnect в ноябре 2025 (детали — в будущей карточке → B3 Privacy).
  • Mobile-кошелёк и расширение для браузера уязвимы к разному, а не к большему или меньшему. Mobile живёт в изолированной песочнице iOS или Android, защищён биометрией системы — но открыт скам-приложениям и перехвату буфера обмена. Браузерное расширение защищено паролем приложения и сидит в той же среде, что и сам браузер — но открыто компрометированным расширениям, фишинговым сайтам и malicious dApps. Понимание разных моделей атаки важнее, чем выбор «mobile или browser». :::

:::details{badge=Глубже title="Как именно работает симуляция транзакций перед подписью — и что она не ловит"} :::p{html} До 2023 года интерфейс кошелька перед подписью показывал пользователю минимум: адрес-получатель, сумма, газ, и кучу шестнадцатеричных байтов в поле «data». Что эти байты делают — кошелёк не знал. Жертвы массово подписывали setApprovalForAll (разрешение конкретному контракту распоряжаться всеми [[gloss:nft|NFT]] адреса), [[gloss:permit|permit]] (одобрение траты ERC-20 по подписи), blind signing на hardware-устройстве (когда device просто показывает «sign this [[gloss:hash|hash]]»). Появление Blockaid (израильский стартап из Тель-Авива, основан в сентябре 2022 Идо Бен-Натаном и Разом Нивом — ветеранами Unit 8200; в феврале 2025 закрыл серию B на $50 млн, при общем привлечённом капитале $83 млн) и аналогичной встроенной симуляции в Rabby изменило это: технически стало возможно за миллисекунды до подписи прогнать транзакцию против актуального состояния цепочки и показать пользователю реальный эффект — не байты, а изменения балансов. :::

:::p{html} Как это работает технически. Кошелёк делает RPC-вызов eth_simulateV1 (поддержан в Geth и Reth с 2024 года) или похожий нестандартизированный вызов к внешнему API вроде Tenderly. Симулятор берёт состояние цепочки на последнем блоке, форкает его в памяти, исполняет транзакцию в этом форке и возвращает diff: какие балансы изменились, какие events эмитировались, какие approvals были выданы. Кошелёк интерпретирует diff в человеческую форму: «Ты подпишешь: −1 [[gloss:ethereum|ETH]], −$5 000 USDC, +доступ для контракта 0x… ко всем твоим [[gloss:nft|NFT]] в коллекции CryptoPunks». Если что-то выглядит подозрительно, появляется красный баннер. Blockaid дополнительно сверяет contract-адрес со своим реестром известных скам-контрактов и доменов. :::

:::p{html} Чего симуляция не ловит. Транзакции, которые ведут себя по-разному при симуляции и реальном исполнении: например, контракт может проверить [[gloss:block|block]].timestamp или ответ оракула и в момент симуляции вернуть невинный путь, а в реальном блоке — атакующий. Сообщения типа signTypedData_v4 — это не транзакция, а структурированная подпись, которую симулятор не видит как изменение балансов; именно через них работают современные phishing-схемы с [[gloss:permit|permit]] и gasless approvals. Атаки на сам кошелёк — компрометированное расширение, malicious update — симуляция тоже не закрывает. Blockaid опубликовал данные о $5,3 млрд предотвращённых потерях с момента запуска — но эти 5 миллиардов не покрывают всю поверхность; они покрывают именно те атаки, где симуляция работает. ::: :::

:::quiz{id=q-3-1-s4 correct=1 explanation="Верно. MetaMask перестал быть [[gloss:evm|EVM]]-only в июле 2025 года с релизом [[gloss:solana|Solana]]-поддержки через свой Snaps-фреймворк; в декабре 2025 добавился [[gloss:bitcoin|Bitcoin]]. На май 2026 кошелёк по умолчанию работает с 11 цепочками. Phantom прошёл аналогичный путь с другого конца — был [[gloss:solana|Solana]]-only, стал мультичейн. Историческое разделение «один кошелёк = одна экосистема» больше не описывает реальность, и старые советы вида «для [[gloss:solana|Solana]] нужен Phantom» уже устарели. Вариант A был верен в 2023 году, но не сегодня; D смешивает технический вопрос с продуктовым предпочтением."} Друг говорит: «У меня MetaMask, поэтому я не могу пользоваться [[gloss:solana|Solana]] — для неё нужен Phantom». Это утверждение в 2026 году:

  • Верное: MetaMask работает только с [[gloss:evm|EVM]]-цепочками, для [[gloss:solana|Solana]] нужен отдельный кошелёк
  • Устарело: с июля 2025 MetaMask поддерживает [[gloss:solana|Solana]] через фреймворк Snaps, а с декабря 2025 — [[gloss:bitcoin|Bitcoin]]
  • Зависит от версии MetaMask — в десктопе работает, в мобильном приложении нет
  • Технически верное, но [[gloss:solana|Solana]] не нужна большинству пользователей :::

:::section{mins=4} Hardware-кошельки :::

:::lead Hardware-кошелёк сам по себе не гарантирует безопасность — он переносит риск с программного слоя на физический. На дистанции эта замена выгодна для сумм, которые тебе будет жаль потерять. Для небольшой суммы в пару сотен долларов hardware избыточен, а его неправильная настройка опаснее самого риска, который он должен закрывать. :::

:::p{html} Когда ты подписываешь транзакцию через hardware-кошелёк, происходит вот что. Программа на компьютере (MetaMask, Ledger Live, Trezor Suite) формирует raw [[gloss:transaction|transaction]] и отправляет её на устройство через USB или Bluetooth. Устройство показывает на собственном экране адрес получателя и сумму, ты подтверждаешь физическими кнопками или касанием, устройство возвращает наружу подпись. Приватный ключ в этот момент не покидает чип — он живёт в Secure Element, изолированном от компьютера чипе с физической защитой от вскрытия. Это и есть «hardware security» — не больше и не меньше. Всё остальное (UI приложения, поддержка цепочек, swap-функции) — надстройка над этим минимальным примитивом. :::

:::p{html} На 2026 год имеет смысл рассматривать три устройства: :::

:::p{html}

  • Ledger Nano S Plus / X / Stax / Flex: рыночный лидер, Secure Element ST33 от STMicroelectronics с сертификацией CC EAL 5+. Прошивка закрытая, это технически работает, но политически проблемно (см. KP1 про Ledger Recover). Nano X и Stax имеют Bluetooth: компромисс UX vs поверхность атаки. Stax и Flex используют E-ink touchscreen и стоят дороже.
  • Trezor Safe 3 / Safe 5 / Safe 7: open source firmware, что критично для аудита. Safe 3 (октябрь 2023) — первый Trezor с Secure Element (NDA-free EAL 6+); Safe 5 (июнь 2024) добавил touchscreen и haptic feedback; Safe 7 (октябрь 2025) — Bluetooth, magnetic charging и второй secure element TROPIC01 с заявленной устойчивостью к квантовым атакам. Trezor Model One и Model T исторически шли без SE, этот пробел и закрыла линия Safe.
  • Keystone 3 Pro: полностью air-gapped, без USB-data, Bluetooth и Wi-Fi. Транзакция передаётся между компьютером и устройством через QR-коды: компьютер показывает raw [[gloss:transaction|transaction]] как QR, Keystone сканирует его камерой, устройство показывает QR с подписью, компьютер сканирует обратно. Три Secure Element чипа (Microchip ATECC608B, Maxim DS28S60, Maxim MAX32520) для трёх разных функций; open source. Цена air-gapped подхода: каждая транзакция занимает заметно дольше, но поверхность атаки сводится к камере и экрану.
:::

:::p{html} Когда hardware действительно стоит покупать. Если у тебя на адресах сумма, потеря которой будет ощутимой (порядок $5 000 и выше — субъективный порог, но средний по индустрии), и если ты этой суммой регулярно пользуешься, hardware оправдан. Если у тебя на адресе $200 и ты только начинаешь, hardware скорее источник риска, чем защита: можно потерять устройство, забыть seed, купить поддельный, неправильно настроить. Безопасность — это не само устройство, а процесс вокруг него; покупка hardware без выстроенного процесса даёт ложное чувство защищённости и больше ничего. :::

:::callout{icon=💡} Это работает как ПИН-pad на банкомате. Ты вставляешь карту (= открываешь приложение в компьютере), но ПИН вводишь не на клавиатуре компьютера, не на ноутбуке кассира, не в форме на сайте банка — а на отдельной физической клавиатуре, которая встроена в банкомат и спроектирована так, что введённый ПИН наружу не выходит. Банк получает только результат проверки «правильно/неправильно», не сам код. Камеры могут снимать твои руки сверху, банкомат может стоять в незнакомой стране, но это не имеет значения: критичная операция выведена в изолированный физический модуль, который никто не контролирует кроме тебя в момент нажатия. Hardware-кошелёк делает то же самое для подписи транзакции: компьютер может быть заражён, кошелёк-приложение скомпрометировано, но подпись формируется внутри устройства, и наружу выходит только её результат. :::

:::keypoints{label="Ключевые моменты"}

  • Ledger Recover, май 2023 — поворотный момент в отношении к hardware-кошелькам. Ledger анонсировала опциональный сервис за $9,99 в месяц: устройство будет извлекать шифрованные части seed-фразы и распределять их между тремя кастодианами (Ledger, Coincover, EscrowTech) для восстановления через KYC. Реакция сообщества была массовой, потому что для такой возможности прошивка должна была уметь экспортировать seed — а это противоречило главному обещанию hardware-кошельков: «ключ не покидает устройство». Сервис всё равно вышел в октябре 2023, но доверие к закрытой прошивке потеряно навсегда; история сделала open-source firmware горячей темой и подняла Trezor как альтернативу.
  • Bluetooth в hardware-кошельках — компромисс UX и поверхности атаки. Ledger Nano X, Stax, Flex и новый Trezor Safe 7 имеют Bluetooth для подключения к телефону без кабеля. Связь зашифрована, подписи всё ещё подтверждаются на экране устройства, но физическое расширение поверхности атаки реально: за последние пять лет в Bluetooth-стеке нашли несколько серьёзных уязвимостей (BLE [[gloss:pairing|pairing]] exploits, KNOB attack). Они не вытаскивают ключ, но могут обмануть пользователя по протоколу. Air-gapped устройства (Keystone) сознательно избегают этой поверхности — это разные ставки на разные модели угроз.
  • Иметь hardware ≠ правильно им пользоваться. Главные ошибки: ввод seed на компьютере «для миграции» или восстановления; одна seed-фраза на крупную сумму без passphrase; игнорирование адреса на экране устройства при подтверждении; использование одной seed для всего без разделения горячего и холодного хранения. Hardware — это усилитель твоих процедур, а не замена им. Без процедур любой Ledger или Trezor — это дорогая флешка.
  • Hardware-кошелёк и cold storage — пересекающиеся, но не тождественные понятия. Hardware характеризует, где живёт ключ (в чипе устройства). Cold/hot характеризует, насколько устройство изолировано от подключённой к сети среды. Ledger Nano X с включённым Bluetooth — hardware, но не cold; air-gapped Keystone 3 Pro — и hardware, и cold; бумажный листок с seed-фразой в сейфе — cold, но без hardware вообще. Когда читаешь или слышишь «cold storage», уточняй, что именно имеется в виду; иначе сравниваешь две оси одновременно и легко делаешь неправильный вывод. :::

:::details{badge=Глубже title="Что такое Secure Element изнутри — и от чего он не защищает"} :::p{html} Secure Element — это микропроцессор с физической защитой от вскрытия. Внутри: защищённая от внешнего чтения NVRAM, аппаратный генератор случайных чисел (TRNG), аппаратные ускорители для криптографических операций. Чип проходит сертификацию Common Criteria, индустриального стандарта, где EAL 5+ и EAL 6+ означают разные уровни глубины формальной верификации и penetration testing в сертифицированных лабораториях (например, ANSSI во Франции для Ledger ST33). Цель — сделать стоимость физического взлома чипа выше, чем ценность ключа на устройстве. Это работает для индивидуальных активов в десятки тысяч долларов и не работает для целевой атаки на адрес с сотнями миллионов: для $100M найдётся бюджет, оплатить который сложнее, чем decapping и микрозондирование. Отдельный нюанс — «NDA-free» статус: Trezor Safe 3/5 используют чип EAL 6+, который не требует подписания NDA с производителем, и поэтому код атестации можно проверять независимо. Чип Ledger требует NDA и закрыт от внешнего аудита. :::

:::p{html} От чего Secure Element защищает и от чего нет. Защищает: физическое извлечение ключа (decapping, side-channel attacks, fault injection); brute-force PIN (ограниченное число попыток + delay между ними); прошивку, которую злоумышленник пытается записать без подтверждения на устройстве. Не защищает: ошибки в коде драйвера между SE и микроконтроллером (Trezor One была уязвима не из-за SE, его там и не было, а из-за того, что общедоступный STM32 можно было вскрыть с инженерным усилием за пару дней); социальную инженерию на уровне UI (Trezor Suite показывает один адрес, устройство — другой; пользователь не сравнил и всё равно одобрил); supply chain attacks (поддельный Trezor Model T 2023, описанный в §3 advanced); собственно подписанные пользователем фишинговые транзакции — устройство показало транзакцию, пользователь нажал «Confirm», ключ остался внутри, но деньги ушли. Secure Element закрывает один класс рисков, остальные остаются. :::

:::p{html} Air-gapped как третий уровень изоляции. Keystone 3 Pro и GridPlus Lattice1 принципиально отказываются от любого подключения к компьютеру: ни USB-data, ни Bluetooth, ни Wi-Fi. Транзакция передаётся через QR-коды: компьютер показывает QR с raw [[gloss:transaction|transaction]], устройство сканирует камерой, формирует подпись внутри, показывает QR с подписью, компьютер сканирует обратно. Поверхность атаки сводится к QR-сканеру и камере — намного меньше, чем USB-стек со всеми его уязвимостями за двадцать лет. Цена: каждая транзакция занимает дольше; нужно физически держать камеру против экрана; firmware-обновления через microSD-карту, а не через интернет. Air-gapped и SE-based hardware — это разные ответы на разные модели угроз: первый изолирует всё устройство от сети, второй изолирует чип внутри подключённого устройства. Оба правильные в своих контекстах. ::: :::

:::quiz{id=q-3-1-s5 correct=1 explanation="Верно. Hardware-кошелёк и «cold storage» — два пересекающихся, но разных понятия. Hardware характеризует где живёт ключ (в чипе устройства). Cold/hot характеризует уровень изоляции от подключённой к сети среды. Ledger с Bluetooth — это hardware, но классифицировать его как cold storage некорректно: устройство устанавливает беспроводное соединение с телефоном, который в сети, и формирует подпись по запросам из этой сети. Cold storage в строгом смысле — это air-gapped решения (Keystone 3 Pro с QR-кодами, paper [[gloss:wallet|wallet]] с seed-фразой, hardware-устройство в режиме offline без какого-либо подключения). Вариант D придуман и неверен по сути: модель iPhone и версия iOS на классификацию не влияют."} У тебя Ledger Nano X с Bluetooth, ты используешь его через iPhone. Можно ли назвать такую конфигурацию «cold storage»?

  • Да: hardware-кошелёк = cold storage по определению, тип подключения не имеет значения
  • Нет: «hardware» и «cold» — разные оси. Ledger с Bluetooth — это hardware, но не cold; cold подразумевает полное отсутствие беспроводного и проводного подключения к подключённому к сети устройству
  • Да, но только когда Bluetooth выключен в настройках устройства
  • Зависит от модели iPhone — на старых iPhone с iOS до 16 это cold, на новых — warm :::

:::section{mins=4} Бэкап и восстановление :::

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

:::p{html} В 2011 году программист Стефан Томас получил 7 002 [[gloss:bitcoin|BTC]] за изготовление короткого видеоролика, объясняющего как работает биткоин. Тогда вся сумма стоила меньше $7 000. Томас записал seed-фразу на листке бумаги и продублировал ключи на USB-флешку IronKey S200 — устройство с военной защитой данных, известное тем, что после десяти неправильных попыток ввода пароля оно безвозвратно стирает содержимое. Листок с seed-фразой Томас потерял; пароль от IronKey, который он «точно запомнит навсегда», тоже забыл. Когда биткоин подорожал, Томас начал пытаться вспомнить пароль: восемь попыток, ни одна не сработала, осталось две. На конец 2025 года IronKey хранится в швейцарском хранилище. Компания Unciphered за восемь месяцев в лаборатории нашла способ обходить счётчик попыток IronKey S200 и продемонстрировала рабочий метод журналисту Wired на тестовом устройстве, но Томас отказался от их предложения: годом ранее он заключил устные договорённости с двумя другими командами и юридически связан этими обязательствами. По ценам мая 2026 года в IronKey 7 002 биткоина превратились примерно в $880 миллионов. Это не история про потерянный ключ; это история про потерянный бэкап ключа, и единственная копия, которая ещё осталась, теперь за стеной, которую невозможно пройти за оставшиеся две попытки. :::

:::p{html} Из истории Томаса вытекают три свойства, которыми должен обладать настоящий бэкап: :::

:::p{html}

  • Физическая устойчивость. Бумага горит, выцветает, размокает. Металл (Cryptosteel, Billfodl, SafePal Cypher, Trezor Keep Metal) — стандарт для долгосрочного хранения: пластина с выгравированными буквами стоит $40–$120 и переживает пожар, наводнение, физическое сжатие. Для 24 слов это разовая покупка на десятилетия.
  • Разнесённость. Одна копия в одном месте — это одна точка отказа. Минимум две копии в разных физических местах: у тебя дома плюс в банковской ячейке; у тебя плюс у близкого родственника; у тебя плюс в офисном сейфе. Цель — чтобы ни одно событие не уничтожило оба места одновременно.
  • Проверяемость. Невозможно знать, работает ли бэкап, пока его не использовали. Тестовое восстановление — единственный способ убедиться: записал seed → создал кошелёк только из этой записи на чистом устройстве → сверил адреса с оригинальными → стёр тестовый кошелёк. Разовая процедура на час; альтернатива — ждать катастрофы и узнать, что одна из 24 строчек прочиталась не так.
:::

:::p{html} Для сумм $10 000 и выше обычной seed-фразы на одной пластине уже недостаточно: одна точка отказа становится слишком ценной мишенью. Shamir SLIP-39 — стандарт, описывающий, как разделить seed на N частей с порогом m из n: например, 3 из 5 значит пять частей у пяти разных людей или мест, любые три собираются обратно в полный seed, одна-две скомпрометированы или потеряны — баланс остаётся в безопасности. Поддерживается Trezor Safe 3/5/7, Keystone 3 Pro, а также рядом software-кошельков (Electrum, Sparrow, Rabby, BlueWallet). Social recovery в смарт-контрактных кошельках (Argent, Safe) решает похожую задачу через смарт-контракт: m из n назначенных «guardian-адресов» могут переназначить контроль над кошельком, если основной ключ потерян. SLIP-39 защищает сам бэкап seed; social recovery защищает доступ к контракту. Подробности — в → 3.2. :::

:::callout{icon=💡} Это работает как эвакуационный план в здании. В каждом офисе и каждой школе на стенах висят схемы с красными стрелками, обозначены пути к выходам, проводятся учения раз в полгода. Кажется лишним, пока ничего не происходит. Но смысл этих учений не в самой эвакуации в обычный вторник, а в том, чтобы в момент реального пожара, когда коридор задымлён и сирена не даёт думать, ноги знали маршрут сами. План, который ни разу не отрепетировали, в кризисе превращается в бумажку на стене: вспомнить, куда смотреть и что делать, в эту минуту никто не успевает. Бэкап seed-фразы устроен ровно так: знание, что листок лежит в столе, бесполезно, если ты не прошёл хотя бы раз восстановление от начала до конца. В момент, когда основной кошелёк недоступен, тебе нужно действовать по выученному порядку, а не разбираться в незнакомом интерфейсе впервые. :::

:::keypoints{label="Ключевые моменты"}

  • Главная ошибка — однократность. Большинство пользователей записывают seed-фразу один раз: в момент создания кошелька, второпях, под давлением UI. Положили в ящик, забыли. Типичный результат через несколько лет — «бэкап вроде есть, но неясно, читается ли, всё ли записано, на каком носителе, и точно ли это та seed». Хороший бэкап — это календарь: раз в год сверить читаемость физического носителя, раз в три года переписать на свежий, проверить тестовым восстановлением.
  • Никогда не фотографируй seed-фразу и не храни её в облаке. Скриншот в галерее телефона, фото в Google Photos, заметка в iCloud, сообщение самому себе в Telegram — всё это синхронизируется с серверами компаний и попадает в их бэкапы, в их машинное обучение, в потенциальные утечки. Атаки на iCloud- и Google-аккаунты массовы и постоянны. Seed должна существовать только на физическом носителе (бумага, металл, голова) и нигде больше. Сделал фото «на минуту, чтобы перенести» — считай, что seed скомпрометирована.
  • Passphrase нужно бэкапить отдельно от seed. Из §2: passphrase — это «25-е слово», превращающее одну seed в несколько разных кошельков по разным passphrase. Если записать seed и passphrase на одной пластине или в одном конверте, теряется весь смысл passphrase: получивший этот носитель забирает обе части сразу и попадает в основной кошелёк. Passphrase живёт на отдельном носителе, в отдельном месте, или в голове — но осознанно и проверенно.
  • Бэкап seed ≠ бэкап адресов. Seed-фраза восстанавливает приватные ключи и все производные от них адреса по стандартному derivation path. Но список того, какие цепочки и токены ты использовал, какие labels стояли у адресов, какие watch-only-наблюдения были настроены, — это отдельный слой, который seed не покрывает. После восстановления нужно вручную включить каждую цепочку и токен; для основной активности это автоматически, а для редко использовавшихся цепочек нужно добавлять их явно — иначе балансы оттуда просто не появятся в интерфейсе. :::

:::details{badge=Глубже title="SLIP-39, multisig, social recovery: три инженерных подхода к разделённому хранению"} :::p{html} SLIP-39 (Shamir backup). Алгоритм разделения секрета на доли, основанный на схеме Ади Шамира 1979 года: секрет шифруется и разбивается через полиномиальную интерполяцию на N частей, m из которых достаточно для восстановления, а m−1 не дают вообще никакой информации о секрете. Стандарт SLIP-39 опубликован SatoshiLabs в конце 2017 года, впервые реализован в Trezor Model T летом 2019, в июне 2024 стал backup-типом по умолчанию для линии Trezor Safe. На 2026 поддерживается hardware-кошельками Trezor (Safe 3/5/7, Model T с прошивкой 2.7.2+) и Keystone 3 Pro, а также software-кошельками Electrum, Sparrow, Rabby, BlueWallet, Wasabi. Доли (recovery shares) кодируются 20-словными или 33-словными фразами из специального словаря на 1 024 слова, отличного от [[gloss:bip|BIP]]-39: уникальные четырёхбуквенные префиксы у всех слов, более строгий checksum (вероятность ошибки 1 к миллиарду против 1 к 16 у [[gloss:bip|BIP]]-39). Применение — защита бэкапа seed: одна доля скомпрометирована — баланс в безопасности; m долей собраны вместе — seed восстановлен. :::

:::p{html} [[gloss:multisig|Multisig]]. Классическая модель: M-of-N подписей нужны для исполнения каждой транзакции. [[gloss:bitcoin|Bitcoin]] поддерживает [[gloss:multisig|multisig]] нативно в скриптах с 2012 года; [[gloss:ethereum|Ethereum]] — через смарт-контракты, наиболее известный из которых Safe (запущен в 2017 как Gnosis Safe), хранящий $100 млрд и больше по состоянию на 2026 год. [[gloss:multisig|Multisig]] — это не бэкап, а разделение контроля в реальном времени: каждое отправление монет требует, чтобы M ключей из N подписали транзакцию (например, 2 из 3 или 3 из 5). Это даёт защиту от компрометации одного ключа: даже если у атакующего есть один из ключей, без подписи от других он не сможет провести транзакцию. Цена — усложнение ежедневного использования: каждый перевод требует координации подписей от нескольких устройств или людей, что для повседневных переводов часто непрактично. :::

:::p{html} Social recovery. Работает только в смарт-контрактных кошельках. Назначаются N guardians — других адресов (друзей, своих устройств на разных платформах, custodian-сервисов); любые M из них могут инициировать смену владельца контракта-кошелька. Argent был первым массовым продуктом с social recovery в 2019 году; Safe позже добавил guardian module. Это разделение прав восстановления, не подписи: повседневные транзакции по-прежнему делает основной ключ, guardians вступают только в сценарий «ключ потерян, нужно переназначить контроль». По сравнению с SLIP-39 и [[gloss:multisig|multisig]]: social recovery защищает от потери ключа, но не от его компрометации (если атакующий получил ключ, он успевает вывести средства до того, как guardians узнают; у [[gloss:multisig|multisig]] этот вектор закрыт). Три подхода решают три разные задачи: SLIP-39 — устойчивость бэкапа, [[gloss:multisig|multisig]] — защита подписи, social recovery — возврат потерянного доступа. ::: :::

:::quiz{id=q-3-1-s6 correct=1 explanation="Верно. Это сценарий Стефана Томаса в миниатюре. Сама seed-фраза физически записана на флешке — она не потеряна. Но прочитать её невозможно: шифрование требует пароля, пароль на бумажке, бумажки нет. Практический результат для пользователя такой же, как потеря seed: доступа к ключам нет. Урок: зашифрованный бэкап создаёт новую единственную точку отказа — пароль шифрования. Бэкапить нужно либо незашифрованный seed на физическом носителе с правильной защитой (огнестойкий сейф, банковская ячейка), либо seed и пароль шифрования на отдельных носителях, в разных физических местах. Вариант D придуман и неверен: ни Apple, ни производитель флешки, ни кошелёк не имеют возможности расшифровать содержимое без оригинального пароля — иначе шифрование было бы бессмысленным."} У тебя зашифрованная USB-флешка с резервной копией seed-фразы. Пароль от шифрования флешки ты записал на бумажку и положил в ящик стола. Через пять лет ты находишь флешку, но бумажки с паролем в столе нет. Это потеря seed-фразы или что-то другое?

  • Да, seed-фраза потеряна — на флешке её больше не прочитать
  • Нет, seed-фраза цела — потерян пароль от шифрования бэкапа; сама фраза по-прежнему лежит на флешке, но за стеной, которую не пройти
  • Технически seed на флешке есть, но юридически она уже не твоя
  • Нужно отнести флешку в Apple Store, они смогут расшифровать содержимое :::

:::section{mins=7} Безопасность кошелька :::

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

:::p{html} 20 декабря 2025 года один пользователь потерял 49 999 950 USDT — почти $50 миллионов — за одну транзакцию. Сценарий был такой. Пользователь вывел деньги с Binance на свой собственный кошелёк, и, как обычно делают перед крупным переводом, отправил тестовую транзакцию на 50 USDT для проверки адреса. Тест прошёл. Через 26 минут пользователь скопировал адрес из истории своего кошелька и отправил туда оставшиеся $50 миллионов. Атака началась в момент тестовой транзакции: автоматический скрипт атакующего увидел её, сгенерировал поддельный адрес, у которого первые пять и последние четыре символа совпадали с настоящим, и в ту же минуту прислал жертве нулевой USDT-перевод (с amount=0) с этого адреса. Поддельный адрес оказался в истории кошелька рядом с настоящим. Жертва скопировала «свой» адрес, проверила первые и последние символы и не заметила подмены. Деньги ушли. За следующие 30 минут атакующий обменял USDT на DAI (чтобы Tether не успел заморозить), потом на [[gloss:ethereum|ETH]], потом провёл через Tornado Cash. Возврат невозможен. :::

:::p{html} Эта атака называется address poisoning, и она не эксплуатирует ни единой технической уязвимости. Она эксплуатирует человеческую привычку проверять адрес по краям. За 2025 год address poisoning стал основной угрозой для крупных кошельков: по данным Chainalysis и SlowMist, общие потери от этой схемы превысили $3,4 миллиарда; зафиксировано 158 000 атак на около 80 000 пользователей. Главные практики защиты на 2026 год: :::

:::p{html}

  • Проверять адрес целиком, не по краям. Скопировал — посмотри все 42 символа, а не первые и последние 6. Подобрать совпадение по 5 символам с обеих сторон атакующий может за несколько часов на обычном GPU; подобрать совпадение по всему адресу — за миллиарды лет, на это никто не идёт.
  • Регулярно отзывать approvals. Каждое подписанное setApprovalForAll или [[gloss:permit|permit]] остаётся в силе навсегда, пока не отозвано явно. Сервисы revoke.cash и ScamSniffer показывают активные approvals на твоём адресе; раз в три месяца имеет смысл отзывать те, которыми ты больше не пользуешься.
  • Отдельный кошелёк для airdrop-страниц и [[gloss:nft|NFT]]-mint'ов. Любая транзакция вида «нажми Claim и получи токены» — потенциальный канал атаки через approval. Если такая страница оказалась фишинговой, атакующий списывает с адреса всё, на что был approval. Решение — отдельная seed для рискованной активности, на которой основного баланса нет.
  • «Поддержка не пишет первой». Любое сообщение в Discord, Telegram-DM, Twitter-DM, email от «команды проекта», «MetaMask Support», «Ledger Helpdesk» — атака без исключений. Настоящие команды отвечают только в публичных каналах и сами в личку не приходят.
:::

:::p{html} Если ты уже подписал что-то подозрительное и видишь странные транзакции — первые минуты решают: :::

:::p{html}

  • Немедленно отключи все подключения к DApp-сайтам в настройках кошелька. Это останавливает запросы на подпись от атакующего сайта, но не блокирует твои собственные переводы — кошельком ты по-прежнему пользуешься.
  • Через revoke.cash отзови все активные approvals на этот адрес. Это блокирует возможность списать токены позже по уже выданным разрешениям.
  • Создай новый кошелёк с новой seed на чистом устройстве и переведи всё оставшееся туда. Скомпрометированную seed больше никогда не используй, даже на «холодной» части — её считают окончательно сгоревшей.
:::

:::p{html} Восстановить уже выведенные средства невозможно: транзакции необратимы, а атакующие обналичивают за минуты. :::

:::callout{icon=💡} Безопасность в крипте работает как гигиена в обычной жизни. Никто не моет руки потому, что прямо сейчас собирается заболеть — моют, потому что иначе рано или поздно подхватишь то, что вокруг ходит постоянно. Прививки делают за годы до возможной встречи с болезнью; чек-ап у врача проходят, когда ничего не беспокоит; зубы чистят дважды в день безо всякой драмы. Каждое из этих действий по отдельности кажется лишним, и в любой конкретный день можно пропустить любое из них без видимых последствий. Эффект — не в одном дне, а в десятилетии. Безопасность кошелька устроена ровно так же: проверять адрес целиком, регулярно отзывать approvals, не подключать незнакомые сайты — это не действия против конкретной угрозы сегодня, это привычки, которые делают катастрофу маловероятной за все годы пользования. Не делать ничего из этого — то же самое, что не мыть руки никогда: один эпизод проходит без последствий, через год кто-нибудь окажется в больнице. :::

:::p Попробуй address poisoning руками — выбери совпадающий адрес в четырёх раундах возрастающей сложности и увидь, почему у жертвы кейса декабря 2025 на $50M шансов не было. :::

:::keypoints{label="Ключевые моменты"}

  • Address poisoning растёт каждый год именно потому, что технологическая защита здесь бессильна. Сгенерировать vanity-адрес с совпадающими 4–5 символами с обеих сторон стоит около 10 минут работы среднего GPU и 5 центов электричества; совпадение по 8 символам с каждой стороны — несколько часов. Атакующий за день делает тысячи попыток одновременно по тысячам жертв. Единственное контрмеры — сменить пользовательскую привычку: проверять адрес целиком, использовать адресную книгу или ENS-имя вместо копирования из истории. Кошельки добавляют warning'и, но это не закрывает класс атак.
  • Smart-contract approval — это долгосрочный риск, а не разовое действие. Каждый setApprovalForAll и [[gloss:permit|permit]], который ты подписал, остаётся активным до явной отмены. Контракт, которому ты дал доступ три года назад на одну транзакцию, имеет это право и сегодня — а если за это время в нём нашли уязвимость или сменили владельца, твои токены под угрозой. Главный вектор атак на старые [[gloss:defi|DeFi]]-аккаунты в 2024–2026 — эксплойты в забытых approvals.
  • [[gloss:permit|Permit]] и signTypedData — это то, что симуляция транзакций из §4 не ловит. Blockaid и Rabby симулируют транзакции и показывают конкретные диффы балансов перед подписью; но [[gloss:permit|permit]]-сообщения — это не транзакции, а off-chain подписи, отложенные во времени. Их эффект проявляется, когда атакующий сам использует подпись через свой контракт. Именно поэтому в 2026 году доля phishing-атак через [[gloss:permit|permit]] и Permit2 продолжает расти: симулятор перед подписью не предупреждает.
  • Эвристика «поддержка не пишет первой» работает и в обратную сторону: даже когда ты сам ищешь помощь — на форуме, в чате проекта, у незнакомого «эксперта» — соблюдай те же правила. Никому не показывай seed-фразу под предлогом «проверить, что она настоящая»; никому не подписывай сообщение через кошелёк под предлогом «доказать, что адрес твой»; никогда не подключай кошелёк к незнакомым «инструментам диагностики». Этот паттерн — главный канал атак на новичков, которые впервые столкнулись с проблемой и ищут совет где попало. :::

:::details{badge=Глубже title="Как технически работает Permit2-фишинг и почему симуляция его не останавливает"} :::p{html}

  • Don't sign signTypedData_v4 without understanding the values in the spender, amount, and deadline fields. Rabby displays these fields in human-readable form — that part is critical.
  • Regularly revoke active Permit2 permissions through the permit2.io or revoke.cash interface.
  • For large amounts, keep a separate address that no DApp connects to at all, not even to view the balance. This is the most reliable defense against signature attacks: an address that isn't connected can't be asked to sign.
  • A simple five-second pause before pressing Sign on any request. Attacks rely on fast reactions; slowing yourself down is the only defense that works universally, because it doesn't depend on software or device, only on the person.
:::

:::p{html} Permit2 — это стандарт Uniswap, введённый в 2022 году. Идея — заменить дорогие on-chain транзакции approve на off-chain подписи, которые контракт Permit2 принимает как доказательство одобрения. Технически это работает так: пользователь подписывает структурированное сообщение через signTypedData_v4 со спецификацией [[gloss:eip-712|EIP-712]], где указаны spender (кому разрешено), amount (сколько токенов), deadline (до какого времени действует). Сама подпись в цепочку не отправляется — её хранит инициатор операции. Когда подпись нужна, инициатор передаёт её в контракт Permit2, который проверяет валидность и переводит токены. UX выгода — пользователь экономит газ на approve; риск-вектор — подпись существует в виде data-объекта, который может быть использован атакующим в любой момент до deadline. :::

:::p{html} Сценарий атаки. Жертва заходит на фишинговый сайт, замаскированный под легитимный DApp — клон Uniswap, поддельная airdrop-страница, фейковый «mint [[gloss:nft|NFT]]». Сайт запрашивает подключение кошелька; это безобидное действие, не транзакция, и кошелёк его не предупреждает. Затем сайт показывает кнопку Claim, Verify account или Approve and continue. Жертва нажимает; MetaMask открывает запрос на подпись через signTypedData_v4. В этом запросе — Permit2-сообщение со spender, равным адресу атакующего, и amount, равным всему балансу жертвы по токену. Blockaid симулирует подпись, но не видит изменения балансов: подпись их не вызывает, эффект отложен. Жертва видит сообщение «подпись на approval», нажимает Sign. Атакующий получает подпись, отправляет её в Permit2, и все указанные токены уходят на его адрес. С момента подписи до списания проходят секунды. :::

:::p{html} Защита. Несколько слоёв, работающих в комплексе: :::

:::p{html}

  • Не подписывать signTypedData_v4 без понимания значений полей spender, amount, deadline. Rabby показывает эти поля в человекочитаемом виде — это критично.
  • Регулярно отзывать активные Permit2-разрешения через интерфейс permit2.io или revoke.cash.
  • Для крупных сумм держать отдельный адрес, к которому никакой DApp не подключается вообще, даже на просмотр баланса. Это самая надёжная защита от подписей: не подключив адрес, его и подписать не попросят.
  • Простая пауза в 5 секунд перед нажатием Sign в любом запросе. Атаки рассчитаны на быстроту реакции; замедление себя — единственная защита, которая работает универсально, потому что не зависит ни от ПО, ни от устройства, а только от человека.
::: :::

:::quiz{id=q-3-1-s7 correct=1 explanation="Верно. Это классический address poisoning. Атакующий сгенерировал поддельный адрес с совпадающими первыми и последними символами и отправил тебе 0-USDT перевод, чтобы этот адрес появился в истории твоего кошелька рядом с реальными. Расчёт — на то, что при следующем крупном переводе ты скопируешь адрес из истории, проверишь по краям и не заметишь подмены. Что делать: не реагировать на сам перевод (это безопасно), но при следующих транзакциях всегда копировать адрес из проверенного источника (адресная книга, тестовый перевод незадолго до основного, лучше всего — отправка по ENS-имени или из QR-кода контрагента), а не из истории. Tether не отправляет 0-USDT для «синхронизации»; биржи не «тестируют адрес» сами от себя; «подарки от незнакомцев» в крипте не бывают невинными."} В истории твоего кошелька появилась запись о входящем 0-USDT переводе от незнакомого адреса. Первые пять символов этого адреса совпадают с твоим, последние четыре — тоже. Что это?

  • Системная транзакция — Tether иногда отправляет 0-USDT для синхронизации балансов
  • Address poisoning: атакующий «отравил» твою историю транзакций поддельным адресом, чтобы ты случайно скопировал его при следующем переводе
  • Подарок от незнакомого пользователя; ничего не значит, можно проигнорировать
  • Тестовая транзакция твоей собственной биржи — нужно проверить аккаунт на Binance/Coinbase :::