Вопросы
Сложные вопросы,
ответы настолько честные, насколько у нас получается.
Если вы пришли искать, от чего мы уворачиваемся — это страница, где мы не уворачиваемся. Модель угроз — канонический источник на случай любого расхождения.
Главные вопросы
Постойте — вы говорите «никакой компании в цепочке», но релеер — это сервер. Так как же?
Релеер — это сервер. Раньше мы говорили «никакого сервера, которому надо доверять»; от этой формулировки мы отошли. Честное утверждение у́же: никакого оператора с правом вас отключить — вашему аккаунту, разговорам или правилам вашей группы.
Идентичность — на вашем устройстве, поэтому никакого «аккаунта Onym», который можно заблокировать, нет. Правила группы — публичный Soroban-контракт в Stellar, а не база, которую может править оператор. Для каждого внутригруппового действия — принять, исключить, проголосовать, поменять роль — релеер является единственной стороной, подписывающей on-chain транзакцию: он оборачивает ваше ZK-доказательство в Stellar-транзакцию, подписывает её и платит комиссию. Вы не подписываете ничего — именно это удерживает внутригрупповые действия от привязки к стабильной on-chain идентичности. Единственное исключение — create_group при создании группы, где основатель подписывает Soroban-auth запись; это намеренный, единичный момент, когда подпись, привязанная к пользователю, касается блокчейна. Если релеер отказывает вам — смените на другой или поднимите свой. Подробности по сторонам — на странице модели угроз.
Если «метаданные не покидают устройство», как тогда что-то попадает в блокчейн?
Они не «никогда не покидают». Часть метаданных по построению публична.
Что остаётся локальным: идентичность (BIP-39 фраза), приватные ключи, ваши контакты, ваша история сообщений. Что идёт в блокчейн: групповые операции — принять, исключить, голосования — отправляются с ZK-доказательством, которое не раскрывает, какой именно участник действовал, но раскрывает, что действие случилось, когда и в какой группе. Что видит релеер: шифротекст, размер сообщения, тайминг, ваш IP.
Если в вашей модели угроз есть глобальный пассивный наблюдатель, делающий корреляцию по таймингам по всему интернету — одного Onym недостаточно. Модель угроз говорит об этом прямо.
Так что же на самом деле видит релеер?
Зашифрованные блобы, тайминг и частоту ваших запросов к релееру, ваш IP (если вы не приносите свою сеть для приватности), и адрес Soroban-контракта, на который идёт транзакция. Он не видит плейнтекст сообщения, какой именно участник группы отправил данное сообщение и вашу фразу восстановления.
Если вы всегда ходите через один и тот же релеер с одного и того же IP — этот релеер со временем построит ваш профиль использования. Если вы ротируете релееры или поднимаете свой — не построит.
А разве публичный реестр Stellar и так не сливает всё?
Сливает больше, чем многие ожидают, и меньше, чем подсказывает наивная интуиция.
On-chain наблюдатель видит, что группа X существует, примерно сколько в ней участников, как часто она активна и когда происходят события управления. Он не может прочитать содержимое сообщений (его в блокчейне нет), не может сказать, какой участник группы инициировал действие, когда используются ZK-доказательства, и не может связать on-chain идентичность с реальным человеком только из блокчейна.
Сложите блокчейн с логами релеера — и терпеливый противник может запустить атаки пересечения. Мы честно об этом пишем в модели угроз.
Идентичность, восстановление и группы
Что будет, если я потеряю телефон?
Ваши двенадцать слов BIP-39 восстановят идентичность, контакты и ключевой материал на новом устройстве. Если вы их не записали — никто (ни мейнтейнер, ни сервис восстановления, ни Apple, ни Google) их вам не вернёт. Это так задумано.
История группы, которая жила только на старом устройстве, может быть невосстановима. Состояние группы, живущее в блокчейне (правила, текущий состав), восстанавливается вместе с идентичностью.
Не превращается ли анонимность отправителя внутри группы в театр безопасности для группы из трёх?
Честно: в группе из трёх анонимность отправителя ограничена размером группы. ZK-доказательства подтверждают «отправил кто-то из участников», не уточняя кто; в крошечной группе пространство поиска крошечное.
Защита становится осмысленной по мере роста группы. В маленькой группе близких друзей вы должны исходить из того, что участники могут угадать, кто что сказал, по стилю и таймингу. В большой рабочей или публичной группе криптографическая анонимность имеет значение.
Может ли недобросовестный участник группы навредить?
Он может читать всё, что отправлено в группу, пока он её участник. Он может сделать скриншот. Может слить. Может прощупывать анонимность отправителя внутри группы. Ничто из этого не решается никакой криптосистемой.
Чего он не может: выдать себя за другого участника, превысить роль, выданную контрактом управления, или переписать историю группы за рамки того, что разрешает управление.
Доверие, управление и мейнтейнер
Кто делает Onym?
Сегодня — один мейнтейнер, работающий в открытую над MIT-кодом. Никакого Фонда, никакого раунда A, никакого совета консультантов нет. Имя мейнтейнера и его аккаунт видны на GitHub на каждом коммите; сайт просто не выводит их на баннер. Страница «О проекте» об этом честно говорит.
Если Фонд будет образован позже, об этом объявят — с юрисдикцией, регистрацией и реальным уставом. До тех пор: соло, MIT, в открытую.
Почему имя мейнтейнера не на сайте?
Оно есть — просто не вынесено на баннер. Каждый коммит в каждом репозитории Onym подписан аккаунтом мейнтейнера на GitHub; имя находится за 30 секунд. Сайт не выводит его на баннер потому, что проект не должен быть про человека — доверие, которое вы оказываете, должно держаться на коде, а не на имени. Это не псевдоанонимность из принципа.
Каждый слой — на GitHub. Каждый примитив — стандартный. Модель угроз опубликована. Если что-то из этого перестанет быть правдой — форкните код и продолжайте без нас.
А если придёт судебный запрос?
Мейнтейнер не может выдать то, чего у него нет. Никакой централизованной БД аккаунтов, контролируемой Onym, нет; нет хранилища сообщений; нет восстанавливаемого социального графа, лежащего в одном месте. Оператора релеера могут принудить начать вести логи метаданных соединения с этого момента — одна из причин, почему транспорт сменный, и почему стоит держать свой релеер, когда это важно.
Правила группы в Stellar неизменяемы. Никакой судебный процесс не заставит Soroban-контракт вести себя иначе, чем сказано в его исходниках.
А если мейнтейнер исчезнет, продастся или будет принуждён?
Это реальный риск любого проекта, включая Onym. Митигации: каждый слой под лицензией MIT, каждый слой на GitHub, криптографические примитивы не оригинальны, протокол задокументирован. Любой, кто умеет читать код, может форкнуть его в тот день, когда эта страница перестанет быть правдой.
On-chain Soroban-контракты неизменяемы; существующие группы продолжают работать вне зависимости от того, кто контролирует onym.app.
Криптография и инженерия
Почему Stellar? Почему не Bitcoin, Ethereum, Solana или приватный реестр?
Stellar/Soroban даёт нам дешёвые, быстрые, детерминированные смарт-контракты с моделью «релеер платит», в которой пользователи могут совершать транзакции без пополненного счёта. Ethereum дороже и хуже ложится на эту модель. У Bitcoin не та контрактная поверхность. Solana быстра, но модель развёртывания иная. Приватный реестр вернул бы одного оператора в путь доверия.
Выбор обратим. Если соотношение компромиссов поменяется — мы об этом скажем.
Вы постквантовые?
Нет. Примитивы в проде сегодня — BLS12-381, secp256k1, Ed25519, X25519 — доквантовые. Будущий криптографически релевантный квантовый компьютер их сломает. Миграция на постквантовые примитивы — в плане; в проде её нет.
Если в вашей модели угроз есть противник уровня государства, действующий по схеме «записать сейчас, расшифровать потом» — учтите это.
Должен ли я доверять вашей сборке приложения?
Какой-то сборке где-то доверять придётся. Митигация, которую мы предлагаем — воспроизводимые сборки: каждый слой open source, исходники соответствуют бинарнику, и вы можете собрать приложения и релеер сами, если не доверяете опубликованным бинарникам.
Воспроизводимые сборки в Apple App Store — открытая проблема, общая для каждого iOS-приложения. Мы будем публиковать статус воспроизводимости с каждым релизом по мере того, как инструментарий созреет.
Есть аудит?
Пока нет. Криптографические примитивы имеют десятилетия публичной проверки. Логика контрактов и интеграционный код — нет, и будут проходить аудит, когда проект сможет его профинансировать. Статус аудита будет публиковаться в changelog при изменениях.
Практика
Как попробовать?
Альфа-сборки для iOS и Android доступны через QA Dashboard. Архитектура, контракты и SDK — на GitHub.
Как связаться с человеком?
Для переписки, в том числе журналистов и исследователей безопасности, пишите на lead@onym.app. Обычно отвечаем в течение рабочего дня.
Я нашёл баг или проблему безопасности. Что делать?
Напишите на lead@onym.app со словом «security» в теме. Раскрытия, улучшающие модель угроз — самые полезные раскрытия, которые бывают.
Если вашего вопроса здесь нет — он должен быть. Пришлите его на lead@onym.app, и мы добавим.