Kaspa Safe — сейф для KAS, живущий прямо на блокчейне. Каждый вывод отстаивает задержку, которую выбрали вы; отдельный тревожный ключ отменяет кражу на ходу; опциональный «выключатель мертвеца» передаёт сейф наследнику. Ниже — реальная механика, вплоть до путей траты ковенанта, и модель безопасности.
Ковенант: у каждой монеты фиксированный набор выходов
Сейф — экземпляр открытого контракта-ковенанта vault.sil (Kaspa Toccata, mainnet). Монеты заперты скриптом ровно с двумя состояниями — в сейфе и идёт вывод — и коротким списком переходов. Всё, чего нет в этом списке, — не «запрещённое действие», которое сервер отклонит, а транзакция, которую не примет сама сеть Kaspa: такого пути в скрипте не существует.
Начать выводГорячий ключ. Переводит сейф в состояние «идёт вывод». Адрес назначения фиксируется ончейн в этот самый момент — ковенант не примет другой адрес, даже от владельца.
Отменить выводТревожный ключ. В любой момент окна задержки один ход возвращает всё в сейф. Это противокражный стоп-кран.
Завершить выводВообще без ключа. Возможно только после полной задержки и только на адрес, зафиксированный при старте. Путь без подписи может бродкастить кто угодно — наш вотчер делает это за вас, — но монеты всё равно не могут уйти никуда больше.
Чекин («я жив»)Горячий ключ. Сбрасывает таймер наследования, пересоздавая монету сейфа. Нужен, только если наследование включено.
Наследование — автоБез ключа. Если владелец не чекинился весь срок наследования, путь без подписи выплачивает сейф — строго на адрес наследника, заданный при создании.
Наследование — вручнуюКлюч наследника. Альтернативный режим, выбранный при создании: после срока наследник забирает сейф приватным ключом собственного адреса.
Migrate (переезд)Горячий + тревожный вместе. Обе подписи — полная власть владельца по определению, поэтому это единственный мгновенный путь со свободным получателем: переезд в сейф новой версии, ротация засветившегося ключа или выход. Работает из обоих состояний. Раздельное хранение безопаснее; общий зашифрованный профиль — осознанный обмен изоляции на удобство.
Пути без подписи — тот самый трюк, который позволяет серверу помогать, не будучи доверенным: наш вотчер может завершить созревший вывод или доставить наследство, но куда уйдут деньги — намертво зашито в ковенанте. Время меряется в DAA — «тиках» Kaspa, примерно 10 в секунду (36 000 DAA ≈ 1 час); интерфейс всегда показывает по-человечески.
Три ключа
ГорячийЗапускает выводы и чекины. Живёт в зашифрованном профиле деска — можно на повседневном устройстве.
ТревожныйОтменяет кражу; вместе с горячим открывает и мгновенный migrate-путь. По умолчанию живёт только на отдельной тревожной карточке. При создании можно выбрать хранение в зашифрованном профиле ради удобства, приняв файл как единственную точку отказа. Forge Sync не переносит его ни в одном режиме.
Ключ закладкиОдноразовый — чтобы положить монеты в сейф при создании; после этого не важен.
Горячий и funding-ключи генерируются в браузере и автоматически сохраняются в зашифрованный мастер-файл ключей. Более безопасный режим оставляет тревожный ключ только на карточке; визард позволяет вместо этого выбрать общее хранение в профиле. Если выбрали общее хранение, после создания сейфа экспортируйте свежую полную копию .age: Forge Sync удаляет alarm_sk, поэтому на синхронизированном втором устройстве отменить вывод без этой копии нельзя. Мы не видим ни одного из ключей.
Создание сейфа по шагам
Выбрать правила. Окно отмены: пресеты 6 ч / 24 ч / 48 ч / 7 д / 14 д или своё от 1 часа до 90 дней (разумный дефолт — 24 ч; меньше 6 ч можно проспать кражу). Опциональное наследование: 6 / 12 / 24 месяца или своё от 1 дня до 5 лет, доставка автоматически или по ключу наследника.
Ключи куются. Браузер генерирует три ключа: горячий и funding идут прямо в профиль деска. Для тревожного по умолчанию создаётся отдельная тревожная карточка — скачайте или распечатайте её и подтвердите последние 4 символа, — либо можно выбрать хранение в зашифрованном профиле. Если наследование включено — вводите Kaspa-адрес наследника и, по желанию, его email.
Положить монеты. Отправьте KAS на показанный адрес закладки (funding-адрес) и нажмите «Заложить в сейф» — браузер соберёт и подпишет ковенант-транзакцию. Адрес закладки — ваш собственный адрес (его ключ только что создан в вашем профиле), а не наш: до нажатия кнопки монеты полностью под вашим контролем. Промежуточный шаг нужен технически: ковенант нельзя создать обычным переводом. Никогда не шлите монеты напрямую на адрес сейфа — прямой перевод не становится частью ковенанта. Пополнение позже = ещё один цикл закладки (или один клик «В сейф» из кошелька деска).
Запечатано. Видны адрес сейфа, сумма и txid — тут же можно подключить Telegram-алерты. Всё криптографическое произошло в браузере; сервер получил только публичные параметры.
Когда пришёл алерт «вывод начался»
У вас есть всё окно отмены. При раздельном хранении достаточно любого браузера и тревожной карточки. При общем хранении на другом устройстве импортируйте полную зашифрованную копию .age с устройства создания — одного Forge Sync недостаточно. Откройте «Мой сейф», нажмите ⛔ Отменить вывод, затем перевезите средства в свежий сейф. Путь migrate сделает переезд мгновенно через открытый vaultctl. Полный плейбук — на странице восстановления.
Наследование, честно
Таймер — это ончейн-возраст монеты сейфа: чекиньтесь хотя бы раз за срок, и сейф остаётся вашим. Отмена кражи тоже сбрасывает таймер.
В режиме «автоматически» наследнику не нужны ни ключ, ни софт — после срока монеты придут на его адрес путём без подписи. В режиме «вручную» наследник забирает своим ключом. До истечения срока наследник не видит и не может взять ничего.
Опциональное email-уведомление наследнику бесплатно и не зависит от подписки — оно уходит, когда окно открылось, и содержит адрес сейфа и инструкцию, но никогда ключи или сумму.
Укажите наследником свой же второй адрес — и наследование станет страховкой от потери горячего ключа.
Сколько стоит
Все ончейн-операцииБесплатны навсегда — создание, выводы, отмены, чекины, наследование. Платится только сетевая комиссия Kaspa (доли KAS).
Telegram/email-алерты и напоминанияЕдинственная платная вещь, и та опциональная: 100 KAS / год, первые 30 дней бесплатно. Мгновенный сигнал «вывод начался» и напоминания о чекине (~80% срока). Сам trial или оплата ничего не доставляют: подключите Telegram либо e-mail владельца именно для этого сейфа. Без алертов сейф работает полностью — просто о чужом выводе вы узнаете позже, чем хотелось бы.
Модель безопасности
Сервер не может украсть. Приватные ключи до него не доходят, а пути ковенанта без подписи намертво фиксируют получателя (созревший вывод → на его адрес; авто-наследство → наследнику). Что сервер хранит: публичные ключи, параметры задержки и — если вы включили — email наследника / привязку Telegram. См. приватность.
Вор с горячим ключом получает ноль. Единственный выход — отложенный вывод с публично видимым, зафиксированным адресом назначения — и тревожный ключ его отменяет.
Вор с ОБОИМИ ключами выигрывает мгновенно. Горячий + тревожный вместе — полная власть владельца: путь migrate перевозит сейф куда угодно без задержки. Поэтому раздельное хранение — более безопасный дефолт. Общее хранение в зашифрованном профиле меняет эту изоляцию на удобство и делает полный файл единственной точкой отказа.
Смерть сервиса не трогает ваши деньги. Сейф — ончейн-контракт, проверяющий только ключи и время. Открытый CLI vaultctl делает каждую операцию из терминала против любой ноды Kaspa v2+ (запущенной с --utxoindex); офлайн-дешифратор достаёт ключи из бэкапа без сети. А просто наблюдать за сейфом можно, вставив его адрес в любой Kaspa-эксплорер.
Потеряны оба ключа и нет наследования? Монеты заморожены навсегда — никто, включая нас, до них не доберётся. Это обратная сторона некастодиальности; включайте наследование хотя бы «на себя».
Проверяйте, а не верьте. Контракт и инструменты открыты: github.com/Kaspaforge/kaspaforge. vaultctl selftest — 25 проверок каждого пути и каждой атаки внутри VM ноды.
Честные границы. Контракт прошёл наш полный цикл ончейн-тестов и адверсариальные атаки. Предыдущий Android-пакет снят; до выхода актуальной сборки используйте браузерную/PWA-версию.