Site blog

Anyone in the world

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

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

Речь идёт о системах поиска информации в глобальной Сети. Я здесь умышленно не использую термина «интернет», подразумевая под термином "Сеть" весь программно-технический комплекс хранения и передачи данных, в том числе и все оверлейные сети, и сеть IPFS в том числе. То есть далее подразумеваем не только «белый» сегмент Сети, но и все ресурсы, которые в той или иной форме хранятся и используются в рамках сетевого сообщества.

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

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

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

Каталожные системы существуют и сейчас, но только узкоспециализированные, охватывающие ограниченное количество ресурсов.

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

Все это привело к тому, что многочисленные поисковые системы "схлопнулись", осталось всего несколько реально работающих гигантов. Например, в России по факту используются только поисковики Яндекса и Google. В англоязычном сегменте ситуация выглядит повеселее, количество поисковиков превышает десяток, но вот некоторые языки вообще представлены одним лишь Гуглом.

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

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

Вспомним здесь историю о том, как Мартин Лютер  31 октября 1517 обнародовал знаменитые "95 тезисов", приведшие к Реформации в Европе. Он, после того, как оформил свой текст на пергаменте, просто пошёл и прибил лист с тезисами к дверям замковой церкви в городе Виттенберге. Вообще-то эти ворота как раз и служили местом, на котором размещались важные для города документы, новости, иные сообщения. И все отлично понимали, что, если на воротах появился какой-то текст, то этот текст является чем-то важным, чем-то значительный - ведь другие там просто не размещались. В некотором смысле ворота церкви являлись каким-то аналогом то ли каталога, то ли поисковой системы для города Витенберга. Ну и модерация, естественно, в этом каталоге присутствовала - абы какой текст не провисел бы там долго.
Как известно, сведения о размещении тезисов Мартина Лютера распространились очень быстро, а их краткое изложение получила самое широкое хождение буквально в течение нескольких дней, причём практически по всей территории Германии – для того времени просто молниеносно.

Представим теперь, что Мартин Лютер решил бы обнародовать свои тезисы сейчас, в наше время, когда есть интернет. Он, естественно, создал бы небольшой сайт или даже одностраничник с текстом тезисов и выложил его на хостинг. Затем зарегистрировал свой сайт в поисковых системах и некоторое время ушло бы на обработку запроса поисковым роботом и включение материалов в поисковый индекс. Можно было бы ускорить этот процесс, разместив текст на каком-то популярном тематическом ресурсе, но возможно, что он не смог бы пройти модерацию. Но в любом случае, несколько дней пришлось бы подождать.

А теперь вопрос - насколько легко было бы найти текст "95 тезисов" в современном интернете для сайта, который был бы недавно специально под эти тезисы создан. Боюсь, что ничего хорошего из поиска этого не получилось бы. Во-первых, поиск по ключевым словам и фразам, которые содержали бы какие-то явные указания на негативное отношение к святой католической церкви, скорее всего, был бы заблокирован поисковой системой. Более того, могла бы быть заблокирована и вся страничка в целом, как содержащая нечто экстремистское, да ещё и с призывами... Статья 282 УК РФ в чистом виде.

В любом случае, Виттенбергский Роскомнадзор быстро бы отреагировал на такой ресурс. Особенно, если бы он, паче чаяния, достиг популярности. Пришлось бы Лютеру поднимать Tor и собственный сервер. А такие ресурсы в Виттенбергский Гугл уже не попадают, это уже не «белый» сегмент Виттенбергской информационной Сети. И оказались бы тезисы Лютера доступны только "маргиналам" и гикам, да тем, кому он отправил бы их письмом.

Но, по-видимому, до этого дело не дошло бы. Действительно, если по каким-то «экстремистским» поисковым запросам (блокируемым поисковыми системами) поиск у нас не проходит, то остается рассчитывать, что пользователи смогут найти материалы по каким-то стандартным поисковым фразам – например - что-нибудь про католическую церковь, оптимизацию работы патриархата и оценку социального значения индульгенций... Но не тут-то было - по всем этим типовым запросам поисковой системой будут выданных сотни и тысячи других материалах с более высоким поисковым рейтингом. И окажутся "95 тезисов" где-нибудь на 10.000 месте в поисковой выдаче. Как следствие, никто в здравом уме никогда через поисковик до них и не доберётся. И не случится никакой Реформации!

Да, конечно, с точки зрения современного СЕО Лютеру же надо сначала сделать сайт, раскрутить его, нанять хороших монахов, тьфу специалистов-сеошников, интересный контент сделать, чтобы привлечь трафик. Вообще, хорошо бы было какую-нибудь динамичную онлайн-игру ко всему этому прикрутить, сообщество собрать, выпустить и раскрутить игровые токены на бирже. А потом, когда Яндекс.ИКС станет как у ВКонтакте - вот тогда на главную страницу и разместить скан пергамента с тезисами - резонанс точно будет. А когда Виттенбергский суд заблокирует сайт через два дня, возмущенные геймеры М.Лютера из-под земли достанут и в Рим на суд отвезут!
Ну, хорошо, случай "95 тезисов" Лютера действительно экстремальный, у этой публикации были слишком большие социальные последствия. Но даже и для совершенной рутинных коммерческих проектов их продвижение «с нуля»  исключительно через поисковые системы в настоящее время является весьма проблематичным. Более того, чем эксклюзивней проект, чем он неожиданней, чем он новее для общества, тем сложнее его продвигать, а самые нестандартные страницы вообще через поисковые системы современной архитектуры не имеют шанса «выйти в люди». Это явление называется "эффектом гравицапы", подробнее про него можно почитать в нашей wiki.

Итак, какие же принципиальные дефекты можно усмотреть во всех поисковых системах:
Особенность #1. Для любого нового веб-ресурса высок порог вхождения в систему поиска на уровне, гарантирующем реальную выдачу страниц ресурса по актуальным для ресурса запросам. Зачастую задача продвижения ресурса оказывается сложнее и трудозатратнее работ по созданию этого ресурса;

Особенность #2. Время реакции поисковых систем на новый ресурс является чрезмерно большим. То же самое справедливо и для обновления ресурсов, при этом - чем ниже рейтинг ресурса в системе, тем больше требуется времени на его эффективное обновление в поисковом индексе;

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

Небольшой комментарий - особенность #3 действительно присуща всем современным полноиндексовым поисковикам (а других и не осталось) и именно она способствует фактической блокировке поиска нетиповой информации в интернете. Не далее как вчера я пытался узнать, какая температура крови в сердце человека. Вот возник такой вопрос, нужно было выяснить. Работая с поиском Яндекса, мне пришлось узнать много нового и интересного - как зависит температура тела от погоды, какие признаки заболевания омикроном, ознакомиться с историей создания медицинских градусников, симптоматикой основных болезней и прочее. Узнал о существовании прекрасных медицинских центров, где лечат от всего. Но тайну про температуру крови в сердце интернет мне не раскрыл. Случайно нашел эту информацию про печень - там должно быть порядка 39 градусов. И то это был какой-то оцифрованный старый медицинский учебник. А ведь это не тайная информация, она точно есть в интернете, она содержится в специализированных учебниках, которые давно оцифрованы. Но поисковики эту совершенно невостребованную информацию задвинули очень и очень далеко (так что и не найти) - а снаружи мы видим то, что ищут люди в первую очередь со словами "кровь", "сердце" и "температура" - конечно, про болезни, лекарства и врачей. Получается, что поиск выдает прежде всего ответы на популярные запросы, а невостребованные ресурсы с близким по сути контентом оказываются поисково недостижимыми.

Особенность #4. Все поисковые ресурсы в Сети сосредоточены в руках нескольких очень крупных игроков, деятельность которых не может не регламентироваться государственными органами и службами. Поэтому текущие политические веяния оказывают прямое и, надо заметить, немалое влияние на особенности работы поисковых сервисов. По запросам государственных органов эти сервисы обязаны и контролировать, и блокировать определенные типы запросов. Кроме того, их собственные "взгляды на жизнь" также влияют на систему поиска вплоть до блокировок определенных ресурсов;

Особенность #5. Структура всех поисковых выдач всегда линейна, что заведомо отсекает запросы с низким уровнем релевантности от границ области поисковой достижимости. Линейность же определяется тем, что до сих пор не было придумано ничего лучше, чем упорядочение результатов запроса по некоторому интегральному показателя, формируемому одним алгоритмом для всех ресурсов в сети. Это как если бы мы начали упорядочивать всех людей, исходя только из текущей суммы на их банковском счете - скажем, требуется найти всех рыжих людей на земле, с ростом ниже 190 см и IQ выше 130, потенциально способных ментально общаться с инопланетянами. Поисковик по всему человечеству не способен определить наличие паранормальных способностей, поэтому выберет всех рыжих ниже 190, поставит вверх выборки тех, для кого известен уровень IQ, а затем упорядочит их внутри групп по размеру банковского счёта. Очень похоже, что Цукерберг попадет на первую страницу выборки - но разве он нам был нужен?
Надо признать, что линейность выдачи - самая большая слабость поисковых систем, она накладывает слишком жёсткие ограничения, во многом делающие эффективный поиск невозможным.

Ну и наконец:

Особенность #6. Современные поисковики работают только в белом интернете, ни для сетей TOR, ни, тем более, до, оверлейные сетей, поисковых систем практически не существует. Они есть, но их индексы заведомо не полны, а алгоритмы не идут ни в какое сравнение по эффективности формирования индекса с теми же Гуглом и Яндексом.

Если потребуется размещать какие-то ресурсы в оверлейных сетях, в той же IPFS, в блокчейн-системах, то следует исходить из того, что поиск там очень неэффективен. Для IPFS вообще нет реально хоть как-то функционирующих поисковиков и, как в старом добром web 1.0 поиск построен на каталожных системах.
Кстати, технологии современных поисковых систем вообще не очень подходят для работы с "серым" интернетом.

Особенность #7. Существующие поисковые системы не способны защищать авторские права создателей контента, прежде всего -"моральные" авторские права, не связанные с коммерческими отношениями. Ситуация, когда заимствования за счёт не связанных с самим текстом факторов занимают высокие позиции в поисковых выдачах, а первоисточник просто теряется, являются обычными. У существующих систем поиска просто нет алгоритмических решений для настоящей защиты авторского контента в Сети.

Особенность #8. Все - подчёркиваю, все поисковые системы "белого" интернета собирают информацию о запросах пользователей. Они ее аккумулируют, обрабатывают и через свои специальные алгоритмы, кто прямо в лоб, а кто-то аккуратненько, стараясь не выдать себя, пытаются навязать пользователям свои взгляды. В самой безвредной форме это выглядит как контекстная реклама, связанная с массивами предыдущих поисковых действий в браузере, но для многих браузеров (прежде всего, имеющих закрытый код) создаётся впечатление, что результаты поисковых запросов тоже в некоторой степени корректируются. И анонимность соблюсти будет в таких ситуациях совсем не просто, понадобятся специальные технические решения, например, использовать TOR и VPN, или же переходить на специальные браузеры.

Эта особенность привела к появлению очень странных объектов, таких, например, как поисковый сервис StartPage, который предоставляет ответы от Google, что делает его идеальным выбором для тех, кто предпочитает результаты поиска Google, но не хочет, чтобы их история поиска отслеживалась и сохранялась.
Он также включает в себя генератор URL, прокси-сервис и поддержку HTTPS.
Генератор URL особенно полезен, потому что он устраняет необходимость собирать куки. Вместо этого он запоминает настройки таким образом, чтобы обеспечить конфиденциальность.

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

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

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

К сожалению, пока что нет хороших идей, как организовать эффективный поиск в Сети как-то иначе, кроме составления полного индекса. Попытка развития идей семантического поиска была наиболее амбициозной, но особого успеха не имела - опять же, не из-за технических ограничений или неспособных программистов, а потому, что не справились с разрешением фундаментальных, математических проблем. Усилия были приложены очень значительные, но практически семантические поисковые системы не показали явных преимуществ перед полноиндексовым. Строить же систему поиска по классической каталожной системе возможно только для отдельных узких сегментов интернета - объем информации слишком велик и растет очень быстро.
Правда, существует пласт задач, с которыми семантический веб справляется великолепно. Проблема поиска решается при помощи тематических баз данных. Семантические технологии помогают отыскать тематическую информацию, рассредоточенную по всей сети, следовательно, семантические поисковые системы иногда превосходят тематические запросы, но, как уже отмечалось, лишь для узких сегментов знания. Например, отлично работают поисковики по математическим ресурсам, авторы которых участвуют в глобальной онтологической системе математических текстов. Но ведь это «капля в море»!

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


[ Modified: Wednesday, 9 February 2022, 7:51 AM ]

Comments

     
    Anyone in the world

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

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

    1.      Финансовый. Автор может стремиться извлечь из размещаемых в Сети материалов прямую материальную выгоду;

    2.      Моральный. Автор, не претендуя на материальное вознаграждение, стремится сохранить за собой авторство на размещаемый контент. Он рассчитывает на упоминание на свой материал при использовании  его другими людьми и, соответственно, на ссылки на свое имя (или свой ник).

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

    Можно, конечно, фиксировать авторство и дату размещения материалов (с точностью до миллисекунды!) для того, чтобы при необходимости можно было доказать факт первого размещения материала в Сети. Но это будет иметь смысл, только если удастся установить сам факт спора об авторстве между несколькими участниками интернет-сообщества, а вот это-то как раз в подавляющем большинстве случаев и невозможно! В Сети материалы могут заимствоваться без каких-либо попыток претендовать на авторство – просто чужой текст размещается на своем сайте и все споры, обращения, претензии – игнорируются. Не с кем спорить – контент начинает жить своей собственной жизнью и становится «общим  достоянием», а о подлинном  авторе никто больше и вспоминать не будет. Пока что ни о каких инструментах саморегулирования контента в Сети и речи быть не может, поисковые системы во многом поощряют прямые заимствования текстов и иных материалов. Например, малоизвестный автор опубликовал что-то действительно стоящее на своем сайте с минимальной посещаемостью. А затем владелец другого сайта с тысячами просмотров просто разместил заимствованный материал у себя без каких-либо ссылок на автора (или даже указав автором другого человека, себя – например). Тогда, если со временем контент станет популярным, то для всех его автором фактически будет являться это «другой», самовольно приписавший себе авторство. Ведь все будут находить текст на популярном сайте, а на страничку настоящего автора никто и заходить не будет. Поисковики, кстати, будут выдавать заимствованный материал, скорее всего, в топе, а исходный текст окажется в их рейтинге где-то на 100500 месте. Получается, что подлинный автор просто «подарил» свой труд кому-то более хитрому и оборотистому, но отнюдь не более талантливому!

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

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

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

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

    На данный момент имеет смысл уделить внимание следующим инструментам:

    А. Использование специализированных сервисов депонирования в классическом формате сетевого общения;

    Б. Размещение авторских материалов в одной из пиринговых сетей (например, в IPFS), обеспечивающих «вечное» хранение данных;

    В. использование систем блокчейна для размещения авторских материалов;

    Г. Использование неделимых токенов (nft-токенов).

    Итак, сначала посмотрим, что нам может предложить стандартный инструмент – сервисы, которые берут на себя обязательства  на размещение и хранение авторских работ вместе с обязательствами контролировать и подтверждать авторство работ. Да, таких сервисов много, существуют и бесплатные варианты. В частности, для российского сегмента Сети наиболее известными сервисами такого типа являются IREG (ООО "Платформа Технологий") и n'RIS (АО "Национальный Реестр интеллектуальной собственности").

    Депонирование объектов авторского права в этих сервисах осуществляется по следующей схеме:

    Шаг 1. Регистрация в сервисе  по реальным ФИО;

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

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

    Шаг 4. При необходимости - продажа произведения, что включает в себя его  лицензирование (исключительное и не исключительное), получение копии для личного некоммерческого использования и другие договоры передачи авторских прав.

    Оба сервиса в России платные, но суммы там незначительные, пару лет назад было порядка 250-400 руб.

    Но вот есть ли польза от таких сервисов? Особой, похоже, нет. Да, подтвердить права на авторство они могут (пока сами существуют, естественно), но вот как-то защитить от массового «растаскивания» вашего труда по сайтам большим и малым – нет. Если ваш материал без ссылок и упоминаний «процитируют» на сотнях страниц, вряд ли удастся решить проблему в «юридическом поле». Как говорится, «слово – не воробей, вылетит – не воротишь». Юридически авторство ваше сохранится, но вот с точки зрения интернета материал ваш вполне рискует стать в лучшем случае «народным», в худшем – автором будет считаться кто-то другой, а настоящий автор рискует снискать репутацию плагиатора.

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

    Несколько более современным, на мой взгляд, выглядит технология размещения авторских материалов в пиринговых (оверлейных) сетях, поскольку там размещенный материал становится технически недоступным для каких-либо изменений и корректировок. Он будет оставаться именно в том виде, в каком его загрузил автор и без его согласия изменить ничего будет нельзя. Да и удалить материал тоже будет невозможно!

    Материал получит свой уникальный хэш-код, генерируемый по содержанию, так что в IPFS, например, технически исключается одновременное существование двух файлов с одинаковыми хэшами (то есть с одинаковым внутренним содержанием). Правда, если поменять в исходном файле хотя бы один символ, то хэш-код изменится и фактически можно будет разместить полный дубликат, но уже под другим именем и, возможно, с другими метаданными – например, указать иное авторство.

    Вообще, вариант Б был бы хорош, но есть и очень много слабостей:

    - поиск в IPFS (да и в любых иных оверлейных сетях) практически не реализован. Поисковиков, аналогичных Яндексу или Google, там нет в принципе. Существуют только каталоги, с которыми большинство уже либо разучилось работать, либо никогда и не видело, что это за звери такие;

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

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

    Технологии блокчейна – пункт В – являются фактически дальнейшим развитием идей распределенного хранения информации. Хранение произведения в публичном децентрализованном реестре (то есть в блокчейне) как нельзя лучше подходит для фиксации фактов, связанных с возникновением авторства материала и дальнейшими актами передачи авторских прав. В настоящее время существует несколько функционирующих сервисов (например, Proof of ExistenceEmernotar) с помощью которых загружаемый файл с произведением хешируется, а результат заносится в блокчейн. Такая запись содержит временные метки (timestamps), и в нее невозможно внести изменения или несанкционированно уничтожить. В случае необходимости проверки проводится повторная операция хеширования, и полученный хеш сравнивается с хешем, хранящимся в блокчейне. Совпадение хеша гарантирует, что конкретный файл был внесен в блокчейн в конкретный момент времени.

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

    Впрочем, тут та же самая беда – если доступ к материалу открыт, копирование, полное или частичное, не предотвратить. Ну и еще проблема – проекты, связанные с блокчейном, подвержены неожиданной гибели. Так недавно приключилось с сервисом блокчейн-депонирования Депонент (http://deponent.io/)– сайт его более недоступен со всеми вытекающими для доверившихся ему авторов последствиями.

    Наконец, вариант Г – неделимые токены. Технология блокчейн уже послужила основой для создания цифрового аналога денег — криптовалют. Позднее на базе криптовалют появились заменители ценных бумаг — токены. Следующим шагом стала оцифровка всех остальных товаров из реального мира. Создавать такие цифровые товары позволяют невзаимозаменяемые токены. NFT (Non Fungible Token) отличаются друг от друга, как и невзаимозаменяемые товары в реальном мире. Если один биткоин ничем не отличается от другого биткоина, то каждый NFT уникален. Это свойство и позволяет представлять в блокчейне информацию о любом объекте реального мира.

    Наверное, это самый прорывной и популярный вариант. Сейчас существуют и действуют (причем – очень успешно) десятки маркетплейсов для работы с NFT-токенами. Наверное, в настоящее время NFT – самая подходящая технология для оцифровки и хранения авторского контента. Мы можем прикрепить NFT к любому цифровому объекту или даже материальному товару, например — изображению, видео, аудио и т.д. В токене буде содержаться вся информация о товаре. Токен — это эксклюзивное право на товар.

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

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

    - музыкального и видео контента;

    - цифрового искусства – самое популярное направление;

    - игровых предметов электронных игр и объектов в виртуальных вселенных;

    - билетов, талонов и пр. материальных объектов, по самой природе имеющих признаки уникальности;

     - доменных имен.

    К сожалению, токенизация текстовых объектов пока что напрямую через NFT-маркетплейсы невозможна, но, мне кажется, это и к лучшему.

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

    Впрочем, NFT дает авторам пусть и  не идеальный, но все-таки инструмент для самостоятельной защиты своего авторского права. Рассмотрим это на примере самого сложного с точки зрения NFT контента – текстового файла. Действительно, можно создать для него «обертку» - например, титульный лист, содержание, краткую аннотацию, подборку отзывов, вообще, добавить в «обертку» все, что пожелает автор, но не размещать в ней собственно контент, как раз и составляющий суть авторского материала. Такую обертку можно оцифровать в формате файлов pdf или svg, которые легко токенизируются. И именно к ним открыть свободный доступ. Тогда все заинтересованные стороны смогут ознакомиться с сутью авторского контента. А сам контент прикрепить к токенизированной «обложке», так что доступ к нему получат лишь те, кто предварительно оплатит NFT токен, содержащий «обложку».  То есть фактически автор обнародует аннотацию к своему труду, а полный доступ становится возможным лишь за плату. Более того, автор будет получать комиссионные за все последующие сделки со своим материалом, а цепочки продаж и передач права пользования на авторский материал будут полностью открытыми.

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

    Альтернативой может стать вариант продажи  NFT-токенов с авторскими материалами либо за символические суммы (скажем, 0.0001 ETH, то есть за десяток центов), либо продаж за 0 денежных единиц (Но это в будущем. Сейчас такие эксперименты ведутся на нескольких платформах, но маркетплейсы NFT пока что бесплатных сделок избегают). Тогда доступ к вашим материалам для всех участников NFT-рынка будет не сложнее скачивания книги или статьи, но в блокчейне сохранятся все данные по передаче доступа, что полностью обеспечит неприкосновенность моральных прав автора на свои произведения. Вроде как и открыли свободный доступ, но при этом все видят, кто у кого какие тексты получал.

    Важное замечание 1: все это работает, пока взаимодействие ограничивается сообществом людей, работающих с NFT. Внутри только этого сообщества возможен и контроль движения объектов, и отслеживание авторства, и, со временем, остракизм тех участников сообщества, которые нарушают его правила. Но, как только какой-то материал покидает такое сообщество, никакие авторские и иные права на него обеспечиваться инструментами блокчейна уже никак не могут.

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

    В любом случае, любой покупатель NFT токена должен иметь право на такое содержательное комментирование. Технологическая возможность «обогащения» NFT токенов по мере их существования и перехода между владельцами активно исследуется и на некоторых платформах (например, Polygon) уже имеются хорошие наработки. Есть надежда, что и на NFT-маркетплейсах, которые сейчас и обеспечивают практически весь оборот NFT-токенов, скоро будут внедрены соответствующие инструменты.

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

    Резюмирая весь текст, можно отметить, что основными недостатками всех без исключения сетевых решений, связанных с обеспечением авторских прав, являются два:

    - техническая возможность прямого копирования контента;

    - невозможность оценивать, насколько один материал связан  или зависим от другого – особенно это касается текстовых материалов.

    Пока эти два вопроса не получат удовлетворительного технического решения, нельзя говорить о существовании инструментов защиты авторских прав (прежде всего – моральных прав на авторский контент), принципиально отличных от классических механизмов правовой защиты.


    [ Modified: Tuesday, 8 February 2022, 11:55 AM ]

    Comments

       
      Anyone in the world

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

      Однако у этого метода есть несколько недостатков. Во-первых, доменное имя .onion представляет собой совершенно нечитаемую строку из 56 символов, шансов же завести себе что-то хоть немного красивое практически нет. Во-вторых, работать с «луковой» маршрутизацией умеют далеко не все браузеры. Собственно, пока только TOR и умеет делать это в полном объеме. Ну и, наконец, самый большой недостаток – если вы делаете домен под обслуживание через .onion, то он должен иметь «нормальный» хостинг, то есть все файлы должны быть размещены на одном компьютере, подключенном к сети интернет и выполняющем роль сервера.  Так что при таком подходе невозможно полностью отвязаться от централизованной версии интернета со всеми вытекающими отсюда печальными последствиями – отдельный компьютер является слишком уязвимым звеном, он может сломаться, быть похищенным, его можно вычислить, блокировать доступ к сети и прочее, и прочее. Если он перестает работать, то и сайт больше будет не доступен.

      Конечно, если бы удалось совместить распределенную файловую систему и «луковую» маршрутизацию, это было бы почти ультимативным решением. К сожалению, проект TOR ориентирован прежде всего на обеспечение анонимности пользователей в сети, а вопросы хранения файлов при работе с его технологиями отходят на второй план. До сих пор нет удовлетворительных механизмов интеграции продуктов TOR и, например, [[рассмотренной ранее]] распределенной файловой системы IPFS.

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

      Прежде всего, нужно примерно понимать, что такое хэширование и хэш-функция.

      Хеширование — это преобразование строки произвольной длины в битовую строку фиксированной длины. То есть мы можем взять любой текст, например, все содержание книги «Война и мир» Толстого (а там, на минуточку, 3 млн 246 тыс. букв), а потом выполнить его шифрование с помощью так называемой хэш-функции. Самое важное – эта функция будет давать одинаковый результат для всех одинаковых строк, то есть преобразовывать одинаковый текст в тот же хеш. Например, результат шифрования может выглядеть так:

      6de4c03655fdc3e982e3bfc4f055dae5064547e8b78ef951b80c94b657a5c684

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

      efdc5e0108e3906fea8c93efb1d9616b7a26aa26549c5d47a1b6c3fda8199ac9

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

      В самой своей простой и в то же время ясной интерпретации блокчейн (blockchain)  — это последовательная цепочка строк (часто именуемых блоками), которые защищены от подмены.

      Ключевой момент в определении – «защищены от подмены»! Что это значит? Посмотрим на простом строчном примере, как можно создать такую защищенную от изменений последовательность данных.

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

      Представим теперь, что мы не просто храним хэшированные записи, но вместе с каждой строкой храним и информацию о предыдущей записи (или предыдущем блоке). Тогда система блоков будет устроена так, что никто не сможет незаметно изменить отдельную запись, не повлияв на другие. Например, пусть первая запись в нашей цепочке – просто строка «Привет, это первая заметка!». Если пропустить ее через хэш-функцию, получим значение

      7cb70ea12f13042dbfbbf492c20e943b2c62a1007a9921e36f5479f6aa748bc9

      Вторая запись по построению будет содержать собственно
      вторую запись – например, строку  «Привет, это вторая запись!», а также хеш первой записи:
      7cb70ea12f13042dbfbbf492c20e943b2c62a1007a9921e36f5479f6aa748bc9_разделитель_Привет, это вторая запись!

      В таком виде значение хэш-функции для второй записи будет иметь вид:

      8af30f625141cd685dd3ad40f32b0046b562e4efd9746f8225f5a56543a0e50a

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

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

      Вообще, существуют три механизма работы блокчейнов:

      ·         централизованный с доверенным центром

      ·         централизованный с недоверенным центром

      ·         децентрализованный вариант с использованием доказательства работы.

      Наибольший интерес (и – наименьший для компаний, продающих blockchain-решения) представляет   децентрализованная система blockchain без выделенных центров генерации блоков. В blockchain -системах каждый участник может взять набор транзакций, ожидающих включения в журнал, и сформировать новый блок. Однако в децентрализованных системах, получивших какое-то практическое значение,  это не так просто, поскольку разработчики накладывают дополнительные ограничения на формирование новых блоков.  Для blockchain типа BitCoin таким важнейшим инструментом ограничения стал механизм, который получил название «доказательство работы». Математически он довольно сложен и специально его здесь рассматривать мы не будем – цель у нас сейчас другая. Но дополнительные ограничения позволяют с очень высокой степенью надежности исключить злонамеренное вмешательство в систему блокчейна и подделку хранящихся в ней записей.

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

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

      Блокчейн-домены — это адреса, которые существуют в виде токенов или смарт-контрактов в децентрализованном интернете. Они сопоставляют отдельные адреса блокчейна с удобочитаемыми доменными именами. В результате вместо длинного блокчейн-адреса, например, 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa, можно использовать короткий домен, допустим, media.SIGEN.crypto.

      Основные отличия блокчейн-доменов от обычных:

      ·         блокчейн-домен — это не просто домен, а, скорее, отдельный доменный актив на блокчейне. Владелец домена несет полную ответственность за доступ к нему — если он потеряет приватный ключ от домена, доступ тоже будет утерян;

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

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

      ·         в децентрализованном интернете нет никакого централизованного органа управления. 

      Есть три основных области применения децентрализованных доменов:

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

      ·         Децентрализованные сайты и приложения, которые контролируют только их владельцы.

      ·         Конфиденциальные мессенджеры, в которых пользователи хранят сообщения в зашифрованном виде на собственных компьютерах. 

      Блокчейн-домены — это важная часть децентрализованного интернета — технологий Web 3.0 или DWeb (Decentralized Web). Это схожие термины, которые предполагают сеть, в которой нет единого централизованного органа управления, пользователи имеют полный контроль над своими профилями и размещаемым контентом, а компании не могут торговать данными пользователей. 

      Единой системы блокчейн-доменов пока нет. Их разрабатывают несколько компаний, среди которых Unstoppable Domains, Namecoin, HandShake и Ethereum Name Service (ENS). 

      Unstoppable Domains и Namecoin предлагают новые расширения доменных имен (домены верхнего уровня) — например, .bit, .zil, .crypto, .eth и так далее. Такие домены полностью независимы от традиционных DNS и ICANN. 

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

      А вот ENS предлагает систему блокчейн-доменов, которая интегрируется с традиционной DNS. Так, владелец традиционного доменного имени может зарегистрировать точно такое же имя в блокчейн-сервисе на доменах .kred, .xyz и .luxe.

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

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

      Рассмотрим чуть подробнее проект Unstoppable Domains — это крупнейший поставщик блокчейн-доменов, которые работают на базе блокчейнов Ethereum и Zilliqa, а также на протоколе IPFS. Компания основана в 2018 году в Сан-Франциско. 

      Unstoppable Domains построены на Crypto Name Service (CNS) - наборе смарт-контрактов Ethereum, которые определяют, как создаются и используются домены блокчейна.

      Каждый домен CNS выпускается как токен ERC-721, также известный как невзаимозаменяемый токен (NFT).

      NFT - это уникальные неделимые токены, которые часто используются для представления уникальных цифровых элементов.

      Использование стандарта ERC-721 позволяет разработчикам легко интегрировать Unstoppable Domains в другие приложения, позволяя пользователям управлять своими криптовалютными доменами из совместимых кошельков криптовалюты, бирж и торговых площадок.

      CNS состоит из двух смарт-контрактов: контракта реестра и контракта Resolver. Контракт с реестром управляет созданием новых крипто-доменов и поддоменов, а также владением доменами. В контракте с реестром нет администратора, а это означает, что никакая организация, в том числе Unstoppable Domains, не может управлять вашими доменами или передавать их без вашего разрешения. Контракт Resolver используется для разрешения доменов или перевода удобочитаемого имени в адрес криптовалюты, а также для хранения записей домена.

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

       Стоимость блокчейн-доменов Unstoppable Domains начинается от $10 за стандартный адрес, а наиболее редкие продаются за десятки тысяч долларов (рекордная цена — $100 000 за домен win.crypto). Домены могут принадлежать как внешним адресам, так и смарт-контрактам — это означает, что ими можно управлять с помощью криптокошелька с мультиподписью. Более того, такими доменами можно торговать на вторичных рынках NFT, например, на OpenSea.

      В Unstoppable Domains есть 10 доменных расширений. Первоначальным было .zil на блокчейне Zilliga. Но осенью 2019 года проект добавил поддержку Ethereum и ЕТН-регистр .crypto. Это также позволило интегрировать доменные имена в dApps. 

      В июне 2020 года Unstoppable Domains запустили еще восемь расширений: 

      ·         .coin — для стейблкоинов и денежных переводов;

      ·         .wallet — для цифровых криптоплатежей;

      ·         .bitcoin — для ВТС-кошельков;

      ·         .x и .888 — премиум-адреса;

      ·         .nft — для держателей NFT;

      ·         .dao — для децентрализованных автономных организаций (DAO);

      ·         .blockchain — для кошелька Blockchain․com. 

      Помимо доменов Unstoppable Domains развивает собственный браузер, протокол чата зашифрованных сообщений Unstoppable Chat, децентрализованную блогинг-платформу dBlog и конструктор децентрализованных сайтов. 

      Сейчас в Unstoppable Domains зарегистрировано более 1.9 млн блокчейн-доменов и свыше 90 000 децентрализованных сайтов. Пользователям сервиса также доступно порядка 275 криптовалют и токенов на более чем 100 криптовалютных кошельках и биржах, включая Trust Wallet, Blockchain․com, BRD, Cake Wallet, Coinbase, Litewallet, OKEx и MyEtherWallet. 

      Ниже мы приведем пример самых популярных сайтов:

      ·         ivanontech.crypto

      ·         timdraper.crypto

      ·         pomp.crypto

      ·         coinomi.crypto

      ·         atomicwallet.crypto

      ·         kyber.crypto

      ·         chrisdunn.crypto

      ·         ama.crypto

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

      Как видите, блокчейн-адреса работают совершенно аналогично обычным и их можно использовать в адресной строке любого браузера. Конечно, в привычном мире интернет Web 2.0  такой адрес отправляет нас на шлюз Unstoppable Domains, однако многие браузеры при необходимости (например, блокировка адресов Unstoppable Domains) найдут путь, пользуясь и значением хэш-функции. Во всяком случае, TOR успешно работает со всеми этими адресами. В крайнем случае, всегда есть возможность использовать специальное программное обеспечение (аналогично тому, которое мы использовали для работы с IPFS).

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


      [ Modified: Monday, 7 February 2022, 2:42 PM ]

      Comments

         
        Anyone in the world

        Немного разобравшись с технологиями безопасного хранения файлов в глобальной сети, перейдем к следующему важному вопросу, поставленному во Вводной части:

        Можно ли организовать доменную систему в интернете, адреса которой не могут быть заблокированы в принципе? Систему, которая не нуждается в DNS и иных централизованных средствах маршрутизации?

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

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

        Однако есть у такого способа навигации два больших недостатка:

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

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

        А так было бы здорово организовать домен вида, например, bolschevik.liberty, да еще чтоб доступ к материалам был возможен с любого браузера, да еще чтоб домен этот был «неубиваемый», всегда работал и всегда вел именно на ваши документы и никто не мог нарушить доступ к ним по этому адресу, ни ваш провайдер, ни хостер, ни ЦРУ.

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

        Сегодня ограничимся анализом ситуации, когда никаких сложных схем по размещению файлов в сети не реализуются, а наш сайт просто размещается на обычном хостинге (желательно выбрать абузоустойчивый vps или vds), или даже на локальном компьютере, просто подключенном к сети интернет, можно без выделенного IP. А вот адресацию к нему попробуем сделать «секретной», через т.н. «луковичную (onion) маршрутизацию». «Луковичная маршрутизация» - это та технология, которая в первую очередь ассоциируется с известным браузером TOR, который в декабре 2021 года Роскомнадзор начал пытаться блокировать. Но суть тут не в браузере, а в принципах маршрутизации, совершенно отличных от традиционных систем на основе DNS-серверов, составляющих основу навигации в парадигме 2.0.

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


        Рис. 1. Схема «луковичной маршрутизации»

        Помимо анонимности, луковая технология позволяет еще и формировать свою систему доменных имен для того, чтобы сделать доступ к страницам сайта немного более простым. В рамках проекта TOR была разработана технология доступа к ресурсам интернет внутри зоны .onion. Это не домен в привычном понимании (часто для него используют термин псевдо-домен верхнего уровня),  адреса в зоне  .onion  не не являются полноценными записями в базах DNS, а информация о них не хранится в корневых серверах DNS.  Изначально цель разработчиков состояла в обеспечении доступа к анонимным или псевдо-анонимным адресам сети в сети Tor. Практически доступ к ним возможен только при установке дополнительного программного обеспечения, необходимого для выхода в сеть Tor. Однако проект TOR оказался довольно популярным и многие разработчики стали включать в свои браузеры средства поддержки для работы с этой сетью. В частности, браузеры Firefox и Opera стараются поддерживать работу с onion-адресами, их и Google Chrome можно легко научить делать это с помощью установки дополнительных плагинов. Ну и, конечно, существует много проектов, изначально поддерживающих работу в сети  TOR, которые получают доступ к сайтам в доменной зоне .onion, посылая запрос через сеть Tor-серверов. В любом случае, браузер TOR работает с зоной .onion.

        Имена в зоне .onion имеют свои особенности. Во-первых, они не покупаются, а генерируются самостоятельно и остаются в собственности своих создателей навечно. Ну, или до того момента, когда создатель потеряет ключи доступа к ним, а кто-то другой их «подберет».

        В-вторых, они не очень хорошо выглядят. Адреса в псевдо-домене .onion представляют собой немнемонические буквенно-цифровые строки, которые автоматически генерируются на основе открытого ключа при настройке службы маршрутизации в домене .onion. Они состоят из 16 символов для старого стандарта версии V2 и 56 символов для нового стандарта версии V3.  Эти строки могут включать в себя любые буквы английского алфавита и цифры от 2 до 7 включительно, представляя в base32 либо 80-битный хэш (версия 2 V2 16-символьная), либо 256-битный ed25519 открытый ключ вместе с номером версии и контрольной суммой ключа и номером версии (версия V3 на основе 56 символов). В результате все комбинации из шестнадцати символов base32 потенциально могут быть действительными адресами версии V2 (хотя в качестве выходных данных криптографического хеша случайно выбранная строка такого вида, представляющая действительный адрес в системе .onion-маршрутизации, должна быть крайне маловероятной ). В версии V3 допустимы  только комбинации из 56 символов формата base32, набор которых корректно кодирует некий открытый ключ формата ed25519, контрольную сумму и номер версии. В настоящее время версия  V2 уже не поддерживается при формировании и, с октября 2021 года, и при  обслуживании, доменных имен типа V2.

        Поэтому сейчас, на вторую половину декабря 2021 г., в сети TOR наблюдается масса проблем с открытием сайтов в зоне .onion. Адреса V2 перестают работать, а новые адреса из 56 символов еще не все себе завели, да и найти их не так-то просто – поисковые системы в сети TOR мало похожи на Яндекс или Google. Кстати, как вариант – возможно наш РКН потому и приурочил начало блокировок к этому интересному моменту: адреса  действительно не работают, в зоне .onion разброд и шатания, можно приписать эти результаты своим усилиям по блокировке и отчитаться об успешно проделанной работе.

        Если же кто-то хочет получить в сети .onion красивый, человекопонимаемый адрес, придется потрудиться – необходимо перебируть свободные адреса в зоне до тех пор, пока случайным образом не встретится такой, который понравится. Например, Facebook, когда решил создать свой сайт в сети .onion, не смог продвинуться дальше подбора первых 8 символов и теперь мы можем найти эту социальную сеть по адресу https://www.facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion/

        Кстати, на генерацию этого адреса потребовалось порядка двух недель при немалых вычислительных мощностях у специалистов Facebook.

        Современный компьютер может с помощью сценария легко угадывать порядка 1-2 миллионов таких адресов в секунду. Отсюда мы можем легко оценить, сколько времени нам потребуется, чтобы найти доменное имя, которое мы хотим. Мы могли бы использовать тот же процесс, чтобы попытаться взломать чужой адрес .onion, но следующая таблица показывает, что это невозможно:


        Таблица 1. Ожидаемое время подбора последовательности символов

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

        Для того, чтобы получить в системе «луковичной маршрутизации» вечный адрес для своего сайта, необходимо выполнить следующую цепочку действий:

        А. Создать сайт и разместить на хостинге. Как уже упоминалось, желательно использовать абузоустойчивый vps или vds, либо же организовывать сайт на своем домашнем компьютере. Для этого нужен только компьютер, подключенный к сети интернет, на который устанавливается какой-нибудь локальный сервер. Можно, например, установить пакет XAMPP, если на ПК установлена ОС Windows, или же пакет LAMPP для Linux. Да хоть Денвер поставьте – тоже все должно работать!

         Есть и более серьезные варианты – можно воспользоваться одним из сервисов хостинга прямо в глубине «темного интернета». Заявляется, что там есть и совершенно бесплатные хостинги, но мне их открыть не удалось, адреса V3 неизвестны, а старые – не работают. Впрочем, это явление временное и, конечно, скоро вся эта чехарда с адресами завершится.

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

        Если же необходимо совместить вечный хостинг (например, в стиле распределенного хостинга в оверлейной IPFS, организованного в соответствии с рекомендациями [[нашего предыдущего текста]]) с луковой маршрутизацией, то нормального решения для этой задачи сейчас нет. Во всяком случае, мне не удалось обнаружить каких-то проектов, даже отдаленно пытающихся ее решать. Скорее всего,  их и не будет, поскольку связка  IPFS + .onion выглядит бесперспективной в силу именно того факта, что TOR изначально создавался для маскировки деятельности именно в сети интернет, а не в оверлейных сетях. Он вообще не понимает, что это такое и умеет работать только с классической архитектурой веб-серверов. Для оверлейных распределенных сетей нужны другие технологии, и мы их обязательно рассмотрим в следующих текстах.  

        Итак, у меня установлен пакет XAMPP. Создадим небольшой сайт – одностраничник. Для размещения сайтов в XAMPP предназначена специальная папка с именем htdocs (C:\xampp\htdocs). Перейдем в нее и создадим новую папку с именем testsite для размещения файлов нашего сайта.

        Рис. 2. Папка для размещения файлов сайта

        Создаем свою папку с названием testsite. Размещаем в ней уже знакомый нам по предыдущему тексту файл index.html, содержащий текст о том, что в нем что-то запрещено РосКомНадзором.


        Рис. 3. Наш простой веб-сервер из одного файла

        Теперь запускаем Apache в XAMPP:

        Рис. 4. Сервер Apache запущен!

        Наш веб-сайт теперь будет доступен с использованием адреса localhost вместе с именем папки, содержащей файлы страниц. Наша ранее созданная папка называлась testsit, поэтому полный адрес сайта HTTP: //localhost /testsite

        Все получилось, локальный доступ к сайту на компьютере организован:


        Рис. 5. Сервер Apache работает!

        Б. Самая для нас интересная часть работы – получить вечный адрес в зоне .onion, по которому другие пользователи могли бы получить доступ к сайту в папке testsite на нашем компьютере. Конечно, это будет возможно только в то время, когда компьютер имеет выход в интернет и на нем запущен XAMPP/Apache как минимум.

        Теперь переходим к настройкам сервера Apache в составе пакета XAMPP и открываем файл httpd.conf. Везде заменяем порт 80 на порт 5222 – так нам рекомендует документация проекта TOR.

         

        Рис. 6. Меняем в конфигурации порт 80 на порт 5222

        Если у вас другой сервер (например, VertigoServ, Денвер или еще какой-то), то нужно поменять все порты 80 на 5222, в коде файла может быть несколько упоминаний порта 80!

        Далее нужно установить на компьютер браузер TOR – тот самый, функционирование которого сейчас пытаются нарушить. Ну, тут уж без подсказок! Нужно его установить и настроить так, чтобы подключение к сети TOR было действующим. Например, вам, возможно, придется поискать и подключить рабочие мосты для сети. Вообще, это не великая проблема, РКН создает не более чем неудобства, ничего страшного.

        Кстати, имейте в виду, что TOR не дает гарантий анонимности. Пока вы ходите читать книжки на Флибусту, вы анонимны, поскольку никому не интересны. Но, если дело дойдет до «Советов постороннего», тут же минимум половина узлов окажутся скомпрометированными!

        Переходим в папку, где установлен браузер TOR. В последней версии она выглядит так:


        Рис. 7. Рабочая папка браузера TOR

        Идем по следующей последовательности вложенных папок:


        Рис. 8. Последовательность папок для настройки браузера

        Находим файл torrc, открываем с помощью редактора. Дописываем две важнейшие строчки:

        HiddenServiceDir C:\xampp\htdocs\testsite

        HiddenServicePort 80 127.0.0.1:5222


        Рис. 9. Вносим изменения в файл torrc.

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

        Запускаем браузер TOR.

        Вот и все. Все сохраняем и открываем папку с сайтом httpd. Что же мы видим:

        Рис. 10.  .onion адрес и ключи доступа для сайта получены

        В папке httpd появились три новых файла. Файл hostname содержит автоматически сгенерированный  .onion адрес нашего сайта cxebbgrjvtrwl3kreygqmoc3t5jyk7lyunhjrw2qz743widskqy4dlid.onion:

        Рис. 11. Адрес сайта в сети TOR

        Длинновато, конечно… Если хотим попробовать подобрать более красивое имя, необходимо использовать специальные программы. Все из них, кто подбирал 16-символьные имена, уже не годятся. Надо искать только для стандарта V3. Можете попробовать интересный проект  mkp224 (адрес на Git: https://github.com/cathugger/mkp224o/releases).

        Файлы hs_ed25519_public_key и hs_ed25519_secret_key содержат ключи, гарантирующие ваши права на сайт. Без них сайт работать не будет, терять их не нужно и лучше хранить в безопасном месте. Если их кто-то похитит, он сможет управлять вашим адресом уже без вас.

        Теперь посмотрим, работает ли наш сайт. Введем его адрес в браузер TOR:


        Рис. 12. Наш сайт работает!

        Вы можете посетить страничку по этому адресу, но, в отличие от IPFS, для того, чтобы она открылась, требуется, чтобы мой ПК был включен, был запущен сервер Apache и браузер TOR. Вероятность совпадения этих трех событий, честно говоря, не очень велика…

        Подведем итоги:

        1.       Работать с доменными именами .onion можно, технически это совсем не сложно. Они действительно гарантируют нам безопасность, блокировать их можно только вместе со всей сетью TOR, а это выглядит малореальным мероприятием;

        2.       Имена эти некрасивые, длинные и незапоминаемые. Зато бесплатные!

        3.       Если разворачивать сайт на своем ПК, то для его видимости потребуется совпадение трех факторов:

        А. Работающий и подключенный к интернету компьютер с сайтом;

        Б. Запущенный сервер Apache (в моем случае XAMPP/Apache);

        В. Запущенный браузер TOR.

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

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

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

        Почему это так и какие существуют альтернативные подходы к проблеме, рассмотрим в следующем тексте!


        [ Modified: Sunday, 6 February 2022, 10:09 AM ]

        Comments

           
          Anyone in the world

          В первом тексте о свободном интернете было сформулировано несколько основных вопросов, сегодня попытаемся дать развернутый ответ на первый из них:

          Можно ли хранить файлы в сети так, чтобы их было невозможно удалить и/или заблокировать доступ к ним? Соответственно, можно ли создавать сайты или сервисы, не удаляемые и не блокируемые?

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

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

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

          На самом деле, основная идея борьбы за сохранение информации в сети оформилась как раз внутри наиболее регламентируемого сегмента - в социальных сетях. Если требуется какую-то новость, информацию или файл сделать максимально защищенным от блокировки, то самым простым и эффективным способом будет его распространение среди максимального количества пользователей. Заблокировать или удалить отдельный пост в любой социальной сети для администрации очень просто, но если его начнут тиражировать другие участники сети, размещая информацию в своих аккаунтах или даже в других сетях, то бороться с этим становится просто бесполезно. Чем больше удалять и блокировать, тем активнее начинают распространять этот "вирус".  Остается заблокировать все сообщества целиком, а для верности отключить свет!

          Модель Web 3.0 развивается как де-факто новый стандарт интернета, в котором сайты и приложения контролируются их авторами и пользователями, а идея распределенного размещения и хранения файлов является одним из основополагающих принципов этой модели .  Сервисы и приложения в Web 3.0 строятся на децентрализованных одноранговых сетях (основные примеры - Ethereum и IPFS). Вместо того, чтобы контролироваться какой-то компанией, они строятся, управляются и поддерживаются самими пользователями. Кроме того, все используемое программное обеспечение в этой модели принципиально должно иметь открытый исходный код, что обеспечивает открытость системы и возможность для всех заинтересованных лиц принять участие в создании общей инфраструктуры. Получается, что все операции в модели 3.0  должны выполняться без посредников и ни одно правительство или компания не смогут собирать пользовательские данные, удалять контент или блокировать сайты.

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

          А мы сейчас рассмотрим в качестве иллюстрации вышесказанного то решение, которое более симпатично мне smile Тем более, что у него очень красивое название: IPFS - InterPlanetary File System, межпланетная файловая система. В амбициозности разработчикам точно не откажешь smile

           IPFS представляет собой стек протоколов и построенных на их основе программных решений с открытым кодом, предназначенный для создания оверлейной одноранговой гипермедийной сети поверх сети классического интернета. Ярким примером оверлейной сети, которую многие еще успели застать в рабочем состоянии - это коммутируемый доступ в интернет (например, по модемному протоколу PPP)который организовывался поверх обычной телефонной сети. То есть для работы стека от интернета требуется в первую очередь физическая инфраструктура (провода, кабели, оптоволокно, спутниковые каналы - все сгодится), а вот протоколы низкого уровня для работы не используются. Так что собственно протоколы интернета будут нужны только тогда, когда мы захотим получить доступ к информации, сохраняемой в IPFS, с помощью обычного интернет-доступа в сеть. Да-да, вы сможете использовать протоколы IPFS даже если не оплатили интернет - если, конечно, вам не обрежут кабель, ведущий к компьютеру smile

          При построении и использовании стека протоколов межпланетной Файловой Системы все базируется на нескольких простых принципах:

          - Каждому файлу и директории в системе присваивается уникальный идентификатор, так называемый CID — Content Identifier, генерируемый путем применения к директории или файлу криптографической хэш-функции.  При этом формируются уникальные хэш-идентификаторы;

          - В IPFS невозможно создавать копии, производить дублирование файлов и папок, что обеспечивается уникальностью генерируемых  CID, а для одинаковых файлов будут  получаться и одинаковые идентификаторы;

          - Доступ к файлам осуществляется по их уникальным CID, так что результаты применения хэш-функции к файлам фактически и выступают в форме пространства имен для IPFS. Фактически адресация по CID (называется такая форма адресации content addressing) не зависит от фактического положения файла в сети. Для получения файла пользователю нужно знать только хеш, все остальное сеть сделает сама: найдет узел, в котором хранится копия файла, запросит у него файл и возвратит туда, откуда поступил запрос на файл;

          - Каждый узел содержит только ту информацию, в которой он заинтересован, плюс хэш-таблицы, организованные для поиска файлов в сети, называемые DHT — Distributed Hash Table. Можно себе представлять эти таблицы как некий аналог DNS-серверов, которые в случае с IPFS хранятся у каждого узла в том объеме, который требуется для обслуживания данного конкретного узла.

          Загружая файл в мир  IPFS, мы как бы распределяем этот файл между всеми участниками сети, работающими в качестве пиров, многократно дублируя информационные блоки. Этим достигается полная децентрализованность (что-то очень похожее на механизмы работы торрентов) системы, отсутствуют единые точки входа и единые сервера, отвечающие за обслуживание контента. Чтобы не допустить доступа к файлу или к системе файлов, образующих сайт (как набор статических страниц), необходимо отключить одновременно все узлы, участвующие в хранении данных этого сайта и кэша файлов. На практике это просто нереально. В любом случае, для физического уничтожения файла требуется уничтожить все физические носители с ним либо его частями, которые подключены к протоколам IPFS.

          А теперь посмотрим, как это выглядит на практике. Я установил на своем ПК необходимое программное обеспечение (буквально несколько простых шагов, не требующих никакой специальной подготовки), предварительно скачав его с ... Так, стоп - а что, если завтра кому-то придет в голову перекинуться с деструкции TOR'а на IPFS? Ну, мало ли... А у меня ссылка! и весь Вконтакте заблочат! Нет уж, сами найдете, раз уж досюда дочитали smile

          А затем я создал простой html-файл. Вот такой:

          <html>

          <head>

            <meta charset="utf-8">

            </head>

            <body>

          Hello, world!!!

          Здесь размещена информация, запрещенная РКН!!!

              </body>

              </html>

          А затем загрузил его в файловую систему IPFS:


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

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

          Теперь установленный у меня программный модуль IPFS работает как самостоятельный пир (peer), раздавая не только мой загруженный файл, но и получая данные от других участников системы и раздавая данные по запросам пользователей:


          Ну, а карта установленных одноранговых связей по типу P2P выглядит так - здесь 404 пира с относительно нормальными скоростями подключения:


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

          А. через браузер, поддерживающий работу со стеком протоколов IPFS. Например, прекрасно подойдет браузер Brave, или новые версии Opera. Адресом файла служит его CID. Вообще, разработчики браузеров довольно серьезно относятся к стеку IPFS и постепенно стараются портировать его поддержку в свои разработки;

          Б. Можно использовать шлюзы - обычные веб-сайты, которые отдают содержимое из IPFS. Список шлюзов всегда можно посмотреть на странице проекта или в его Git-депозитарии. Самый простой способ - использовать шлюз https://ipfs.io/ В нем адрес моего файлика будет иметь вид https://ipfs.io/ipfs/QmUe5jEAJvZ6qwnsJ4nb29S2Mtr9z5ZhLTyrLBaRaha4sT?filename=index.html и доступ к нему будет осуществляться через любой браузер без ограничений.

          Конечно, у стека IPFS пока что есть много ограничений. Самые серьезные:

          А. невозможно просто обновлять файлы, их приходится заменять;

          Б. Пока что можно собрать только статичный сайт, работающий из-под IPFS, то есть его функционал будет ограничен связкой HTML+CSS+JavaScript, серверную часть на стеке IPFS делать еще не научились. Есть подходы к этой проблеме, но точно еще долго не получится работать с PHP или другими серверными языками. Если же поучиться и постараться, то уже сейчас можно делать бэкенд с помощью библиотеки Node.js и это будет работать!

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

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


          [ Modified: Saturday, 5 February 2022, 9:22 AM ]

          Comments

             
            Anyone in the world
            Поводом для написания данного текста является попытка РКН блокировать работу системы Tor. Именно поводом, поскольку сам Tor мне лично совершенно не интересен, я его никогда даже для эксперимента на ПК не устанавливал, просто не очень понимаю, какую именно мне он может принести пользу. Но вот усердные попытки государств (РФ тут вовсе не исключение, более того — в целом у нас все очень даже неплохо в этой области) все активнее контролировать сеть интернет вызывают вопросы и вопросы эти должны иметь ясные ответы.

            Начнем с того, что мы сейчас живем уже во вторую эпоху интернета, эпоху web 2.0. А ведь был когда-то еще и web 1.0, ну или просто интернет. Изначально сеть создавалась как хаотичная децентрализованная система, состоящая из множества независимых компьютеров, которые общались между собой напрямую. Сначала посредством модемов и телефонных сетей, а затем подключение к интернету стало доступнее благодаря централизованным интернет-провайдерам и выделенным линиям. Ключевым принципом первого этапа интернета была его децентрализованность, отсутствие каких-либо административных узлов и, соответственно, сложившихся правил регулирования. Это была сеть для доступа к контенту, который размещали на сайтах их владельцы, «немногие создавали контент для многих». Статичные html-страницы, доступ к информации только для чтения, основная радость — гиперссылки. Типичный формат сайта — информационный ресурс. Эпоха переноса в сеть offline-контента: оцифровка книг, сканирование картинок.

            Эпоха web 2.0 — это наше время, сейчас как раз ее расцвет, «золотой век». Все сделано для удобства пользователей, все стали участниками создания контента, все крутится быстро, без сбоев. Но за это пришлось кое-чем заплатить. Сначала эта плата выглядела совсем необременительной и совершенно естественной — пользователи делегировали обязанность хранить и обслуживать контент специальным сервисам — хостингам. Те эти обязанности приняли за совсем небольшое вознаграждение. И интернет быстро от распределенного состояния, когда все его узлы совершенно равнозначны, перешел к функционированию в форме иерархической структуры древовидной формы, в которой были специальные узлы (хостинги), обеспечивающие хранение и обработку контента, и еще более специальные узлы, обеспечивающие навигацию в этом океане информации — так называемые DNS-сервера.

            Ну и, естественно, контроль за подавляющим объемом хранящегося в сети контента оказался в руках небольшого числа крупных и очень крупных компаний. Однако такая система, построенная по принципу «один провайдер — миллионы потребителей», во все времена будет страдать от огромного количества проблем, связанных со все большим усложнением инфраструктуры провайдера, постоянно возрастающими расходами на ее содержание и опасениями, что в любой момент придет Роскомнадзор и выключит доступ к сервису одним нажатием кнопки. И ведь выключит, если захочет, поскольку блокировать отдельные элементы в иерархической среде в целом легко и приятно. А уж говорить о том, могли бы большевики агитаторы размещать в такой сети интернет (если бы она существовала в России сто с лишним лет назад) тексты своей газеты «Искра», вообще не ставится. Им было бы куда проще и, что тоже важно, безопаснее по старинке расклеивать листовки на стенах домов smile Ну, а если бы они решили делать пролетарскую революцию в Китае, то про интернет им было бы лучше вообще забыть.

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

            Впрочем, вышесказанное — это не совсем правда, и даже вовсе не правда. Все это справедливо до тех пор, пока мы ограничиваем себя работой только со сложившейся экосистемой формата web 2.0. Но ведь с чисто физической точки зрения интернет — это просто кабельные, оптоволоконные или организованные на иных принципах линии связи, которые могут быть наполнены чем угодно. Лишь принятие определенных стандартов по умолчанию ограничивает нашу фантазия о том, чем бы можно было наполнить эти линии. В конце концов существуют решения, когда интернет организуют на основе 220В электрических сетей и даже высоковольтных сетей (не особо успешно — там помех много). И ничего, нормально работает. А с помощью мощных лазерных указок, которые можно купить на AliExpress и даже на Ozon'е, толковые люди организуют линии передачи данных в труднодоступные места (например, в удаленную деревеньку, где мобильная сеть не ловится) на дальностях свыше 30 км. Ну, в снегопад и дождь — да, не работает. А в нормальную погоду до 20Мб/с — вполне средний показатель.

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

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

            Можно ли хранить файлы в сети так, чтобы их было невозможно удалить и/или заблокировать доступ к ним? Соответственно, можно ли создавать сайты или сервисы, не удаляемые и не блокируемые?
            Можно ли организовать доменную систему в интернете, адреса которой не могут быть заблокированы в принципе? Систему, которая не нуждается в DNS и иных централизованных средствах маршрутизации?
            Можно ли получать анонимный доступ к ресурсам, чтобы в принципе не было возможности выяснить, по каким адресам выполнялся серфинг?
            Можно ли гарантировать авторские права на материал, размещенный в сети?
            Несмотря на то, что вопросов тут пока что больше, чем ответов, у меня нет никаких сомнений, что большевики-агитаторы очень легко бы решили проблемы с постингом новых номеров газеты «Искра» даже в современном Пекине. Причем, не нарушая ничье законодательство. Главное, чтоб было кому эту «Искру» читать.

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

            Развернутые ответы на поставленные выше вопросы попробую последовательно дать в следующих публикациях этой серии про свободный интернет. Было бы здорово, если бы вы добавили свои вопросы для обсуждения. Тема-то, на самом деле, вполне актуальная!
            [ Modified: Friday, 4 February 2022, 8:53 AM ]

            Comments

               
              Anyone in the world

              Нестандартные кванторы и аксиомы равенства



              Логика первого порядка \( \mathfrak{L}_{\omega \omega } \)  в качестве кванторов использует квантор существования \(\exists\) (и двойственный для него квантор всеобщности \(\forall\)), устроенный крайне просто. Связывание переменной в формуле квантором содержательно означает наличие хотя бы одного элемента модели, для которого справедлива формула, получающаяся из исходной подстановкой вместо переменной этого элемента модели. Однако, если перейти к обобщениям логики первого порядка, в которых вместо кванторов существования и всеобщности используются более сложные кванторы, то единственным разумным способом определения таких нестандартных кванторов оказывается использование совокупностей подмножество модели, то есть переход на более высокий уровень абстракции для определения выполнимости предложений логики на моделях. 

              Именно, рассмотрим логику \( \mathfrak{L}_{\omega 0 } \), формулами которой являются бескванторные формулы логики первого порядка. Пусть далее \(Q\) - новый унарный квантор и \( \mathfrak{L}_{\omega \omega }(Q) \) - результат расширения синтаксиса бескванторной логики \( \mathfrak{L}_{\omega 0 } \) при помощи связывания свободных переменных с помощью нового квантора \(Q\). Для определения семантики нового квантора для каждой модели \(\mathfrak{A}=<A, P^{\mathfrak{A}}>\)  с унарным предикатным символом \(P\) в сигнатуре модели определим множество подмножеств в \(A\): \(Q^{\mathfrak{A}} \subseteq \wp(A)\), где \(\wp(A)\) - множество всех подмножеств множества \(A\). Тогда 

              \( \mathfrak{A} \models_{\mathfrak{L}_{\omega \omega }(Q)} QxP(x) \Leftrightarrow  \{a \in A | <A, P^{\mathfrak{A}}, a>  \models_{\mathfrak{L}_{\omega \omega }(Q)} P(a) \} \in Q^{\mathfrak{A}}\)

              В частности, для случая \(Q=\exists \) имеем для любой модели \(\mathfrak{A} \)  \(Q^{\mathfrak{A}}=\{X\subseteq A | X \neq \varnothing\}\)

              Для стандартных кванторов существования (и всеобщности) легко формулируются аксиомы равенства, позволяющие интерпретировать (двухместный) предикат равенства как тождественное совпадение элементов модели. Для произвольной сигнатуры \(\tau\) определим её расширение \(\tau^{=} = \tau \cup \{=\}\) . Аксиомами равенства в сигнатуре  \(\tau^{=} \)  называется совокупность формул следующих видов: 
              • \(\forall x (x=x)\);
              • \(\forall x \forall y ((x=y) \rightarrow  (y=x))\);
              • \(\forall x \forall y \forall z ((x=y) \& (y=z) \rightarrow  (x=z))\);
              • Для каждого функционального символа  из исходной сигнатуры   \(\tau\) формулируем свою аксиому равенства, которая говорит, что его значение не меняется, если аргументы заменить на равные. Например, для функционального символа \(f\) арности 2 формируем аксиому вида \(\forall x_1  \forall y_1 \forall x_2 \forall y_2 ((x_1=x_2) \& (y_1=y_2) \rightarrow  (f(x_1, y_1)=f(x_2, y_2)))\);
              • Для каждого предикатного символа  из исходной сигнатуры   \(\tau\) формулируем свою аксиому равенства, которая говорит, что истинностное значение предиката не меняется, если аргументы заменить на равные. Например, для предикатного символа \(P\) арности 2 формируем аксиому вида \(\forall x_1  \forall y_1 \forall x_2 \forall y_2 ((x_1=x_2) \& (y_1=y_2) \& P(x_1, y_1)  \rightarrow  P(x_2, y_2))\).

              Аксиомы равенства отлично подходят для работ в рамках обычной логики первого порядка, но, как только возникает необходимость работы с нестандартными кванторами, даже очень простыми и явно выразимыми через стандартные \(\exists\) и  \(\forall\), возникают проблемы концептуального характера. Действительно, рассмотрим логику с нестандартным квантором \(\exists_2\), говорящего, что существует не менее двух различных элементов, удовлетворяющих условию: 

              \( \mathfrak{A} \models_{\mathfrak{L}}\exists _2xP(x)  \Leftrightarrow card(\{a \in A |  \mathfrak{A} \models_{\mathfrak{L}}P(a))\geqslant 2\)

              Но как в новой логике \( \mathfrak{L}=\mathfrak{L}_{\omega \omega }(\exists_2) \)  выразить утверждение о существовании двух различных множеств мощности не менее 2, элементы которых удовлетворяют \(P(x)\)? Рассмотрим такое предложение: 

              (*)           \(\varphi_1 =  \exists_2 x \exists_2 y (P(x) \& P(y)) = \exists_2 x \exists_2 y (A_P(x,y)) \)

              Если предложение (*) выполняется на некоторой модели \( \mathfrak{L}\), то это означает лишь, что найдутся минимум два различных элемента в \(A\), удовлетворяющие \(P(\cdot ) \), поскольку никто не запрещает нам подставлять в формулу \( A_P(x,y)=(P(x) \& P(y))  \) одинаковые элементы. Это не совсем то, чего мы могли бы ожидать в связи с введением в рассмотрение нестандартного квантора. Попробуем теперь воспользоваться для совершенствования формулы (*)  отношением равенства, удовлетворяющего всем аксиомам равенства из списка выше. Рассмотрим формулу

              (**)           \( \varphi_2=\exists_2 x \exists_2 y (P(x) \& P(y) \& \neg (x=y))= \exists_2 x \exists_2 y (A_P(x,y) \& \neg (x=y)) \)

              Однако для любой модели данная формула будет интерпретироваться несколько неожиданно: она будет справедлива, если в модели будет существовать по меньшей мере три различных элемента, удовлетворяющих \(P(\cdot) \). В самом деле, пусть \( \{a_1, a_2, a_3 \}\) - эти элементы в модели \(\mathfrak{A} \). Тогда, очевидно,  что

              \(\mathfrak{A} \models_{\mathfrak{L}} [A_P(a_1, a_2) \& A_P(a_1, a_3) \& \neg(a_2=a_3)] \).

              Следовательно, \(\mathfrak{A} \models_{\mathfrak{L}} \exists_2 y[A_P(a_1, y)] \). Но аналогично \(\mathfrak{A} \models_{\mathfrak{L}} \exists_2 y[A_P(a_2, y)] \) - здесь вместо \(y\) следует подставлять элементы \(a_1\) и \(a_3\). Но это означает, что \(\mathfrak{A} \models_{\mathfrak{L}} \exists x \exists y [A_P(x,y) \& \neg (x=y))] \)

              По сути, мы получили весьма тривиальный результат - для любой модели \(\mathfrak{A}\) предложение  \( \varphi_2\) выполняется на  \(\mathfrak{A}\) тогда и только тогда, когда в носителе модели \(A\) найдутся три или более различных элемента  таких, что на них выполняется \(P\). Другими словами

              \(\mathfrak{A} \models_{\mathfrak{L}} [\varphi_2]  \Leftrightarrow  \mathfrak{A} \models_{\mathfrak{L_3}} \exists_3 z[P(z)] \), где \( \mathfrak{L_3}=\mathfrak{L}_{\omega \omega }(\exists_3) \).

              Таким образом, конструкция вида (**) фактически позволила нам выполнить переход от предложений одной логики к предложениям другой логики, с совсем другими кванторами. А ведь мы только немного подкорректировали условие в формуле вида (*). Не трудно заметить, что добавляя и видоизменяя условия на переменные в формуле \( A_P(x,y)=(P(x) \& P(y))  \) , можно построить довольно сложные выражения, содержательный смысл которых может оказаться довольно неожиданным. Вся сложность скрывается в разумном связывании нескольких идущих друг за другом кванторов, причем здесь, в отличие от стандартной логики первого порядка, сделать это можно довольно разнообразными способами. 

              Если же посмотреть на формальное определение логики с нестандартными кванторами (унарными), то бросается в глаза, что условия на переменные совсем не обязаны формулироваться в терминах логики первого порядка, естественным подходом будет использование выражений, связанных с анализом подмножество в \(\wp(A)\). Чтобы показать это, перепишем условие (**), используя условия, работающие с подмножествами. Для каждой формулы \(P(x)\) в синтаксисе \(\mathfrak{L}\) , определим \([P(x_1, \cdots, x_k)]^{\mathfrak{A}} = \{<b_1, \cdots, b_k> \in A^k | (\mathfrak{A}, b_1, \cdots, b_k)  \models_{\mathfrak{L}} P(b_1, \cdots, b_k)\}\). Вспомним также, что с точки зрения теоретико-множественного подхода 

              (***)      \(QxP(x) \Leftrightarrow_{def}  \{b \in A | (\mathfrak{A}, b)  \models_{\mathfrak{L}} P(b) \} \in Q^{\mathfrak{A}}\).

              Пусть также \(\Phi(X,Y)\) - отношение на \(\wp(A) \times  \wp(A)\). Определим тогда связку двух кванторов \(Q_1\) и \(Q_2\) через отношение \(\Phi(X,Y)\) следующим образом: 

              (****)   \(Q_1xQ_2yA(x,y) \Leftrightarrow_{def}  \exists U_1 \forall a\in U_1 \exists U_a [ \forall y \in U_a A(a,y) \& \Phi(U_1, U_a)]\)

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

              1.   \( \exists_2 x \exists_2 y (A(x,y)) \Leftrightarrow \exists U_1 \exists U_2 [U_1 \in (\exists_2)^{\mathfrak{A}}  \&  U_2 \in  (\exists_2)^{\mathfrak{A}}  \& \forall x \in U_1 \forall y \in U_2[A(x,y))  \)

              для варианта (*), в котором фактически отсутствовали какие-либо ограничения на связи между элементами модели для подстановки в формулу \(A(x,y) \);

              2.  \(  \exists_2 x \exists_2 y (A(x,y)) \Leftrightarrow  \exists U_1 \forall a \in U_1 \exists U_a  [ U_1 \in (\exists_2)^{\mathfrak{A}}  \&  U_a \in  (\exists_2)^{\mathfrak{A}}  \& \forall y \in U_a  A(a,y) \& (U_1 \setminus U_a) \neq \varnothing) \& (U_a \setminus U_1 \neq \varnothing)]\)

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

              Получается, что использование аксиом равенства и построение сложных логических конструкций на их базе возможно обойти, используя конструкции вида (***). Более того, подход с использованием множеств для нестандартных кванторов является более многообещающим, поскольку предикаты, определенные на множествах, позволяют описывать значительно большее число вариантов объединения подряд идущих кванторов, нежели только конструкции, работающие с элементами множеств, как в логике первого порядка. Фактический переход к логике второго порядка позволяет строить и исследовать сложные соотношения между нестандартными кванторами в формулах логики на основе исчисления высказываний, но уже без обязательной опоры на аксиомы равенства. 
              Также хотелось бы заметить, что для большинства объединений цепочек кванторов на основе предикатов вида \(\Phi(X_1, \cdots, X_k)\) как отношений на \(\wp(A)^k\) результат может существенно зависеть от порядка объединения предикатов. Отношения на \(\wp(A)^k\), которые дают такой эффект, на первый взгляд выглядят несколько странными и вопрос целесообразности их исследований  является открытым. Но можно заметить, что "естественные" предикаты \(\Phi(X_1, \cdots, X_k)\) , подобные тем, которые были определены в соотношениях 1. и 2. выше,  делают определение объединения цепочек кванторов независимым от порядка объединения (фактически, операция объединения цепочек кванторов оказывается ассоциативной). Можно надеяться, что все содержательные операции объединения кванторов через предикаты на множествах, также будут обладать таким естественным для нас свойством ассоциативности.

              [ Modified: Saturday, 5 February 2022, 9:20 AM ]

              Comments