Интернет создавался прежде всего как свободная система обмена информацией между людьми, но сейчас он сильно зарегулирован, и перестал быть таким свободным, каким он был в начале. Я не хочу обсуждать надо или не надо регулировать обмен информацией между людьми, но лично меня не устраивает такое обилие регуляторов и генерируемый ими поток запретов и блокировок информации.

На данный момент определенная часть интернет ресурсов позиционирует себя относительно свободными и независимыми, но так ли это на самом деле? Веб сайты уже давно зацензурированы и зарегулированы, а иногда и заблокированы по самое не могу. Относительно свободными остаются некоторые мессенджеры и файлообменные сети, но и они вынуждены подчиняться регуляторам.

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

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

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

Хранить посты сообщества и комментарии к ним можно самым банальным способом - в виде локальной папки с каталогом файлов веб-страниц и медиа, которые можно просматривать любым браузером. Это по сути будет локальный веб-сайт, с определенными правилами по иерархии и форматированию страниц. Файлы страниц и медиафайлы будут изменяться и добавляться в папку с помощью специальной программы, назовем её - СП. СП может как принимать обновления так и отправлять свои посты и комментарии другим членам сообщества.

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

Организация сообщества начинается с публикации в любом из популярных блокчейнов названия сообщества, его ЭЦП и начального списка email-адресов почтовых ящиков, указания выбранного алгоритма шифрования. В дальнейшем в этом блокчейне или в другом месте можно публиковать обновления этого списка адресов, подписанного ЭЦП. ЭЦП также является ключом или может содержать открытый ключ сообщества (это зависит от выбранного алгоритма шифрования). Также публикуется и периодически обновляется открытый протокол обмена сообщениями в сообществе (ОПОС) тоже подписанный ЭЦП для того, чтобы каждый мог при желании написать свою версию СП.

Список почтовых ящиков периодически обходится ботом, который извлекает из них сообщения (письма) и определяет есть ли среди них сообщения, соответствующие ОПОС и обрабатывает их. После чего все эти сообщения и спам удаляются ботом из ящика. По сути этот бот работает по тому же принципу, что и боты в Телеграме или других мессенджерах. Но для его запуска не требуется определенный сервер в интернете, запустить его можно хоть на своем ноутбуке или даже телефоне. Можно использовать несколько экземпляров этого бота, работающих на разных устройствах, но с общей БД.

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

Для того чтобы стать членом конкретного сообщества надо в настройках СП указать список email адресов и ЭЦП сообщества, список своих email адресов, после чего на любой из его адресов отправить из СП email, зашифрованный открытым ключом из ЭЦП. Формат этого сообщения подробно будет описан в ОПОС. Сообщение будет содержать команду бота для регистрации нового члена сообщества, его имя, открытый ключ шифрования, и список своих email адресов.

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

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

Комментарии (23)


  1. eimrine
    09.05.2024 03:25
    +1

    перейти к принципу размещения всей информации на клиенте, которая приходит порциями с неопределенных серверов.

    Это же Bittorrent, на котором держатся все криптовалюты и божественный Рутрекер. С учётом того что вы хотите запилить сообщество - вам бы изучить протоколы Federation, ActivityPub и подобные. Вдруг там уже есть большинство той логики которую вы только хотите разработать.

    Сходу вижу проблему как в IRQ: пользователям будет нужен отдельный компьютер чтобы не доставлять неудобств другим пользователям своими дисконнектами. Про флешки забудьте - слишком просто нечаянно записать туда слишком много данных что может повредить ФС. Если вам нужно не просто хранить данные, а ещё и раздавать 24/7 то нужен NAS или хотя бы старый ноутбук с большим количеством дисковых устройств. Если данные не будут в режиме "только чтение" то желательно иметь много HDD.

    Но важен ли протокол? Лично я активно сидел в ирке на Freenet-овских серверах до самого его закрытия и регулярно чатился на очень политически/социально заряженные темы такие что ни один сервис из Кремниевой долины а-ля Дискорд (переполненный SJW-модераторами на зарплате и требующий подтверждения номера телефона) не разрешил бы мне это делать дольше одного дня. То есть, нужен по сути только абузоустойчивый сервер, а протокол может быть хоть plain text.


    1. AlexTest Автор
      09.05.2024 03:25

      Это точно не Bittorrent - тут присутствует централизация в виде бота.


      Тут не требуется постоянное соединение с сетью. Как для бота так и для клиента достаточно периодического сеансового соединения для приема/отправки почты.

      Прием и запись обновлений на флешку производит специальная программа, она контролирует версии обновлений и все остальное связанное с целостью и объемом данных - ФС точно не пострадает.


  1. qrdl
    09.05.2024 03:25

    Интернет создавался прежде всего как свободная система обмена информацией между людьми

    У меня для вас плохие новости...


    1. AlexTest Автор
      09.05.2024 03:25

      ARPANET - оборонный проект, а Интернет и Web, построенные на его основе - уже нет.


  1. MountainGoat
    09.05.2024 03:25

    Чем бы дитя не тешилось, лишь бы блокчейн присобачило.

    Описанная вами задача была решена в 80-х годах. На одних email-ах. Без блокчейна.

    Списки рассылок с подписями. Для больших файлов добавить magnet ссылки. И никаких "ключей сообщества" - с ними приходят администраторы с истериками и утечки. Только P-2-P шифрование. Каждый участник имеет публичный ключ каждого, и да, это накладно, но современному железу пофиг.

    Со спамом что делать только? Заходим в сообщество с благонадёжным рылом, получаем все email и начинаем с другого ящика слать по ним мусор.


    1. AlexTest Автор
      09.05.2024 03:25

      Блокчейн используется только один раз для того чтобы опубликовать ЭЦП сообщества, чтобы никто не мог в последствии присылать обновления от имени "поддельного" сообщества. Для этого можно использовать например публикацию надписи в блокчейне BTC или текста в блокчейне ETH.


    1. AlexTest Автор
      09.05.2024 03:25

      Адреса ящиков клиентов знает только бот - их спамить не получится. Спамить можно только ящики сообщества, которые работают на прием сообщений для бота. Для этих ящиков будут использоваться почтовики, которые умеют эффективно распознавать и блокировать рассылку спама, тот же Gmail например.


  1. freecoder_xx
    09.05.2024 03:25
    +1

    У меня похожие идеи вылились в разработку приложения Laplace - платформы для запуска локально-ориентированных веб-приложений: https://github.com/noogen-projects/laplace


  1. ildarin
    09.05.2024 03:25

    Email как протокол мне кажется каким-то и усложнением, и нарушением принципа самой идеи. Еще и с "общей БД". Остается тот же "главный сервер", на котором хранится информация. Что меняется? То, что часть информации - распределенная?

    С хранением части информации на отдельном клиенте - тоже проблема. Ибо если информация, например "010001111", а второй бит хранился у Васи, который спать лег и выключил комп - вся информация целиком больше недоступна. Тут нужны рейд массивы и технологии, которые реализованны в хранилищах-монетах, вроде filecoin. Можно в теории даже интегрировать их со своей системой. Ибо ключевой проблемой остается именно доступность информации и отказоустойчивость.

    А протоколы взаимодействия - это вообще не проблема, сотни уже решений есть. Однако, центральная точка входа все равно остается, даже в тор есть ноды гейты. Хотя это уже распределенная система "списка контактов", но тем не менее. Вообще, думал как сделать распределенную систему на webrtc, но точки связи p2p клиентов все равно нужны. А так - хоть в браузере хранить часть данных, без клиентов и емейлов.

    А так - есть же signal, мессенджер, в котором p2p сообщества можно создавать, разве нет? Просто мухи липнут туда, где уже и так прилипли мухи - поэтому и считают телегу защищенной. А так - я думаю, решений уже много существует, но интересно будет посмотреть - что получится у Вас.


    1. ildarin
      09.05.2024 03:25

      Вообще, есть еще идея превращать сервера, вроде vk - в помойки информации. Например, загружать фотографии, в которых закодированна информация. Без ключа ее прочитать невозможно. Т.е. для стороннего пользователя - это бесполезный мусор, но для получателя сообщения, который знает ключи - это хранилище. Но это так, к слову.


    1. AlexTest Автор
      09.05.2024 03:25

      С хранением части информации на отдельном клиенте — тоже проблема.

      Вы не поняли сути идеи. Вы когда нибудь работали с системой контроля версий? На клиенте хранится ВСЯ копия каталога файлов (репозитория), по почте вы получаете только обновления для модификации папки с файлами до текущей версии.


      1. ildarin
        09.05.2024 03:25

        Ну ок, прикольно. Но подходит только для небольших сервисов. Новый клиент, допустим - уже старой информации не получит? А если часть информации клиент потеряет? Допустим, ключевую его часть, после которой дифы станут вообще бесполезны?


        1. AlexTest Автор
          09.05.2024 03:25

          Новый клиент, допустим - уже старой информации не получит? А если часть информации клиент потеряет?

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


          1. ildarin
            09.05.2024 03:25
            +1

            Да, бл*ть, у меня акк на гитхабе с десятком публичных реп и пара бл*ть статей с открытыми исходниками со ссылками туда, но с скв я не работал, ага. Ху*ню не надо пороть, плз. Сука, просто бесит переход на личности ни к селу ни к х*ю. Ну вот нах*я это?

            Про этот механизм у вас нигде не написано, при чем тут скв? Скв бывают разные, и тот же svn и git работают различно, где svn - централизирован. Вы просто описываете блокчейн и все, этим можно полностью описать механизм, а не скв притягивать за уши. Ибо тот же (морально устаревший) btc так и работает, с полной копией всей истории.

            Ладно, не важно. Удачи с затеей.


            1. AlexTest Автор
              09.05.2024 03:25

              Я вам в первом же ответе написал про аналогию с СКВ, после чего вы все равно спрашиваете о том, что новый клиент не получит старой информации или потеряет часть информации. Если вы пользуетесь гитом, то должны знать как такие проблемы решаются в гите - зачем тогда вообще задавать такие вопросы?


    1. AlexTest Автор
      09.05.2024 03:25

      Однако, центральная точка входа все равно остается

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


      1. ildarin
        09.05.2024 03:25

        Бот и есть точка входа, а хранение моего почтового адреса - еще большее нарушение анонимности, чем тор-гейты.


        1. AlexTest Автор
          09.05.2024 03:25

          Бот и есть точка входа

          Вы можете описать в чем именно вы видите проблему такой "точки входа" ?

          хранение моего почтового адреса - еще большее нарушение анонимности

          Как именно нарушается ваша анонимность если бот знает ваш email? У вас единственный emal на все случаи жизни, который вам выдали после предъявления паспортных данных?


          1. ildarin
            09.05.2024 03:25

            Проблема "точки" в том, что это уязвимость. С точки зрения ИБ. Только и всего.

            Как именно нарушается ваша анонимность если бот знает ваш email?

            Даже по законам РФ это персоналка. Это не просто персоналка, да еще и регулируемая в правовом поле персоналка.

            https://www.spamtitan.com/gdpr-email-requirements/#:~:text=GDPR Email Requirements%3A Lawful Basis for Processing,-This area of&text=From the introduction of GDPR,they are sending the email.

            https://www.eseur.ru/ulianovsk/Konsultaciya_26._Yavlyautsya_li_nomer_telefona_i_adres_elektronnoy_pochti_personalnimi_dannimi/#:~:text=Являются ли номер телефона и адрес электронной почты персональными данными%3F,-Пресс-служба Профсоюза&text=Номер телефона и адрес электронной,что позволит идентифицировать конкретного человека.

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


            1. AlexTest Автор
              09.05.2024 03:25

              Проблема "точки" в том, что это уязвимость. С точки зрения ИБ. Только и всего.

              Без конкретики - это просто пустые слова. Только и всего.

              Даже по законам РФ это персоналка. 

              Нет, даже по ссылке, которую вы дали - написано:

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

              Когда вы регистрируете (создаете) email в большинстве бесплатных почтовиков - от вас не требуют идентификации физического лица. Следовательно такой ящик может использоваться кем угодно, любым физлицом, юрлицом, группой людей, организацией, программой или даже животным и его адрес не является персональными данными.

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


              1. ildarin
                09.05.2024 03:25

                Тот же мейл и яд вовсю сохраняют и ип, и геолокацию, и touchprint, и просят ФИО и т.д. Да пофиг, не вижу больше смысла что-то объяснять или обсуждать.


                1. AlexTest Автор
                  09.05.2024 03:25
                  +1

                  Что конкретно вам непонятно в рекомендации:

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

                  ?

                  Вас кто-то заставляет пользоваться почтовиками, которые требуют ФИО, геолокацию и т.п. для регистрации и работы?


                1. ildarin
                  09.05.2024 03:25

                  *fingerprint