IPFS zamiast HTTP – przyszłość zdecentralizowanego Internetu?

IPFS (InterPlanetary File System) to protokół komunikacyjny służący do tworzenia rozproszonego systemu plików, który ma zastąpić dotychczasowy protokół internetowy HTTP. Zawartość hostowana na IPFS nie jest przechowywana na jednym serwerze, ale na wielu hostach.

IPFS jest ważnym rozwiązaniem infrastrukturalnym dla Web3. Umożliwia ono zdecentralizowane przechowywanie danych w różnych zdecentralizowanych aplikacjach, w tym NFT, GameFi i DeFi.

W przyszłości IPFS może całkowicie zmienić sposób przechowywania i dostępu do danych w sieci. Rozwiąże bowiem problem cenzury i monopolu popularnych platform chmurowych dostarczanych przez gigantów technologicznych takich jak:

  • Google,
  • Amazon,
  • Alibaba,
  • Microsoft i innych

Czym różni się IPFS od HTTP?

IPFS (InterPlanetary File System) to open-source’owy, oparty na hipermediach protokół komunikacyjny, za pomocą którego węzły komputerowe przechowują i dystrybuują dane w jednym, rozproszonym systemie plików.

Kluczowa różnica pomiędzy IPFS a istniejącym protokołem internetowym HTTP polega na tym, że dostęp do danych odbywa się nie poprzez lokalizację strony, ale bezpośrednio poprzez adres jej zawartości (pliku, dokumentu, obrazu, folderu).

http vs ipfs

Różnice między strukturą komunikacji w HTTP i IPFS. Źródło: Medium

Struktura przechowywania danych w IPFS jest zdecentralizowana, co rozwiązuje problem cenzury. Autor rozwiązania, Juan Benet, założyciel i szef amerykańskiego start-upu Protocol Labs, nazwał IPFS „rozproszoną trwałą siecią”, co oznacza, że strona internetowa hostowana w tym systemie nie może być nigdy przez nikogo wyłączona. W białej księdze projektu możemy przeczytać:

W pewnym sensie IPFS jest podobny do Internetu, ale IPFS można postrzegać jako pojedynczy rejestr BitTorrent wymieniający obiekty w jednym repozytorium Git. Innymi słowy, IPFS to model wysokowydajnej pamięci blokowej z hiperłączami adresowalnymi do treści.

W IPFS adresy wskazują na pliki lub dane uzyskane z zawartości pliku lub samych danych poprzez hashowanie. Oznacza to, że zawartość stron internetowych w sieci IPFS może być przemieszczana i dostępna w sposób zdecentralizowany w sieci peer-to-peer.

W uproszczeniu IPFS jest odpowiednikiem trackera torrentowego, w którym pewna liczba węzłów (komputerów) swobodnie dzieli się przechowywanymi na nich plikami, rozprzestrzeniając je w ten sposób za darmo po sieci.

W ten sposób IPFS rozwiązuje problemy protokołu HTTP. Ten drugi kieruje cały ruch przez scentralizowane serwery, co prowadzi do dodatkowych kosztów i ryzyka masowych wyłączeń z powodu problemów z serwerami. Sieć IPFS pozwala węzłom na pobieranie i przesyłanie plików nie tylko z pojedynczego serwera, jak to jest zaimplementowane w HTTP. Ale takkże z wielu węzłów jednocześnie. Kiedy użytkownik w sieci IPFS zażąda pliku, sieć IPFS znajdzie hosty z niezbędnymi hashami i wyodrębni dane.

Kto i kiedy opracował IPFS?

Autorem IPFS jest Juan Benet, założyciel amerykańskiej firmy Protocol Labs. Dokumentacja techniczna nowego systemu plików została opublikowana w lipcu 2014 roku.

Pierwsze wydanie protokołu miało miejsce w lutym 2014 r. Pierwszym dużym portalem internetowym, który wykorzystał rozproszoną sieć IPFS we wrześniu 2015 roku, był darmowy serwis hostingowy Neocities. Umożliwia on tworzenie mini witryn na swojej platformie.

Kolejnym kamieniem milowym w historii rozwoju IPFS było ICO Filecoin o wartości 257 milionów dolarów. Zostało ono zorganizowane na platformie Coinlist, założonej przez Protocol Labs we współpracy z AngelList. Jak zauważyli wówczas twórcy, celem Filecoin było stworzenie bodźców ekonomicznych dla użytkowników IPFS za pomocą kryptowaluty.

W czerwcu 2019 roku Protocol Labs zorganizowało pierwsze wydarzenie IPFS w Barcelonie, które zaowocowało współpracą z Netflixem, a także Operą, Microsoftem i Cloudflare.

Równie ważne było uruchomienie sieci głównej Filecoin w październiku 2020 roku. Według zespołu Protocol Labs, stworzyło to warstwę adopcyjną IPFS z wbudowanymi bodźcami ekonomicznymi.

Jak działa IPFS – szczegółowe wyjaśnienie

Gdy treść jest przesyłana do IPFS, adres dostępu do obiektu, pliku lub danych użytkownika w systemie jest generowany w odniesieniu do jego unikalnego kryptograficznego hasha Content Identifier (CID). Nie do adresu serwera, którym jest adres IP.

Kiedy plik jest ponownie załadowany, CID nie zmienia się, a nowe identyfikatory hash są przypisywane do zaktualizowanych wersji pliku. Aby uzyskać dostęp do wcześniejszej wersji pliku, wykorzystuje się InterPlanetary Naming System (IPNS), odpowiednik rejestru DNS.

Pliki IPFS większe niż 256KB są partycjonowane, hashowane i organizowane w obiekty IPLD (InterPlanetary Linked Data). IPLD składa się z dwóch elementów:

  • samych danych
  • linków do części pliku połączonych ze sobą za pomocą skierowanego acyklicznego grafu drzewa Merkle (Merkle DAG).

Wtedy do akcji wkracza specjalny program IPFS daemon, odpowiedzialny za komunikację wewnątrz systemu. Tymczasowo buforuje dane, lub według wyboru użytkownika „przyczepia” je do siebie i na żądanie dystrybuuje do innych węzłów. Następnie węzły takie mogą działać jako dostawcy treści lub pozostać odbiorcami treści.

Po zgłoszeniu zapotrzebowania na treść, systemowa rozproszona tablica haseł (DHT) wyszukuje węzły z kopią pożądanych danych najbliżej użytkownika. To właśnie one oddają części pliku.

Gdzie stosowany jest IPFS?

Według statystyk BuiltWith, na dzień 5 października 2022 roku, na całym świecie jest około 6500 witryn korzystających z IPFS. Spośród nich nieco mniej niż jedna trzecia znajduje się w USA. Lista ta obejmuje m.in. zdecentralizowaną giełdę Uniswap, usługę Dapp Radar i platformę DAO Maker.

Pierwszym zasobem internetowym obsługującym IPFS w 2015 roku był serwis hostingowy Neocities. Cloudflare, główny dostawca usług sieciowych, zaczął korzystać z IPFS w 2018 roku, a w 2022 roku uruchomił własną bramę do systemu. W marcu 2020 r. przeglądarka Opera zapewniła dostęp do zdecentralizowanych zasobów dostawcy Unstoppable Domains, hostując treści na IPFS. Na początku 2021 roku protokół zintegrowała przeglądarka Brave.

Technologia IPFS zaczęła być wykorzystywana jako odpowiedź na cenzurę ze strony regulatorów. Pierwszym przykładem było wgranie tureckiej wersji Wikipedii do IPFS. Wiosną 2019 roku, w odpowiedzi na aresztowanie Assange’a, aktywiści przesłali archiwum WikiLeaks do IPFS.

IPFS jest również używany do przechowywania kodu. Jest to praktykowane na przykład przez zespół zdecentralizowanej giełdy Uniswap.

IPFS działa również jako ważna warstwa infrastrukturalna Web3, wspierając działanie projektów NFT, zdecentralizowanych aplikacji i innych zasobów. Pojawiły się dedykowane firmy, które świadczą usługi zarządzania plikami na IPFS. Na przykład platforma Pinata umożliwia monetyzację plików multimedialnych dla NFT emitowanych w różnych blockchainach. W tym Ethereum, Solana, Polygon, Avalanche i Algorand.

Jak otworzyć łącze IPFS?

Wiele popularnych przeglądarek, takich jak Opera i Brave, dodało już natywne wsparcie dla linków IPFS. Oznacza to, że w tych przeglądarkach będzie można otwierać strony poprzez prefiks ipfs://, np:

ipfs://bafybeiaysi4s6lnjev27ln5icwm6tueaw2vdykrtjkwiphwekaywqhcjze/wiki/

Taki link nie otworzy się jednak w Google Chrome. Zamiast tego będziesz musiał użyć istniejącego protokołu HTTPS, aby uzyskać dostęp do zasobu wraz z adresem strony, na której przechowywany jest plik, np:

https://ipfs.io/ipfs/bafybeiaysi4s6lnjev27ln5icwm6tueaw2vdykrtjkwiphwekaywqhcjze/wiki/

Aby bezpośrednio otwierać linki IPFS w Google Chrome, należy zainstalować specjalne rozszerzenie IPFS Companion. Aby działało poprawnie, twórcy zalecają zainstalowanie na komputerze własnego węzła IPFS. Żeby to zrobić, wystarczy odwiedzić sekcję IPFS Desktop na oficjalnej stronie IPFS i postępować zgodnie z prostymi instrukcjami, wybierając odpowiednią platformę: Windows, macOS lub Ubuntu.

Zespół Protocol Labs zadbał również o właścicieli domen i witryn, którzy planują migrację swoich zasobów internetowych do IPFS. Opracowano specjalną usługę Fleek, która umożliwia migrację i konfigurację witryn bez konieczności instalowania czegokolwiek na komputerze lub radzenia sobie z wierszem poleceń czy kodem.

Comments (No)

Leave a Reply