IPFS вместо HTTP — будущее децентрализованного интернета?
Главное
- IPFS (InterPlanetary File System) — протокол связи для создания распределенной файловой системы, призванный заменить существующий интернет-протокол HTTP. Контент, размещенный в IPFS, хранится не на одном сервере, а на множестве узлов.
- IPFS — важное инфраструктурное решение для Web3, которое позволяет децентрализовать хранение данных в различных децентрализованных приложениях, включая NFT, GameFi, DeFi.
- В дальнейшем IPFS может полностью изменить принцип хранения данных в сети и доступ к ним, решив проблему цензуры и монополии популярных облачных платформ, которые предоставляют Google, Amazon, Alibaba, Microsoft и другие техгиганты.
Чем IPFS отличается от HTTP
IPFS (InterPlanetary File System, «Межпланетная файловая система») — это гипермедийный протокол связи с открытым кодом, с помощью которого компьютерные узлы осуществляют хранение и распространение данных в единой распределенной файловой системе.
Ключевое отличие IPFS от существующего интернет-протокола HTTP в том, что доступ к данным осуществляется не по местоположению сайта, а напрямую по адресу его содержимого (файлу, документу, изображению, папке).
Cтруктура хранения данных в IPFS децентрализованна, что позволяет решить проблему цензуры. Автор решения — основатель и глава американского стартапа Protocol Labs Хуан Бенет — назвал IPFS «распределенным постоянным вебом», имея в виду, что размещенный в системе сайт никогда и никем не может быть закрыт.
«В некотором смысле IPFS похожа на Интернет, но IPFS можно рассматривать как единый рой BitTorrent, обменивающийся объектами в одном репозитории Git. Другими словами, IPFS представляет высокопроизводительную модель хранилища блоков с контентно-адресуемыми гиперссылками», — пояснил он в white paper проекта.
В IPFS адреса указывают на файлы или данные, полученные из содержимого самого файла или данных с помощью хэшировашия. Это значит, что контент веб-сайтов в сети IPFS можно перемещать и получать к нему доступ децентрализованным способом в одноранговой сети.
Простыми словами IPFS — это аналог торрент-трекера, в котором некоторое количество узлов (компьютеров) свободно делятся хранящимися на них файлами, таким образом распространяя их по всей сети с возможностью получения свободного доступа.
Таким образом, IPFS решает проблемы HTTP, который направляет весь трафик через централизованные сервера, что приводит к дополнительным расходам и рискам массовых отключений из-за проблем с сервером. Сеть IPFS позволяет узлам загружать и передавать файлы не только с одного сервера, как это реализовано в HTTP, а из многих узлов одновременно. Когда пользователь в сети IPFS запрашивает файл, сеть IPFS находит узлы, у которых есть необходимые хэши, и извлекает данные.
Кто и когда разработал IPFS
Автором IPFS стал основатель американской компании Protocol Labs Хуан Бенет. Публикация технической документации новой файловой системы состоялась в июле 2014 года.
Первый релиз протокола состоялся в феврале 2014 года. Первым крупным сайтом в сентябре 2015 года, использующим распределенный веб IPFS, стал бесплатный веб-хостинг Neocities, позволяющий создавать мини-сайты на своей платформе.
Следующим важным моментом в истории развития IPFS стало ICO Filecoin на $257 млн. Продажа токенов проходила на платформе Coinlist, которую основала Protocol Labs совместно с AngelList. Как отметили тогда разработчики, целью Filecoin было создать экономические стимулы для пользователей IPFS c помощью криптовалюты.
В июне 2019 году Protocol Labs организовала первое IPFS-мероприятие в Барселоне, результатом которого стало сотрудничество с Netflix, а также с Opera, Microsoft и Cloudflare.
Не менее важным событием стал запуск основной сети Filecoin в октябре 2020 года. По заявлению команды Protocol Labs, это позволило создать уровень принятия IPFS со встроенными экономическими стимулами.
Как работает IPFS — подробное объяснение
При загрузке контента в IPFS адрес для доступа к объекту, файлу или пользовательским данным в системе формируется с привязкой не к адресу сервера, которым является IP-адрес, а к его уникальному криптографическому хешу-идентификатору Content Identifier (CID).
При повторной загрузке файла CID не меняется, а обновленным версиям файла присваиваются новые хеш-идентификаторы. Чтобы получить доступ к ранней версии файла, применяется сервис имен InterPlanetary Naming System (IPNS) — аналог реестра DNS.
Файлы IPFS размером свыше 256 Кб разбиваются на части, хешируются и организовываются в IPLD-объекты (InterPlanetary Linked Data). IPLD состоит из двух компонентов: самих данных и ссылок на части файла, связанных между собой через направленный ациклический граф дерева Меркла (Merkle DAG).
Затем в дело вступает специальная программа IPFS-дэймон (IPFS daemon), отвечающая за коммуникации в системе. Она временно кэширует данные, либо по выбору пользователя «прикрепляет» их к себе и по запросу раздает другим узлам. В дальнейшем такие ноды могут выполнять функции провайдеров контента или остаться его получателями.
После запроса контента в распределенной хеш-таблице (Distributed Hash Table, DHT) системы проводится поиск ближайших к пользователю узлов с копией искомых данных. Именно они отдают части файла.
Где используется IPFS
Согласно статистике сервиса BuiltWith, на 5 октября 2022 года IPFS используют около 6 500 сайтов по всему миру. Из них чуть менее трети расположены в США. В этот список входят децентрализованная биржа Uniswap, сервис данных о децентрализованных приложениях Dapp Radar и платформа для криптовалютных стартапов DAO Maker.
Первым веб-ресурсом с поддержкой IPFS в 2015 году стал хостинг-сервис Neocities. Крупнейший провайдер сетевых услуг Cloudflare начал использовать IPFS в 2018 году и запустил собственный шлюз в системе в 2022-м. В марте 2020 года браузер Opera предоставил доступ к децентрализованным ресурсам провайдера Unstoppable Domains, разместив контент в IPFS. В начале 2021 году протокол интегрировал криптобраузер Brave.
Технология IPFS стала использоваться как ответ на цензуру со стороны регуляторов. Первым примером стала загрузка в IPFS турецкой версии Wikipedia. Весной 2019 года в ответ на арест Ассанжа активисты загрузили в IPFS архив WikiLeaks.
IPFS также используется для хранения кода. Это практикует, например, команда децентрализованной биржи Uniswap, которая размещает в IPFS.
IPFS также выступает важным инфраструктурным слоем Web3, поддерживая работу NFT-проектов, децентрализованных приложений и других ресурсов. Появились специальные компании, предоставляющие услуги по управлению файлами в IPFS. Например, платформа Pinata позволяет монетизировать медиафайлы для NFT, выпущенных в разных блокчейнах, включая Ethereum, Solana, Polygon, Avalanche и Algorand.
Как открыть IPFS-ссылку
Многие популярные браузеры, такие как Opera и Brave, уже добавили нативную поддержку IPFS-ссылок. Это значит, что вы сможете открыть в указанных браузерах сайты через адрес с префиксом ipfs://, например:
ipfs://bafybeiaysi4s6lnjev27ln5icwm6tueaw2vdykrtjkwiphwekaywqhcjze/wiki/
Однако в Google Chrome такая ссылка не откроется. Вместо этого для доступа к ресурсу придется использовать существующий протокол HTTPS вместе с адресом сайта, где хранится файл, например:
https://ipfs.io/ipfs/bafybeiaysi4s6lnjev27ln5icwm6tueaw2vdykrtjkwiphwekaywqhcjze/wiki/
Чтобы напрямую открывать IPFS-ссылки в Google Chrome, потребуется установить специальное расширение IPFS Companion. Для корректной работы расширения разработчики рекомендуют установить собственный узел IPFS на свой компьютер. Чтобы это сделать, нужно зайти в раздел IPFS Desktop на официальном сайте IPFS и следовать простым указаниям, предварительно выбрав подходящую платформу: Windows, macOS или Ubuntu.
Команда Protocol Labs также позаботилась и о владельцах доменов и сайтов, планирующих перенести свои веб-ресурсы на IPFS. Разработан специальный сервис загрузки Fleek, который позволяет перенести и настроить сайты без необходимости устанавливать что-либо на свой компьютер и разбираться с командной строкой или кодом.
Что еще почитать
Алгоритм консенсуса Proof-of-Stake (PoS): как он работает и почему так популярен?
Что такое блокчейн и криптовалюта NEAR Protocol?
Что такое Ethereum Name Service (ENS)?
Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!