7 мин чтения
Что видит CardanoWall (и чего не видит)
CardanoWall видит данные аккаунта, биллинга и публичные записи подтверждений. По замыслу он не видит ваш Identity Seed в открытом виде, ваши приватные ключи и открытый текст запечатанного файла.

CardanoWall видит обычные служебные данные и публичные записи подтверждений, которые вы публикуете. По замыслу он не видит ваш Identity Seed в открытом виде, ваши приватные ключи и открытый текст файла, который вы запечатываете. Самый чувствительный материал хранится и используется на вашем устройстве, а не на наших серверах.
Это и есть честная версия модели приватности. CardanoWall — это размещённый сервис, построенный на шлюзе, поэтому ему действительно нужны данные об аккаунте, биллинге, публикациях и индексации, чтобы работать. Интересен не вопрос «видит ли CardanoWall хоть что-нибудь?» — конечно, видит. Интересно, какого рода данные он видит и что остаётся зашифрованным от нас.
В этой статье мы разбираем эту границу, категория за категорией.
Какие данные аккаунта хранит CardanoWall?
Обычные данные размещённого сервиса. В зависимости от того, как вы пользуетесь продуктом, это может включать:
- идентификатор вашего аккаунта;
- идентификаторы для входа, например адрес электронной почты или ссылку на привязанный аккаунт OAuth;
- записи биллинга и ваш предоплаченный баланс;
- метаданные API-ключей и их хешированную форму (никогда не сам ключ в открытом виде);
- ссылки на платёжный процессор для пополнений;
- настройки на уровне аккаунта;
- метки времени действий с аккаунтом;
- метаданные поддержки и эксплуатации;
- журналы ограничения частоты запросов и безопасности.
Это данные того же рода, что хранит любой сервис с аккаунтами. Ничего из этого не является вашим Identity Seed.
Какие данные идентичности он может видеть?
Публичные ключи идентичности — и ничего приватного.
В CardanoWall идентичность детерминированно выводится из единственного 32-байтового Identity Seed, и сервису для работы нужны именно публичные ключи этой идентичности: показать вашу идентичность, подсчитать её подписанные подтверждения, привязать идентичность к вашему аккаунту после проверки владения и отобразить публичный профиль, когда вы решите его опубликовать.
Поэтому сервис может видеть публичные данные идентичности, такие как:
- публичный ключ подписи Ed25519;
- публичный ключ получателя X25519;
- необязательный гибридный постквантовый публичный ключ получателя;
- время создания идентичности в базе данных сервиса;
- состояние связи между аккаунтом и идентичностью;
- любые поля публичного профиля, которые вы включили.
Это публичные или служебные факты. Это не приватный ключ подписи и не приватный ключ получателя, и из них нельзя обратно восстановить ваш сид.
Что серверу видеть вообще не нужно?
Всё, что позволило бы ему действовать от вашего имени. Серверу это не нужно, и он специально устроен так, чтобы не хранить в пригодном для использования виде:
- Identity Seed в открытом виде;
- приватные ключи подписи Ed25519;
- приватные ключи получателя X25519;
- гибридные (постквантовые) секреты получателя;
- материал разблокировки, который выдаёт ваш passkey;
- расшифрованное содержимое вашего хранилища идентичности;
- расшифрованный открытый текст запечатанного файла.
Всё это живёт на вашем устройстве после разблокировки или в резервных копиях, которые контролируете вы. Переносимая, каноническая копия идентичности — это её сид; именно этот артефакт, а не размещённый слой для удобства, и есть настоящая резервная копия.
Что зашифрованное хранилище раскрывает серверу?
Что оно существует — и почти ничего больше.
Чтобы вы могли разблокироваться на новом устройстве с помощью passkey, CardanoWall хранит по одной актуальной строке зашифрованного хранилища на аккаунт. Сервер может читать метаданные этой строки — когда она обновлялась в последний раз, её номер версии и какие зарегистрированные passkey с ней связаны, — потому что это нужно ему для интерфейса разблокировки и управления жизненным циклом.
Чего сервер не может сделать — так это расшифровать хранилище. Хранилище — это единый шифротекст в стиле age, адресованный исключительно факторам разблокировки вашего passkey WebAuthn (стансы PRF). В нём сознательно нет ни пути разблокировки по паролю, ни добавленного получателя с публичным ключом, так что хранимый шифротекст не раскрывает ничего, что сервер мог бы взломать офлайн. Это удобство на уровне сервиса, а не кастодиальное хранение: запертый ящик у нас, а единственные ключи — у ваших passkey.
В открытом виде хранилище содержит ваши Identity Seed и ваши приватные отображаемые метки — ровно тот материал, который никогда не должен быть доступен серверу для чтения. Та же архитектура управляет и отзывом: удаление passkey заново шифрует хранилище под оставшиеся факторы и безвозвратно удаляет предыдущий шифротекст, так что удалённый аутентификатор больше не может открыть текущее хранилище. Это реальный отзыв для текущего состояния, хотя и не ретроактивный — копия, которую злоумышленник уже выгрузил и всё ещё может открыть, — это отдельная проблема. Как passkey защищают ваше хранилище идентичности разбирает это подробнее.
Какие данные подтверждений публичны?
Само подтверждение. Записи Label 309 публикуются в Cardano именно для того, чтобы любой, у кого есть ссылка на транзакцию, мог их проверить. В зависимости от записи публичные данные могут включать:
- хеши содержимого;
- ссылку на транзакцию;
- время блока, которое назначает блокчейн;
- структуру записи;
- подписи и публичные ключи подписавших, когда автор решил подписать;
- корни Merkle для пакетированных записей;
- метаданные конверта шифрования;
- URI контентно-адресуемого хранилища (
ar://,ipfs://); - количество зашифрованных слотов получателей;
- семейство обмена ключами, использованное для запечатанной записи.
Эти данные публичны намеренно: именно они делают подтверждение проверяемым без доверия к CardanoWall. Для запечатанной записи обратите внимание на то, чего нет в ней: открытый текст файла никогда не попадает в блокчейн. Наблюдатель может увидеть, что запись запечатана, сколько в ней слотов получателей и какое семейство обмена ключами она использует, но не то, кто эти получатели, и не содержимое.
Что могут видеть шлюзы хранилища?
Хранимые байты и метаданные запросов.
Если запись указывает на содержимое в Arweave или IPFS, публичные шлюзы, которые отдают эти байты, видят запросы к ним. Для публичного файла эти байты — открытый текст. Для запечатанного файла эти байты — шифротекст, и они должны оставаться нечитаемыми без приватного ключа получателя.
Шлюзы также могут наблюдать тайминги, размер объекта и характер запросов. На них нельзя полагаться в вопросах конфиденциальности. Именно поэтому чувствительный файл нужно запечатать до того, как он попадёт в хранилище, а не рассчитывать на то, что слой хранения сохранит его в тайне.
Что может видеть браузер, пока вы разблокированы?
Всё, что нужно, чтобы действовать от имени вашей идентичности, — на всё время, пока сессия разблокирована.
После разблокировки ваши Identity Seed и выведенные из них приватные ключи живут в памяти сессии вашего браузера, чтобы приложение могло подписывать и расшифровывать. Когда вы расшифровываете запечатанный файл, его открытый текст тоже оказывается в браузере. При блокировке или выходе этот материал из памяти затирается по мере возможности.
Это приватность на стороне клиента, и она честна относительно своих пределов. Хранение секретов на вашем устройстве защищает вас от кастодиального хранения на сервере, но это значит, что ваше устройство и окружение браузера имеют значение. Вредоносное расширение браузера, враждебное локальное ПО или активная уязвимость межсайтового скриптинга во время разблокированной сессии могут прочитать то, что находится в памяти. Строгие заголовки content-security, разблокировка с минимумом скриптов и разблокировка только по явному действию — всё это снижает такую уязвимость, но не способно её устранить. Для чувствительных идентичностей используйте устройство, которому доверяете; хранилище браузера и ключи сессии объясняет, что именно кешируется, а что — нет.
Что может раскрыть адресная книга?
Ваш список контактов — это служебные данные, и они могут быть чувствительными по-своему.
Доверенные контакты — это локальные записи аккаунта, которые избавляют вас от необходимости каждый раз вставлять длинные публичные ключи, когда вы запечатываете файл кому-то. Запись может содержать отображаемое имя, публичный ключ подписи, необязательные адреса получателя (классический и постквантовый), то, как и когда вы проверили контакт, и заметки в свободной форме.
Это не Identity Seed, но список того, с кем вы переписываетесь, может раскрыть связи и рабочие процессы. Логирование в CardanoWall устроено так, чтобы держать это в тайне: серверные действия, создающие и редактирующие контакты, записывают только идентификатор запроса и идентификатор вашего аккаунта — никогда имя контакта, ключи, заметки или метод проверки.
Чего CardanoWall не обещает?
Он не обещает невидимости.
CardanoWall — это не сеть анонимности. Блокчейн, шлюзы хранилища, платёжная система, ваш вход в аккаунт, ваш браузер и ваш сетевой путь — всё это может раскрыть метаданные. Публикация неподписанной запечатанной записи держит отправителя, получателей и открытый текст вне самой записи Label 309 — но это приватность на уровне записи, а не полная анонимность. Адрес Cardano, оплачивающий комиссию, ваш IP, каким его видят шлюзы, и подобные сигналы живут вне записи и вне этой гарантии.
Он также не делает скомпрометированное устройство безопасным. Если в вашей разблокированной сессии исполняется вредоносный код, этот код видит то же, что и вы.
И опубликованное подтверждение публично по замыслу. Оно показывает, что определённые байты существовали к определённому публичному моменту времени. Само по себе оно не доказывает, кто их создал, кто ими владеет и что их содержимое правдиво, — см. что подтверждение не доказывает об этой границе.
Если коротко
CardanoWall видит служебные данные и публичные данные подтверждений. По замыслу он не видит ваш Identity Seed в открытом виде, ваши приватные ключи, открытый текст вашего хранилища и открытый текст запечатанного файла.
Так что на практике: запечатывайте чувствительные файлы до того, как они покинут ваше устройство, держите надёжную копию своего сида, разблокируйтесь на устройствах, которым доверяете, и относитесь ко всему, что публикуете в блокчейне, как к навсегда публичному.
Хорошая приватность начинается с того, что вы точно знаете, где живёт каждый вид данных, — и CardanoWall построен так, чтобы данные, которые важнее всего, жили вместе с вами.
Что почитать дальше
CardanoWall — это эталонная реализация Label 309, открытого, независимого от поставщика стандарта Proof of Existence. Стандарт подан в процесс Cardano CIP и рассматривается редакторами CIP как предложение категории Metadata (открытый pull request). Криптографическое ядро, SDK и инструменты командной строки открыты на github.com/cardanowall, так что вы можете проверить, что именно вычисляется на вашем устройстве, а не верить нам на слово.