Мне выслали донат в размере 77 EURMTL и попросили обзор на децентрализованный мессенджер Onym. Приступаю.
На сайте onym.app разъясняется концепция мессенджера. Основная его идея в том, чтобы устранить единую точку отказа и позволить пользователю самому выбирать сервисы, которые будут отвечать за разные составляющие информационного обмена.
Предполагается, что структура продукта примерно такова.
- Авторы предлагают клиент мессенджера с открытым исходным кодом, который ставится на телефоны пользователей. Любые желающие могут написать свой клиент, и он сможет работать в рамках этого же протокола.
- Для регистрации нового пользователя не требуется ввод каких-либо данных, ключи генерируются на пользовательском телефоне и привязаны к нему. Поскольку, однако, любой желающий может написать свой клиент, ничто не мешает ему регистрировать пользователей хоть с полным прохождением KYC, если придумает, как убедить их устанавливать именно его клиент.
- Передача данных происходит через ностр-релеи. По умолчанию клиент использует единственный релей, поддерживаемый авторами проекта, однако его можно заменить собственным или любым публичным. Релей это тупой передаточный механизм: он получает зашифрованные приватным ключом данные пользователя и выставляет их в открытый доступ, откуда их могут забрать любые желающие. Релеи не обязаны долго хранить пользовательский контент, поэтому в конечном итоге все данные привязаны строго к конечному устройству, на котором установлен клиент мессенджера.
- Самая необычная часть архитектуры связана с групповыми чатами. Информация о том, кто является администратором, кто может приглашать новых участников и кто вообще входит в состав группы, записывается в смарт-контракты на блокчейне Stellar. Благодаря этому управление группами не зависит от какого-либо одного сервера. Однако конечному пользователю не нужно заботиться о деньгах на счету для записей в блокчейн, это за него делает так называемый relayer. Цена транзакций в стелларе копеечная, однако это, тем не менее, точка отказа. Злоумышленник может организовать регистрацию множества фиктивных аккаунтов, заводя новую идентичность в своём клиенте и тут же её снося. Регистрация каждой такой идентичности потребует транзакцию в блокчейне, и релееру придётся её оплачивать. Сейчас проект работает в тестовой версии блокчейна, но при переходе в мэйннет расходы станут реальными.
На сайте также есть англоязычная страница с описанием модели угроз, в рамках которой работает мессенджер, и исходя из которой следует принимать решение, насколько безопасно его использовать. Утверждается, что мессенджер не может противостоять таким очевидным угрозам, как крот в чате, компрометация устройства и физическое принуждение, таким гипотетическим угрозам, как квантовый взлом, и таким ресурсоёмким угрозам, как пристрастный стеллар-валидатор или системы наподобие российского СОРМ. Последние, впрочем, позволяют лишь приблизиться к раскрытию анонимности участников чата, но не к прочтению сообщений в нём.
Теперь немного о личных впечатлениях от работы с мессенджером Onym. Это ранняя альфа, то есть он, конечно, ужасно сырой, и на это приходится делать скидку, оценивая не столько тот функционал, что уже есть, сколько тот, который предполагается. Мессенджер позволяет создавать группы, приглашать туда произвольное количество народу и общаться в этих группах. В принципе, то же самое умеют и многие другие ностр-клиенты, поскольку такой функционал является частью протокола. Но там чаты имеют какой-то непонятный околопубличный статус, а Onym за счёт дополнительного стеллар-слоя обеспечивает закрытость чата без использования закрытых релеев. В общем-то, именно эта милая особенность и призвана стать киллер-фичей мессенджера: обычные ностр-клиенты недостаточно приватны, а приватные привязанные к устройству мессенджеры типа Briar предлагают полностью доверять клиенту мессенджера. Тут же доверие распределяется между несколькими слоями, в каждом из которых можно выбирать конкретную реализацию, в том числе свою собственную.
На сегодня мессенджер выглядит простым демонстратором концепции, и потому, в сущности, адресован айтишникам. Для обычного пользователя он выглядит немножко костями наружу, слишком уж много где ему предлагают какие-нибудь инструкции по настройке докеров и тому подобные специальные материи. Думаю, что главной задачей авторов идеи на сегодня должно быть увеличение числа контрибьюторов в гитхабе проекта и появление к нему интереса среди ностр-энтузиастов. По гитхабу видно, что проект стартовал в начале мая, потом надолго затих, а несколько недель назад с него сдули пыль и продолжили пилить. Но если бы у проекта образовалось хотя бы небольшое ядро пользователей, которые бы регулярно слали свои issues, то у авторов исходной идеи стало бы явно больше мотивации работать пободрее.
Мои рекомендации авторам мессенджера, в порядке убывания срочности:
- Доработать минимальный функционал, позволяющий пользоваться мессенджером: администрирование групп (удаление пользователей/сообщений), пуш-уведомления, демонстрация статусов пользователя, хотя бы простое онлайн/офлайн. Обязательно доделать заявленную, но пока не реализованную возможность экспорта-импорта аккаунта.
- Приучать пользователей к распределённой архитектуре. Клиенту стоило бы предлагать список независимых релеев и Blossom-серверов с мониторингом их статуса. По мере появления альтернативных релееров и реализаций смарт-контрактов для управления группами аналогичный выбор должен появиться и для них. Без предложения сторонних сервисов неподготовленный пользователь будет ограничиваться настройками по умолчанию, и это создаст единую точку отказа.
- Подумать над десктоп-приложением и возможностью одновременного запуска мессенджера с нескольких устройств. Привязка всей идентичности к устройству, а не к ключу, просто не позволит мессенджеру приобрести хоть какую-то массовость.
- Внедрить аудио и видеозвонки, такой функционал протокол ностр уже позволяет обеспечивать.
- Внедрить функционал каналов, в том числе с функцией стриминга, что также можно реализовать через протокол ностр, а подключение смарт-контрактов на стелларе позволит при этом не светить себя в списке подписчиков канала.
У проекта есть ещё один сайт, opym.foundation, где описывается фонд, который должен будет рулить инфраструктурой. Сайт фонда рассказывает о том, зачем фонду нужны деньги, и как он будет управляться. Рассказ про деньги лишён расчётов, и это сильно портит впечатление потенциальных инвесторов. К тому же идея управляющего органа несколько противоречит задумке, согласно которой каждый пользователь должен легко запускать собственный сервис для обслуживания того или аспекта обмена сообщениями. Мне кажется, что идея с фондом не должна взлететь, даже если сама концепция ностр-мессенджера со стеллар-контрактами будет тепло принята публикой. Поэтому я не планирую детально разбирать предложения по управлению фондом, однако не согласные со мной легко могут сами разобраться с ними на сайте фонда.
В целом идея видится мне мощной, но для того, чтобы она завоевала рынок, потребуется очень много усилий.
