Seed Vault — це апаратний модуль усередині пристроїв Solana Mobile, який ізолює вашу seed-фразу від операційної системи та встановлених застосунків. На практиці це означає, що навіть якщо на телефон потрапить шкідливий код, він не зможе витягнути приватний ключ — саме з цією метою Seed Vault і створювався.
Архітектура Seed Vault: апаратний рівень
Seed Vault побудований на базі технології ARM TrustZone — апаратному розділенні процесора на дві зони: звичайну (Rich Execution Environment) і безпечну (Secure Environment). Операційна система Android, усі встановлені застосунки, включно з гаманцями, працюють у звичайній зоні. Seed Vault функціонує виключно в безпечній.
Коли ви вперше створюєте гаманець через Seed Vault, відбувається таке:
- Генератор випадкових чисел у безпечній зоні створює seed-фразу.
- Seed-фразу записують у спеціалізоване сховище всередині Secure Environment.
- Звичайна зона (Android) отримує лише публічний ключ та можливість надсилати запити на підпис транзакцій.
Зв'язок між застосунком і Seed Vault відбувається через внутрішній API. Застосунок формує транзакцію, передає її на підпис у безпечну зону, Seed Vault перевіряє структуру запиту та повертає підписану транзакцію — і лише її. Сам приватний ключ або seed-фраза ніколи не залишають меж безпечної зони у відкритому вигляді.
Важливий нюанс: Seed Vault не є повноцінним гаманцем із інтерфейсом. Це інфраструктурний модуль, до якого підключаються застосунки-гаманці (наприклад, Solflare у спеціальній версії для Solana Mobile). Такий застосунок відповідає за відображення балансу, формування транзакцій, взаємодію з DEX і NFT-маркетплейсами, але підписує їх через Seed Vault.
Апаратний захист від витоку ключів
Механізми захисту Seed Vault працюють на кількох рівнях одночасно.
Ізоляція пам'яті. Оперативна пам'ять безпечної зони фізично відокремлена від основної. Навіть ядро Android не має до неї доступу. Це унеможливлює класичні вектори атак, коли шкідливий застосунок намагається зчитати пам'ять іншого процесу.
Обмеження API. Інтерфейс Seed Vault підтримує лише чітко визначений набір операцій: генерація ключів, запит на підпис, видалення ключів. Немає команди «прочитай seed-фразу» чи «експортуй приватний ключ» — такої можливості просто не існує на рівні прошивки.
Апаратний генератор ентропії. Seed-фраза генерується не програмним методом, а з використанням апаратного генератора випадкових чисел (Hardware Random Number Generator). Це виключає ситуації, коли слабка програмна ентропія призводить до передбачуваності ключів.
Захист від фізичного втручання. Спроба витягнути мікросхему або з'єднатися з контактами для прямого зчитування даних не дає результату: ключі зашифровані і прив'язані до самого апаратного модуля. Безпосереднє зчитування флеш-пам'яті не дозволяє отримати seed-фразу у зрозумілому вигляді.
Типова помилка користувачів — думати, що Seed Vault захищає від фішингу чи підпису шкідливої транзакції. Це не так. Seed Vault гарантує, що ключ не витікне, але не аналізує, що саме ви підписуєте. Перевірка адреси отримувача та суми — це завдання застосунку-гаманця та вашої власної уваги.
Що відбувається при втраті або поломці телефону
Якщо телефон загублено, вкрадено або він фізично вийшов з ладу, доступ до Seed Vault втрачається безповоротно. Ніякого дистанційного експорту ключів не передбачено — це фундаментальна властивість архітектури.
Проте це не означає втрату коштів. Seed Vault з самого початку пропонує вам записати seed-фразу (12 або 24 слова) на фізичний носій. Саме ця фраза є єдиним способом відновити доступ до коштів на іншому пристрої.
Що стосується ситуації, коли телефон опинився в чужих руках:
- Без seed-фрати ніхто не зможе підписати транзакцію, навіть маючи повний доступ до Android.
- Екран блокування захищає від поверхневого втручання, але навіть його зняття через заводське скидання не дає доступу до ключів у Seed Vault.
- Фізична розбірка пристрою також не дозволяє витягнути ключі, як зазначено вище.
Ризик полягає виключно в тому, що ви не зберегли seed-фразу або зберегли її ненадійно (фото на телефоні, файл у хмарному сховищі, повідомлення в месенджері). У такому разі втрата пристрою дорівнює втраті коштів.
Процедура відновлення гаманця
Відновлення працює за стандартним для криптогаманців принципом BIP39, але з урахуванням специфіки Seed Vault.
Крок 1. Підготовка. Знайдіть свій фізичний запис seed-фрази. Переконайтеся, що ви перебуваєте в безпечному місці, де ніхто не зможе підглянути за екраном або почути диктування слів.
Крок 2. Вибір пристрою. Відновити гаманець можна на іншому пристрої Solana Mobile із Seed Vault або на будь-якому звичайному смартфоні за допомогою програмного гаманця, що підтримує імпорт за seed-фразою (Solflare, Phantom, Backpack та інші).
Крок 3. Імпорт на Solana Mobile. У сумісному застосунку-гаманці оберіть «Відновити гаманець» замість «Створити новий». Введіть слова seed-фрази у правильному порядку. Seed Vault імпортує фразу у безпечну зону, і ви знову отримуєте апаратний захист ключів.
Крок 4. Імпорт на звичайному смартфоні. Процедура аналогічна, але ключі зберігатимуться програмно. Безпека знижується до рівня звичайного мобільного гаманця.
Крок 5. Перевірка. Після відновлення переконайтеся, що публічна адреса збігається з тією, яку ви використовували раніше. Зробіть тестову транзакцію на малу суму перед тим, як переміщувати значні кошти.
Важливе обмеження: якщо ви створювали кілька незалежних гаманців у Seed Vault, кожен із них має власну seed-фразу. Відновлення однієї фрази не відновить інші гаманці автоматично.
Порівняння з програмними гаманцями на смартфоні
| Критерій | Seed Vault (Solana Mobile) | Програмний гаманець на смартфоні |
|---|---|---|
| Зберігання приватного ключа | Апаратна ізольована зона (ARM TrustZone) | Файл у файловій системі Android, захищений лише ОС |
| Можливість витоку ключа через шкідливий застосунок | Неможлива за правильної архітектури | Можлива через вразливості ОС або шкідливе ПЗ |
| Доступ до ключа при фізичному володінні телефоном | Неможливий без seed-фрази | Залежить від налаштувань захисту Android, але теоретично можливий при розбитті екран блокування |
| Підтримка DeFi, DEX, NFT | Повна, через підключені застосунки-гаманці | Повна |
| Залежність від конкретного пристрою | Так, апаратна прив'язка (але відновлення через seed-фразу на будь-якому пристрої) | Ні, працює на будь-якому смартфоні |
| Швидкість підпису транзакцій | Мінімальна затримка (внутрішній API) | Мінімальна затримка |
| Захист від підпису шкідливої транзакції | Ні, Seed Vault не аналізує зміст транзакції | Ні, програмний гаманець також не аналізує зміст автоматично |
Головна практична різниця полягає в моделі довіри. Програмний гаманець довіряє операційній системі: якщо Android скомпрометовано, ключі під загрозою. Seed Vault зменшує поверхню атаки до апаратного модуля, який не залежить від стану ОС.
Проте Seed Vault не є абсолютним захистом від усіх загроз. Він вирішує конкретне завдання — ізоляцію ключового матеріалу. Фішинг, підміна адрес отримувачів у застосунку, компрометація RPC-вузла, через який ви надсилаєте транзакцію, — усі ці вектори атак залишаються актуальними незалежно від того, де зберігається ключ.
Блок ризиків. Seed Vault захищає ключі, але не захищає від помилок користувача. Підпис транзакції на переказ коштів шахраєві відбувається так само легко, як і легітимний переказ. Збереження seed-фрази в цифровому вигляді (скріншот, хмара, месенджер) повністю нівелює апаратний захист. Втрата seed-фрази при поломці пристрою означає втрату доступу до коштів назавжди. Матеріал не містить інвестиційних рекомендацій і описує виключно технічну архітектуру зберігання ключів.