В рамках проекта ZeroNet развивается децентрализованная web-платформа, которая предлагает использовать механизмы адресации и верификации Bitcoin и технологии распределённой доставки BitTorrent, что позволяет создавать сайты которые невозможно подвергнуть цензуре, подделать или заблокировать. Содержимое сайтов хранится в P2P-сети на машинах посетителей, для адресации используются система альтернативных корневых DNS-серверов Namecoin, а содержимое проверяется по цифровой подписи владельца. Проект написан на языке Python и распространяется под лицензией GPLv2.
Размещаемые на сайте данные верифицированы и привязаны к одному аккаунту владельца сайта, работа которого организована по аналогии с привязкой кошельков Bitcoin, что также даёт возможность контролировать актуальность информации и обновлять контент в режиме реального времени. Для скрытия IP-адресов может использоваться анонимная сеть Tor, поддержка которой встроена в ZeroNet. После открытия сайта, просмотренные страницы оседают в кэше на локальной машине и становятся доступны для раздачи по аналогии с раздачей файлов, загруженных через BitTorrent.
Для просмотра сайтов ZeroNet достаточно запустить скрипт zeronet.py, после чего в браузере можно открывать сайты через URL “http://127.0.0.1:43110/адрес_zeronet” (например, “http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NMH3PMwF3qbebTf1D”). При открытии сайта программа находит ближайших peer-ов и загружает связанные с запрошенной страницей файлы (html, css, картинки и т.п.). После загрузки данные файлы становятся доступны для раздачи с текущей машины, т.е. пользователь начинает участвовать в раздаче всех сайтов к которым обращался.
Для создания своего сайта достаточно запустить команду “zeronet.py siteCreate” после чего будет сгенерирован идентификатор сайта и закрытый ключ для подтверждения авторства по цифровой подписи. Для созданного сайта будет сформирована пустая директория вида “data/1HeLLo4uzjaLetFx6NMH3PMwF3qbebTf1D”. После изменения содержимого данной директории, требуется заверение новой версии при помощи команды “zeronet.py siteSign идентификатор_сайта” и введения закрытого ключа. Как только новое содержимое будет заверено, требуется анонсировать его командой “zeronet.py sitePublish идентификатор_сайта”, чтобы изменённый вариант стал доступен peer-ам (для анонса изменений используется API WebSocket). По цепочке peer-ы проверят целостность новой версии по цифровой подписи, загрузят новое содержимое и передадут другим peer-ам.
Основные возможности:
- Отсутствие единой точки отказа – сайт остаётся доступен, если в раздаче имеется хотя бы один peer;
- Отсутствие эталонного хранилища сайта – сайт невозможно закрыть отключив хостинг, так как данные размещены на всех машинах посетителей;
- Вся ранее просмотренная информация имеется в кэше и доступна с текущей машины в режиме offline, без выхода в Сеть.
- Поддержка обновления содержимого в режиме реального времени;
- Возможность адресации через регистрацию домена в зоне “.bit”;
- Работа из коробки – достаточно распаковать архив с ПО и запустить один скрипт, без предварительной настройки;
- Возможность клонирования сайтов в один клик;
- Беспарольная авторизация на основе формата BIP32: учётная запись защищена тем же криптографическим методом, что и криптовалюта Bitcoin;
- Встроенный SQL-сервер с функциями P2P-синхронизации данных;
- Полная поддержка использования скрытых сервисов Tor (.onion) вместо IPv4-адресов;
- Поддержка TLS-шифрования;
- Автоматическая доступность через uPnP;
- Возможность прикрепление к сайту нескольких авторов, имеющих разные цифровые подписи;
- Наличие плагина для создания многопользовательских конфигураций (openproxy);
- Поддержка трансляции новостных лент;
- Работа в любых браузерах и операционных системах;
В планах на будущее поддержка разбиения больших файлов на части, интеграция средств сжатия данных, создание приватных сайтов (доступ только при наличии закрытого ключа), поддержка сети I2P, адаптация для размещения социальных сетей, интернет-магазинов, новостных сайтов и сервисов совместной разработки. В качестве примеров сайтов, которые уже можно создавать в ZeroNet, отмечаются доски объявлений, блоги, системы обмена сообщений и чаты (обмен сообщениями организован на основе криптографии по открытым ключам). В сети ZeroNet также уже начали появляться крупные torrent-каталоги, например, запущен сайт “Play”, который представляет собой каталог magnet-ссылок, построенный на основе архива RARBG.