Файловая система Owner -Free ( OFF System , или сокращенно OFFS ) — это распределенная одноранговая файловая система , в которой все общие файлы представлены рандомизированными многоиспользуемыми блоками данных. Вместо анонимизации сети, блоки данных анонимизируются, и поэтому только мусор данных когда-либо обменивается и хранится, и не требуется пересылка через промежуточные узлы. OFFS утверждает, что была создана с явным намерением «отсечь некоторые зараженные гангреной части индустрии авторских прав». [1]
История
Разработка OFFS началась в хактивистской группе The Big Hack в 2003 году хакерами Cheater512 , CaptainMorgan, Aqlo и WhiteRaven. В 2004 году была завершена элементарная версия, написанная на PHP, которая распространялась в виде двух демонстрационных CD. После этого SpectralMorning повторно реализовал функционал в 2004 году на C++ , что привело к появлению текущего "основного" клиента OFFS .
14 августа 2006 года CaptainMorgan опубликовал письмо о «закрытии», адресованное «Ассоциациям индустрии авторского права Америки», таким как RIAA и MPAA , в котором говорилось, что они создали OFFS с целью положить конец «всем вашим проблемам с нарушением авторских прав потребителей». [2]
Сегодня мы анонсируем массово распространяемую файловую систему без копирования. Место, где весь контент доступен мгновенно, анонимно и всем, без нарушения каких-либо законов. Сегодня мы анонсируем файловую систему без владельца. Островок здравомыслия в вашем море безумия.
В 2008 году сеть состояла из около 50 узлов . 11 апреля 2008 года был проведен бета-тест [3] с размером сети более 100 узлов. Поскольку SpectralMorning прекратил работу над OFFS в конце 2008 года, для основной ветки OFF были выпущены только небольшие исправления ошибок .
Начиная с 2007 года был разработан альтернативный, но совместимый клиент под названием BlocksNet. Написанный на Ruby и хорошо поддерживаемый, он претерпел значительные улучшения за последнее время. Он находился в разработке до 2011 года. [4]
Клиент OFFLoad — это ответвление от основной ветки OFFS , которое, по-видимому, не добавляет никаких функций. Причины ответвления неясны. Другая отдаленно связанная программа — Monolith, которая использует схожий с OFFS принцип . Она была создана после OFFS и не имеет многоцелевого использования блоков и сетей.
Принцип действия
Система OFF — это своего рода анонимная, полностью децентрализованная программа и сеть обмена файлами P2P. В отличие от других анонимных сетей обмена файлами, которые получают свою анонимность за счет пересылки своих блоков данных через промежуточные сетевые узлы, система OFFS получает свою анонимность за счет анонимизации файлов данных. [5] Таким образом, система называет себя brightnet, чтобы противопоставить свой метод работы методам частных систем обмена файлами, известных как darknet , и традиционным программам P2P, пересылающим анонимные данные.
Процедура хранения
Чтобы сохранить файл в локальном хранилище OFFS, соответственно в блочном кэше , выберите размер кортежа (по умолчанию 3), разбейте исходный файл на блоки размером 128 КБ (заполните их случайными данными) и для каждого выполните следующие действия:
Выберите блоки для использования в качестве блоков рандомизаторов, или, короче, рандомизаторов , из существующего кэша OFFS, которые не использовались в предыдущих итерациях. Если в кэше недостаточно рандомизаторов, сгенерируйте их с помощью генератора случайных чисел.
Вычислить и сохранить полученный блок в кэше, выполнив операцию XOR .
Обновите список дескрипторов , содержащий информацию о том, как восстановить каждый исходный блок , новой записью, которая представляет собой набор размером : .
Наконец, сохраните список дескрипторов в отдельном блоке (или блоках, если список больше 128 КБ) и вставьте эти блоки в кэш блоков, а также сгенерируйте URL-адрес OFFS для ссылки на исходный файл и выведите его пользователю или в локальную базу данных URL-адресов OFFS .
Процедура получения
Для извлечения получите блок или блоки дескриптора и для каждого содержащегося набора размера выполните следующие действия:
Получите перечисленные блоки . Хотя на данный момент они уже не имеют никакой идентичности, их можно назвать .
Выполнить и вывести полученный исходный блок данных в программу просмотра или в хранилище.
Анонимность
Анонимность OFFS обусловлена следующим:
В кэше блоков не хранится содержимое исходного файла, а только блоки, состоящие из, вероятно, случайных данных.
Поиск содержимого исходного файла в сети не производится.
Содержимое исходного файла по сети не передается.
(Ни один блок в кэше сам по себе не является объектом авторского права, поскольку числа — какими бы большими они ни были — не могут быть объектом авторского права (как и небольшие части произведения, защищенного авторским правом).)
Первоначальный загрузчик остается неизвестным, поскольку блоки разбросаны по сети, и поэтому загрузка осуществляется из нескольких источников.
Во время рассеивания использование блока не может быть указано, поскольку блоки повторно используются в других контекстах для повторной сборки других блоков исходного файла. (TODO, которое справедливо также для извлечения)
(Ни один блок не может быть защищен авторским правом без логических противоречий, поскольку блоки, используемые для повторной сборки исходного файла, повторно используются для повторной сборки других исходных файловых блоков. Невозможно решить, кто будет иметь авторские права на блок, который имеет несколько значений. Каждый будет иметь авторские права на все.)
Если используется функция поиска OFF -internal, поисковые термины не отслеживаются до их создателя, поскольку поисковый запрос пересылается на следующий узел, а его результаты возвращаются на этот узел, а не напрямую создателю. Таким образом, невозможно решить, является ли узел исходным узлом или узлом, выполняющим поисковый запрос от имени другого узла.
TODO добавить цифровое примечание об авторских правах
Эффективность
Поскольку OFFS анонимизирует обмениваемые блоки данных вместо сети, не требуется пересылка через промежуточные узлы. Поэтому этот метод имеет более высокую степень эффективности, чем традиционные анонимные P2P-системы на основе пересылки.
Метод пересылки требует, чтобы блок данных загружался и скачивался несколько раз, прежде чем он достигнет пункта назначения, что происходит от 5 до 15 раз [6], что, согласно полученной формуле , эквивалентно накладным расходам от 900 до 2900%, в то время как накладные расходы OFFS без оптимизации составляют около 200%. ( — это размер исходного файла, длина входящего туннеля и длина исходящего туннеля. Плюс 1 для перехода между исходящей конечной точкой и входящим шлюзом .)
Эффективность может быть дополнительно повышена:
Повторно использовать некоторые из блоков результата и блоков рандомизатора , что снижает накладные расходы до , [7] где — размер исходного файла, размер кортежа и процент несвязанных блоков, используемых на этапе рандомизации во время процедуры сохранения. По умолчанию выбирается 75 (и выбирается 3), что приводит к накладным расходам в 150%.
Если некоторые из блоков, необходимых для полного извлечения или повторной сборки исходного файла, уже присутствуют в кэше блоков из других передач или сохраненных файлов из-за многоцелевого характера блоков OFFS , степень эффективности еще больше возрастает.
Использование функции целевого хранилища приводит к тому, что блоки определенных других файлов выбираются в качестве рандомизаторов для этого файла с большей вероятностью и, следовательно, к снижению накладных расходов. Это особенно полезно при хранении группы связанных файлов.
^ "Заключительное письмо Ассоциации индустрии авторских прав Америки :: Большой взлом :: О номерах, охраняемых авторским правом, с приложением к gesetzklageproblem". Архивировано из оригинала 20-07-2011 . Получено 16-08-2006 .«Заключительное письмо Ассоциации индустрии авторских прав Америки» — представляющее публичный релиз системы OFF
^ http://board.planetpeer.de/index.php/topic,4407.0.html Объявление о бета-тестировании 2008-04-11 planetpeer.de и разработчика OFF Spectral Morning
^ «БлоксНет».
^ http://sourceforge.net/projects/offsystem/ Домашняя страница OFF System - техническая часть
^ http://www.i2p2.de/how_tunnelrouting Объяснение длины туннеля в I2P и его настроек по умолчанию см. в разделе «Параметры I2CP»
^ http://sourceforge.net/projects/offsystem/ Исходный код OFF System и переписка разработчиков
О числах, охраняемых авторским правом, в приложении к Gesetzklagegproblem - Подробное объяснение математических принципов, лежащих в основе системы OFF. (pdf)
Форум поддержки OFF System (на немецком языке) Форум поддержки OFF System.
Форум поддержки OFF System (английский) Форум поддержки OFF System.
Реализации OFF:
Система OFF (эталонная реализация)
OFFLoad
BlocksNet (вторичный репозиторий, архив 2010-03-28 на Wayback Machine )