Приватность

Открытый код и доверие: почему у нас его пока нет

Репозиторий Persona закрыт, файла лицензии в нём нет, и аргумент «прочитайте код» нам недоступен. Разбираем, что открытый код на самом деле даёт, чего он не даёт, и какие четыре проверки закрытого продукта остаются читателю.

Начнём с факта, который дальше не смягчается. Репозиторий Persona закрыт. Файла лицензии в нём нет — в метаданных пакета строка лицензии указана, но текста самой лицензии в репозитории не существует, а значит юридически он не выпущен ни под какими условиями. Прочитать наш код и проверить, что мы говорим правду, вы не можете. Аргументом «вот исходники, убедитесь сами» мы не пользуемся, и любой текст, где мы бы им воспользовались, был бы ложью о продукте.

Из этого не следует, что проверить нас нечем. Но следует, что проверять придётся снаружи, а не изнутри, — и что по критерию аудируемости мы проигрываем любому проекту со свободной лицензией, включая заброшенный.

#Короткий ответ

Открытый код даёт две вещи: возможность прочитать, что программа делает, и право продолжить проект без её автора. Обе ценные, и вторая невосполнима ничем.

Открытый код не даёт трёх вещей, которые ему регулярно приписывают: гарантии, что запущена именно опубликованная версия; гарантии, что кто-то этот код действительно прочитал; и гарантии, что данные останутся у вас — за последнее отвечает архитектура, а не лицензия.

Закрытый продукт, работающий только на вашей машине, отправит наружу меньше, чем открытый клиент чужого облака. Это не оправдание закрытости, а разделение двух разных вопросов, которые в спорах постоянно сливают в один.

#Таблица: что даёт открытый код и чем это заменить

Смотреть надо на правую колонку. Там, где в ней стоит «нечем», лежит настоящая цена закрытости.

Что вы хотите узнать Даёт ли открытый код Чем заменить при закрытом
Что программа делает с данными Да, чтением кода Сетевой монитор и просмотр файла базы
Что делает ваша сборка Нет: нужна воспроизводимая сборка Тот же сетевой монитор — он проверяет факт, а не намерение
Куда уходят соединения Косвенно Прямо: список исходящих соединений
Есть ли скрытая отправка Не гарантирует: код никто целиком не читает Наблюдение за трафиком в течение времени
Останутся ли данные у вас Нет: это свойство архитектуры Локальное развёртывание и проверка отключением сети
Можно ли продолжить проект без автора Да, право форка Нечем. Это невосполнимо
Не изменятся ли условия завтра Нет: лицензию меняет владелец Нечем; смотреть на архитектуру, а не на обещания

Из таблицы видно две вещи сразу. Первая: большинство практических вопросов про приватность проверяются снаружи не хуже, чем чтением кода, — потому что код показывает намерение, а монитор показывает факт. Вторая: строка про форк действительно закрывается только открытой лицензией, и здесь мы проигрываем без оговорок. Если проект остановится, у вас останутся ваши данные и работающая копия, но не возможность его продолжить.

#Чего открытый код не даёт, вопреки ожиданиям

Никто не читает весь код. Аудируемость — это возможность, а не событие. У популярных открытых проектов бывали годами не замеченные уязвимости именно потому, что «много глаз» — свойство статистическое, а не гарантированное.

Опубликованный код и запущенный бинарник — не одно и то же. Без воспроизводимой сборки вы не докажете, что скачанный установщик собран из того, что лежит в репозитории. Для веб-сервиса это ещё жёстче: код на сервере вы не видите вообще, чей бы он ни был.

Лицензия не константа. Владелец меняет условия для новых версий, и в 2026 году это произошло с одним из заметных проектов захвата экрана: код остался читаемым, а право строить на нём коммерческое — исчезло. Разбор этого случая — в сравнении с открытыми аналогами захвата экрана.

Открытость не равна приватности. Открытый клиент, отправляющий всё в чужое облако, приватным вас не делает. Почему гарантией может быть только архитектура — в статье про приватность против поглощения.

«Открытая модель» — вообще отдельный разговор. Скачать веса и иметь право на результат — разные вещи; часть популярных линеек ограничивает коммерческое использование и дообучение. Разбор — в статье про разницу между открытыми весами и свободной лицензией.

#Четыре проверки, доступные вам при закрытом продукте

Это то, что мы можем предложить вместо чтения кода. Все четыре проводятся без нашего участия и не требуют верить нам на слово.

#Проверка первая: куда уходят соединения

Снимите список исходящих соединений на холостом ходу, после одного запроса и за час работы. Разница между замерами показывает получателей, а час наблюдения ловит периодические отправки. Отдельно — тест отключением сети: если при выключенном интернете ассистент с локальной моделью отвечает, обрабатывать запрос было негде, кроме вашей машины. Команды для всех трёх систем и порядок работы с перехватывающим прокси — в гайде про самостоятельную проверку исходящих соединений.

#Проверка вторая: что лежит в файле базы

Самая недооценённая. База ассистента — это обычный файл SQLite, и открыть его может любой просмотрщик. Вы увидите своими глазами, что там хранится: тексты чатов, извлечённые факты, распознанный с экрана текст. И заодно проверите неприятное — например, что ключи API лежат там в открытом виде, как мы и пишем.

Эта проверка сильна тем, что не требует доверия вообще: утверждения о хранении либо подтверждаются содержимым файла, либо нет.

#Проверка третья: что происходит до согласия

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

#Проверка четвёртая: исполнимость ваших прав

Выгрузите свои данные, посмотрите, что в файле, удалите аккаунт и проверьте результат поиском. Обещание «мы всё удалим» проверяется тем, находится ли содержимое после удаления, а не формулировкой в политике.

#Что здесь честно про нас

Сведём в одном месте, без смягчения.

Репозиторий закрыт, файла лицензии нет. По аудируемости и по праву форка мы проигрываем любому проекту со свободной лицензией. Дату открытия обещать не буду: обещание в блоге ничего не стоит, пока в репозитории нет файла лицензии.

На размещённой версии стоит счётчик с записью поведения. Загружается после согласия, в кабинете участника не отдаётся, на публичных страницах после «Принять» пишет клики и навигацию. При развёртывании у себя счётчика нет.

Публичные страницы подключают внешние шрифты до согласия. Найдено нашей же методикой проверки; сторонний сервер видит IP-адрес посетителя. В самостоятельной сборке эти ссылки остаются.

Ключи API и токены участников хранятся в базе в открытом виде. Проверяется проверкой номер два.

Администратор экземпляра имеет полный доступ к базе, включая переписку участников.

Разграничение между участниками — это список разрешённых путей плюс пользовательские настройки на кодовой базе, начинавшейся однопользовательской, а не усиленная мульти-тенантная граница.

Захват экрана и звука доступен только владельцу экземпляра. Мульти-тенантного захвата нет.

Полный список пунктов, где мы объективно уступаем конкурентам, собран отдельно — в разборе где Persona проигрывает.

#Где интуиция подводит

«Закрытый код — значит есть что скрывать». Иногда да, но чаще это решение о бизнес-модели. Судить надо по проверяемому поведению, а не по статусу репозитория: продукт, чьи утверждения подтверждаются вашим сетевым монитором, честнее продукта с открытым кодом и расхождением между кодом и работающим сервисом.

«Открытый код — значит проверено». Проверено ровно настолько, насколько кто-то потрудился проверить. Возможность и факт — разные вещи.

«Раз нельзя прочитать код, проверить нечем». Четыре проверки выше не требуют ни строки исходников. Они показывают факт, а не намерение, — и в вопросе приватности факт важнее.

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

#Частые вопросы

#Почему вы не откроете код, если это такой сильный аргумент?

Сегодня репозиторий закрыт, и это решение не про приватность, а про продукт. Обещать дату открытия я не буду: пока в репозитории нет файла лицензии, любое такое обещание — просто текст в блоге. Пока это так, мы не используем аргумент про открытость и не претендуем на связанное с ним доверие.

#Значит ли строка лицензии в конфигурации, что код открыт?

Нет. Строка в метаданных пакета — это заявление о намерении, а не публикация условий: без текста лицензии в репозитории у вас нет ни права читать, ни права форкать, ни права распространять. Судить надо по наличию файла, а не по бейджу или строке в настройках сборки.

#Что надёжнее — закрытый локальный продукт или открытый облачный?

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

#Можно ли доверять продукту, который сам публикует свои недостатки?

Публикация недостатков — не доказательство добросовестности, а способ сделать утверждения проверяемыми: названный факт можно опровергнуть, умолчание — нет. Проверяйте не то, что мы пишем о себе, а то, совпадает ли это с результатом ваших замеров.

#Какая проверка даёт больше всего за наименьшее время?

Открыть файл базы просмотрщиком SQLite. Пять минут, никаких инструментов сверх бесплатного просмотрщика, и вы своими глазами видите, что и в каком виде хранится. Вторая по эффективности — тест отключением сети.

#Что делать, если проект закроется, а код так и не откроют?

Ваша копия и ваши данные останутся при вас: развёрнутый экземпляр не выключается со стороны. Обновлений не будет, форкнуть проект вы не сможете — это прямая обратная сторона закрытого репозитория, и мы её не смягчаем. Общая рамка того, как выбирать по архитектуре, — в статье про приватный ИИ и локальное хранение.

#Вывод

Если для вас критична возможность прочитать код и продолжить проект без его автора — берите продукт со свободной лицензией и проверьте текст этой лицензии на сегодняшнюю дату. Мы этому критерию не соответствуем и не делаем вид, что соответствуем. Если же вам нужно знать, что программа делает с вашими данными, — четыре внешние проверки дают ответ надёжнее, чем чтение кода, которого никто не читает: монитор показывает, что произошло, а исходники показывают, что задумывалось.

Хотите ИИ, который помнит вас?

Persona держит контекст между чатами и работает на вашем железе — если развернуть её у себя и подключить локальную модель.

Создать аккаунт