Meine Gedanken zu IPFS

in #ipfs7 years ago

Bevor ich mir einen Account auf Steemit erstellte, bin ich über die Technologie hinter d.tube gestolpert: IPFS

Und da stellt man sich natürlich die Frage: Was ist IPFS. IPFS ist eine Kampfansage an das HTTP-Protokoll - weg von der zentralen Verteilung hin zur dezentralen Verteilung von Inhalten. IPFS ist ein P2P Netzwerk.

Dazu kommen dann auch noch Gateways, die Zugang zum IPFS via HTTP(s) gewähren. In bestehenden Webapplikationen sind idR Zugangsdaten zu Datenbanken gespeichert. Darauf hat natürlich der Nutzer keinen Zugriff. Wenn nun aber die Webapplikation dezentral arbeitet, wie kann man sicheren Zugriff auf die dynamischen Daten erhalten? Die Antwort besteht darin keine üblichen Datenbankmanagementsysteme zu benutzen, sondern z.B. mit einer Blockchain. Nutzerzugänge müssten dann mit asymmetrischer Kryptografie gesichert werden: und siehe da - Steemit nutzt Public Key Authentification.

Das hat natürlich zur Folge, dass personenbezogene und private Daten in diesem Modell nicht oder zumindest nicht unverschlüsselt dezentral abgelegt werden sollten.

Was besonders fortschrittlich ist: ich kann mir einen eigenen IPFS Daemon installieren und über meinen lokalen IPFS d.tube Videos gucken. Das Webinterface erlaubt es mir, auf die eigene Instanz zuzugreifen.

Es bleiben aber zumindest bei mir ein paar Fragen offen:

Ein P2P Netzwerk lebt davon, dass Inhalte redundant im Netzwerk vorliegen. Nach meinem Verständnis speichert IPFS die Daten auf meiner lokalen Node ab und bietet sie gleichzeitig wieder an. Insbesondere bei Videos und teurem Cloudspeicher ist eine solche Relation zumindest nicht wirtschaftlich. Besonders interessant wenn ich ein Gateway betreiben möchte und d.tube damit unterstützen möchte. Bei einem TB an Speicher kann ich ca. 500 Videos á 2 GiB bereitstellen. Ab dann ist Schluss und ich müsste zumindest mein Dateisystem aufräumen.

Ein weiteres Problem ist das Vertrauen in die Inhalte. Immerhin verbreite ich mit meinem IPFS ja auch potenzielle Urheberrechtsverletzungen und evtl. strafrechtlich relevante Dateien. Und bei so etwas ist die deutsche Justiz immer sehr schnell bei einer Hausdurchsuchung. Prominenteste Beispiele sind da die Fälle um die Tor-Exit-Nodes. Wie kann ich mich also wirksam vor Missbrauch meiner IPFS Node schützen.

So wie es aktuell aussieht, ist es weder wirtschaftlich sinnvoll noch sicher im Bezug auf Strafrecht, Zivilrecht und AGB meiner Serveranbieter IPFS anzubieten.

Sort:  

Bei IPFS wirst du wenn du einen Node bereitstellst wohl nur Chunks und nicht komplette Dateien hosten, insofern wird man dich auch kaum wegen der Verbreitung urheberrechtlicher Dateien belangen können.

Wenn ich eine Datei als einziger seede, dann können die Chunks ja nur von meinem Rechner kommen.
Nichtsdestotrotz sieht das bei IPFS zu HTTP Gateways ja noch anders aus. Wobei ich noch untersuchen müsste, ob da nicht noch ein wenig JavaScript Magie passiert. Teilweise schon erstaunlich was man alles mit JS im Browser hinbekommt.

Andererseits gibt es auch Urteile aus der Richtung BitTorrent wo Leute abgemahnt wurden, die eben nur Auszüge und Chunks verteilt haben - berühmtestes Beispiel ist da Popcorn-Time als getarnter Torrent Client. Ich glaube nicht, dass die Leute es geschafft haben während der Filmlaufzeit den ganzen Film neu hochzuladen.

Ist IPFS nicht darauf ausgelegt Dateien maximal verfügbar zu halten? Wenn du eine Datei in IPFS schmeißt ist die wenn du deinen localhost deaktivierst trotzdem sofort über das Internet verfügbar, also bereits in anderen Nodes. Könnte höchstens sein dass du eine komplette Datei alleine seedest, wenn diese sehr klein, also ein paar Bytes groß ist, z.B. eine Textdatei. Klar, wenn das eine Bombenbauanleitung ist, könnte auch das schon rechtliche Probleme bereiten.

Davor schützen könnte ggf. ähnlich wie bei TOR ein Routing über mehrere Nodes oder Peers so dass garnicht bekannt ist, woher ein Chunk oder auch eine Datei kommt. Ob das bei IPFS der Fall ist, weiß ich jedoch nicht.

Aber ja, mein erster Gedanke war auch, ob der Betrieb eines IPFS Nodes rechtliche Probleme bereiten kann. Darum ist meine Hoffnung dass IPFS nicht nur dezentral, sondern auch verschlüsselt sein wird, zumindest im weiteren Entwicklunsverlauf.

Ist IPFS nicht darauf ausgelegt Dateien maximal verfügbar zu halten?

Nur kurzzeitig im Cache. Es steht jeder Node frei bestimmte Dateien zu pinnen was soviel bedeutet: Kopie der Datei bereithalten und seeden. Ich bin anfangs auch von etwas anderem ausgegangen.

Die Hashtabellen und die interne Namensauflösung sind ja öffentlich für jeden Teilnehmer verfügbar. Insofern macht es keinen Unterschied, ob ich eine Transportverschlüsselung einführe oder die Dateien auf den Datenträgern verschlüsselt sind. Und da sich das ganze im Internet mit IPv4 und IPv6 abspielt kann jeder sehen: Datei xy wird auf IP 1.2.3.4 gehostet - und diese IP gehört wiederum wem?

Bei TOR ist es ja Bestandteil des Konzeptes, dass kein Netzteilnehmer so richtig Zugriff auf das interne DNS hat. Keiner weiß welcher Rechner nun einen bestimmten Hidden Service hostet. Bei BitTorrent und IPFS ist das öffentlich einsehbar und auf öffentliche IPs verknüpft.

Unterm Strich heißt das:
Ich weiß zwar was bei mir auf der Platte liegt, ich habe aber keine Flusskontrolle, was ich für andere Teilnehmer cache. Für das Szenario: ich hoste nur meinen eigenen Kram ist das durchaus vertretbar.

Wenn ich jetzt aber anfange als kleine Firma für Fremde zu hosten / zu pinnen, dann habe ich evtl. ein viel größeres Problem.

Die Speicherung eines Videos ist außerdem nur für 57 Monate durch d.tube mit finanziellen Mitteln nach Upload gedeckt. Was danach mit dem Content passiert ist fraglich - insbesondere da die Nutzer ja eben gewohnt sind ihren Content vermeintlich kostenfrei auf Facebook und YouTube hochzuladen. Und hier soll das plötzlich Geld kosten oder ich muss meinen eigenen Server betreiben.

Zu den 57 Monaten bitte die Sektion IPFS Storage Costs durchlesen.

Für die Betreiber einer solchen föderalen Videoplattform heißt das: meine Abuse-Teams sitzen beim IPFS-Anbieter - ich biete ja nur die Oberfläche an. Die IS-Videos sind ja nacher auf dem Server des IPFS-Betreibers und der hat damit ein Problem. Auf der d.Tube Seite werden solche uncoolen Videos ganz einfach ausgeblendet - per IPFS sind sie aber noch abrufbar.

Ahja der DNS, stimmt da hast du natürlich recht. Danke für den ausführlichen Kommentar. Kann dazu nichts mehr ergänzen ohne mich weiter einzulesen :)

Hallo,

über die grundlegende Problematik habe ich mir auch schon meine Gedanken gemacht.

Zur Zeit ist das Thema für mich noch zu neu um hier abschließend Auskunft geben zu können.

Den SemperVideo-IPFS-Node den ich erstellt habe sollte perfekterweise "nur" die SemperVideos vorhalten. Ob das überhaupt geht weiß ich derzeit noch nicht. Wahrscheinlich läßt sich das nicht beschränken.

Wegen Urheberrechtsverletzungen und Porn mache ich mir aber keine großen sorgen. Das Problem könnte man ausklammern, wenn man seinen IPFS-Node ins Ausland schiebt. Also einen Server in CH anmieten und man hätte damit keine Probleme mehr.

Jetzt gibt es aber natürlich Material womit ich ebenfalls Probleme hätte. Ich denn das mal illegalen Porn oder Nazi-Kram. So etwas will natürlich keiner auf seinem Node haben.

Das Provider-Privileg schützt auch IPFS-Nodes. Genauso wie jemanden, der nur einen einfachen Proxy im Internet anbietet.

Aber bei den letzten beiden, wesentlich heikleren Themen schützt das Provider-Privileg nicht mehr so richtig.

Unser IPFS-Node läuft erstmal in der Testphase. Sobald ich mich in dem Thema schlau gemacht habe, wird dann entschieden wie es weiter geht.

Grüße,

Ein Video wie man soch einen Node erstellt wäre super :D
Würde auch mein Server zur Verfügung stellen, soweit man Speicherplatz und Bandbreite etwas einschränken könnte (damit andere Services weiterhin auf dem Server gut laufen)

Hallo,

ich bin durch eure Videos bezüglich Blockchain/ Dtube erst auf IPFS aufmerksam geworden und finde, dass das ein echt interessantes Thema ist - und ich bin entsetzt dass es dazu noch keinen Beitrag von euch gibt (Achtung Ironie)
Dann scheint das ja wirklich noch 'neues Neuland' zu sein. Bin gespannt, ob es von euch da in Zukunft noch ein interessantes Video zu gibt!
Ihr Jungs (und Mädels?!?) von SV macht in diesem Bereich echt spitzen Arbeit, wollte ich nur mal gesagt haben.
Ok

Wenn ich diesen Artikel richtig verstehe, kann man Videos auch über WebTorrent seeden und bei der modifizierten Version auch auswählen wessen Videos das sein sollen.

Mein geringer Upstream freut sich nicht so wirklich darauf. Das ist auf jeden Fall eine interessante Kostenumlage (Cloudflare, Github, Blockchain und P2P). Statt mit Werbung und Daten zu zahlen, kann der Nutzer auch mit seiner Bandbreite bzw. mit seinen Servern zahlen...

Hat den leicht säuerlichen Beigeschmack von JavaScript-Cryptominern. Bin auf jeden Fall gespannt in welche Richtung das eskaliert.

Ich wollte nur auf die Möglichkeit hinweisen, in der Annahme, dass es egal ist, ob die Videos nun im IPFS oder im Backup WebTorrent liegen.
@sempervideo zum Beispiel wird wohl kaum illegal Filme hochladen. Wenn ich also nur Dateien von @sempervideo seede, kann ich dort unterstützen, ohne Gefahren von rechtlicher Seite.

Was meinst du mit deinem letzten Absatz?

Korrigiere mich bitte, wenn ich falsch liege. In dem verlinkten Artikel steht sinngemäß: Wenn ich ein Video gucke, seede ich es gleichzeitig (unter gewissen Umständen) ungefragt und ohne Einwilligung über Webtorrent. Dazu auch der Vergleich mit den JS-Minern. (das eine belastet ungefragt meine CPU, das andere meinen Upstream).

Wenn du bewusst einwilligst, nur SemperVideos Videos zu seeden ist das natürlich etwas anderes.

Achso, ja das steht auch so in diesem Artikel. Problem DTubes dabei ist, dass im Browser nur wenig gespeichert werden kann und das auch nur, wenn die entsprechende Seite geöffnet ist.

Deshalb wird auch erklärt, dass man einen WebTorrent Client downloaden kann, mit dem das dauerhafte Seeden von mehreren Videos möglich ist und - wenn du die modifizierte Version lädst - du auch selbst auswählen kannst, welche das sein sollen.
Über das herunterladen und installieren willigt man ja dann eindeutig ein.