InterPlanetary File System (IPFS) | Definition und Funktionsweise

Das InterPlanetary File System (IPFS) ist ein Netzwerk und Protokoll zur Erstellung einer inhaltsadressierbaren Peer-to-Peer-Methode zur Speicherung und Freigabe von Hypermedien in einem verteilt aufgebauten Dateisystem. IPFS wurde von Juan Benet erdacht und ist heute ein Open-Source-Projekt, das mit Hilfe einer Community entwickelt wird.

InterPlanetary File System (IPFS) Logo
InterPlanetary File System (IPFS) Logo @wikipedia.org

Was ist das InterPlanetary File System?

IPFS ist ein verteiltes Peer-to-Peer-Dateisystem, das versucht, alle Computergeräte mit dem gleichen Dateisystem zu verbinden. In gewisser Weise ähnelt IPFS dem World Wide Web, aber IPFS könnte als ein einzelner BitTorrent-Schwarm betrachtet werden, der Objekte innerhalb eines Git-Repositories austauscht. Mit anderen Worten, IPFS bietet ein Hochdurchsatz-Blockspeichermodell mit inhaltsadressierten Hyperlinks. Dies bildet einen verallgemeinerten Merkle-orientierten azyklischen Graphen (DAG).

IPFS kombiniert eine verteilte Hash-Tabelle, einen anreizgesteuerten Blockaustausch und einen selbstzertifizierenden Namensraum. IPFS hat keinen Single Point of Failure und Knoten müssen sich nicht gegenseitig vertrauen, außer denjenigen Knoten, mit dem sie verbunden sind.

Distributed Content Delivery spart Bandbreite und verhindert DDoS-Angriffe, mit denen HTTP zu kämpfen hat. Auf das Dateisystem kann auf verschiedene Weise zugegriffen werden, unter anderem über FUSE und über HTTP. Eine lokale Datei kann dem IPFS-Dateisystem hinzugefügt werden, um sie der Welt zur Verfügung zu stellen.

Dateien werden durch ihre Hashes identifiziert, daher ist es Caching-freundlich. Andere Benutzer, die den Inhalt ansehen, helfen dabei, den Inhalt anderen im Netzwerk zur Verfügung zu stellen. IPFS hat einen Namensservice namens IPNS, einen globalen Namensraum auf PKI-Basis. Er dient zum Aufbau von Vertrauensketten, ist kompatibel mit anderen NSes und kann DNS, .onion, .bit, etc. auf IPNS mappen.

https://www.youtube.com/watch?v=6kqgsGXpykM
Video

IPFS Versionskontrollsysteme

Ein weiteres mächtiges Merkmal der Merkle DAG-Struktur ist die Möglichkeit, ein verteiltes Versionskontrollsystem (VCS) aufzubauen. Das beliebteste Beispiel dafür ist Github, das es Entwicklern ermöglicht, gleichzeitig an Projekten zu arbeiten. Dateien auf Github werden mit einem Merkle DAG gespeichert und versioniert. Es erlaubt Benutzern, mehrere Versionen einer Datei unabhängig voneinander zu duplizieren und zu bearbeiten, diese Versionen zu speichern und später Änderungen mit der Originaldatei zusammenzuführen.

IPFS verwendet ein ähnliches Modell für Datenobjekte: Solange Objekte, die den Originaldaten entsprechen, und alle neuen Versionen zugänglich sind, kann die gesamte Dateihistorie abgerufen werden. Da Datenblöcke lokal im Netzwerk gespeichert werden und unbegrenzt zwischengespeichert werden können, bedeutet dies, dass IPFS-Objekte dauerhaft gespeichert werden können.

Außerdem ist IPFS nicht auf den Zugriff auf Internet-Protokolle angewiesen. Daten können in Overlay-Netzwerken verteilt werden, die einfach auf einem anderen Netzwerk aufgebaut sind. Diese Eigenschaften sind bemerkenswert, weil sie Kernelemente für ein zensurresistentes Netz sind. Es könnte ein nützliches Instrument zur Förderung der freien Meinungsäußerung sein, um der weltweiten Verbreitung der Internet-Zensur entgegenzuwirken.

Selbstzertifizierendes Dateisystem

Die letzte wesentliche Komponente von IPFS ist das Self-certifying File System (SFS). Es ist ein verteiltes Dateisystem, das keine speziellen Berechtigungen für den Datenaustausch benötigt. Es ist „selbstzertifizierend“, da die Daten, die einem Client zur Verfügung gestellt werden, durch den Dateinamen (der vom Server signiert wird) authentifiziert werden. Das Ergebnis? Nutzer können mit der Transparenz des lokalen Speichers sicher auf entfernte Inhalte zugreifen.

IPFS baut auf diesem Konzept auf, um den InterPlanetary Name Space (IPNS) zu schaffen. Es ist ein SFS, das Public-Key-Kryptographie zur Selbstzertifizierung von Objekten verwendet, die von Benutzern des Netzwerks veröffentlicht wurden. Alle Objekte auf IPFS können eindeutig identifiziert werden; dies gilt aber auch für Knoten. Jeder Knoten im Netzwerk hat einen Satz öffentlicher Schlüssel, private Schlüssel und eine Knoten-ID, die der Hash seines öffentlichen Schlüssels ist. Knoten können daher ihre privaten Schlüssel verwenden, um Datenobjekte, die sie veröffentlichen, zu signieren und die Authentizität dieser Daten kann anhand des öffentlichen Schlüssels des Absenders überprüft werden.

Hier eine kurze Zusammenfassung der wichtigsten Komponenten:

  • Mit der Distributed Hash Table können Knoten Daten ohne zentrale Koordination speichern und gemeinsam nutzen
  • Es ermöglicht die sofortige Vorauthentifizierung und Verifizierung der ausgetauschten Daten mittels Public-Key-Kryptographie
  • Die Merkle DAG ermöglicht eindeutig identifizierte, manipulationssichere und dauerhaft gespeicherte Daten
  • Nutzer können über das Versionskontrollsystem auf frühere Versionen der bearbeiteten Daten zugreifen
  • Einfacher konzeptioneller Rahmen