Der Fehler von IPFS

Wenn es um dezentrale Datenspeicherung geht, ist das InterPlanetary File System, bekannt als IPFS, ein unumgängliches Projekt.

Als eines der bemerkenswertesten dezentralen Speicherprojekte verwendet IPFS die Datenstruktur des Merkle DAG (Directed Asymmetric Graph), einer Modifikation, die auf dem Merkle Tree basiert. Mit dieser Datenstruktur implementiert IPFS die Adressierung von Inhalten und das Herunterladen von Fragmenten von Dateien.

Genauer gesagt weist IPFS jeder Datei einen eindeutigen Hashwert zu, ähnlich einem Dateifingerabdruck. Jede Stammdatei verweist auf mehrere Knotendateien, und sobald sich der Inhalt einer Knotendatei ändert, ändert sich der Hashwert entsprechend, wodurch sich auch der Hash der Stammdatei ändert.

Auf diese Weise speichert und findet IPFS Dateien in einer eindeutigen inhaltsbasierten statt einer adressbasierten Adressierung. Das bedeutet, dass Sie, wenn Sie nach einer Datei suchen, nicht wissen müssen, wo sie ist, sondern nur, was sie enthält. IPFS generiert für jede Datei einen eindeutigen Hash, und wenn der Benutzer diese Datei abrufen muss, muss er nur IPFS fragen, wer diesen Hash hat, um den Abruf abzuschließen. Da Hashes eine doppelte Speicherung verhindern, werden Dateien mit demselben Inhalt von IPFS nicht dupliziert. Dieser Ansatz optimiert die Speicherung und verbessert die Netzwerkleistung.

Der Mechanismus der Inhaltsadressierung ist ein großer Vorteil von IPFS, aber jede Münze hat zwei Seiten und bringt auch einen Nachteil mit sich. In IPFS kann eine einmal gespeicherte Datei nicht mehr im System geändert werden, da durch die Änderung des Dateiinhalts der Datei-Hash geändert wird und der Benutzer die geänderte Datei nicht anhand des ursprünglichen Hash-Werts finden kann. Dies ist ein häufig kritisierter Schwachpunkt: IPFS eignet sich nicht gut zum Speichern von Dateien, die von Zeit zu Zeit aktualisiert und geändert werden müssen.

Obwohl IPFS sich gut zum Speichern statischer Dateien eignet, mangelt es ihm an der Rechen- und Statusverwaltungskapazität für fortgeschrittenere datenbankähnliche Funktionen wie Veränderlichkeit, Versionskontrolle, Zugriffskontrolle und programmierbare Logik, die erforderlich sind, damit Entwickler voll funktionsfähige dezentrale Anwendungen erstellen können. Daher besteht dringender Bedarf an einer effizienten und dezentralen Lösung zum Speichern dynamischer Daten – Ceramic löst dieses Problem mit einer NoSQL-ähnlichen Datenbank, in der Entwickler strukturierte und veränderliche Inhalte speichern können.

Entwickelt für veränderliche Inhalte

Das Speicherdesign von Ceramic basiert auf IPFS und erweitert es um eine dezentrale dynamische Speicherschicht.

Auf Ceramic wird jede Information als nur anfügbares Protokoll von Commits dargestellt, ein sogenannter „Stream“, der in der folgenden Abbildung als Kombination grauer Quadrate dargestellt wird. Der Stream ähnelt im Konzept Git-Bäumen: Der Anfangszustand (Genesis Commit) und jede nachfolgende Änderung (Commit) werden alle in IPLD (InterPlanetary Linked Data, die für Datenstrukturen vorgesehene Schicht von IPFS) gespeichert, und diese Datensätze werden zu einem Stream kombiniert. Da Streams „Änderungen“ und keine „Schnappschüsse“ des resultierenden Zustands aufzeichnen, müssen nur alle Ereignisse im Stream verarbeitet werden, um den neuesten Zustand des Protokolls abzurufen.

Beispielsweise sieht das Aufzeichnungsmuster von Ceramic folgendermaßen aus: Anfangs haben Alice und Bob jeweils 10 $; am zweiten Tag überweist Alice 5 $ an Bob; am dritten Tag überweist Bob 3 $ an Alice. Dies ähnelt auch sehr einem Blockchain-Hauptbuch, in dem das Hauptbuch nicht den Kontostand jedes Benutzers angibt und alle Zwischenprozesse berechnet werden müssen, um den endgültigen Kontostand des Benutzers zu erhalten.

Im Vergleich dazu sieht das traditionelle Datensatzmuster von IPFS so aus: In Datei a haben Alice und Bob jeweils 10 $, in Datei b hat Alice 5 $ und Bob 15 $ und in Datei c hat Alice 8 $ und Bob 12 $. Hier ist jeder Datensatz eine Momentaufnahme des resultierenden Zustands, und eine neue Momentaufnahme muss erstellt werden, sobald sich eine Änderung ergibt.

Ceramic stellt durch dieses Design sicher, dass jedes Protokoll eine eindeutige Stream-ID mit einer global einheitlichen Benennung hat und sich der Name nicht aufgrund von Inhaltsänderungen ändert. Jeder Schreibvorgang erfordert eine Benutzerautorisierung und der gesamte Prozess ähnelt der Blockchain-Buchhaltung, mit der Ausnahme, dass keine Transaktionsdaten, sondern andere veränderliche Inhalte wie Benutzerkontoinformationen geschrieben werden.

Datenzusammenstellbarkeit

Ceramic erreicht die anwendungsübergreifende Datenzusammenstellbarkeit hauptsächlich durch die Verwendung einer neuartigen Abstraktion, den sogenannten Datenmodellen.

Datenmodelle stellen normalerweise eine einzelne logische Anwendungsfunktion dar, beispielsweise ein Benutzerprofil, ein soziales Diagramm oder ein Blog. Man kann sich beispielsweise vorstellen, dass jede dezentrale Twitter-Implementierung auf einigen gemeinsamen Datenmodellen läuft: eines für die Tweets jedes Benutzers, eines für sein soziales Diagramm, eines für seine Direktnachrichten usw. Durch die Übernahme derselben zugrunde liegenden Datenmodelle können Anwendungen nativ auf denselben Daten interagieren.

In gewisser Weise kann man Ceramics Verwendung von Datenmodellstandards mit der Verwendung von Tokenstandards für Vermögensbuchhaltungen vergleichen. Bei Ethereum beispielsweise hat die Einführung der Standards für fungible Token ERC20 und nicht fungible Token ERC721 zur Entstehung ganzer Ökosysteme von Token und Finanzanwendungen geführt, die nativ miteinander interagieren. Ceramic überträgt dasselbe Konzept auf Daten.

Ceramic verfolgt bei der Erstellung dieser Datenmodelle einen Community-orientierten Ansatz, der es jedem Entwickler ermöglicht, seine Modelle einfach zu definieren, mit anderen Entwicklern im Ökosystem zu teilen und wiederzuverwenden. Je mehr Datenmodelle von der Community erstellt werden, desto mehr und vielfältiger werden die Anwendungen, die mit zusammensetzbaren Daten erstellt werden.

Auf diese Weise durchgeführte Zusammensetzbarkeit verbessert auch die Entwicklererfahrung. Das Erstellen einer Anwendung auf Ceramic sieht so aus, als ob man einen Marktplatz für Datenmodelle durchsucht, diese in die eigene App einbindet und automatisch auf alle Daten im Netzwerk zugreift, die in diesen Modellen gespeichert sind. Mit Ceramic müssen sich Entwickler keine Gedanken mehr darüber machen, ihre Anwendung mit ihren eigenen isolierten Benutzern und Daten zu booten. Die Geschwindigkeit der Innovation unter Entwicklern wird sich dramatisch beschleunigen.

Skalierbarkeit

Ceramic erreicht Skalierbarkeit durch eine Sharded-Ausführungsumgebung. Alle Streams auf Ceramic behalten ihren Status unabhängig bei und Netzwerkknoten führen Stream-Transaktionen parallel aus. Dieser Ansatz ermöglicht Ceramic im Gegensatz zu den meisten Blockchains, mit der Skalierbarkeit zu arbeiten, die für dezentrale Versionen sozialer Anwendungen wie Twitter oder Facebook erforderlich ist.

Im Gegensatz zu herkömmlichen Blockchain-Systemen, bei denen die Skalierbarkeit auf eine einzige globale virtuelle Ausführungsumgebung beschränkt ist und der Status eines einzigen Ledgers von allen Knoten gemeinsam genutzt wird, fungiert jeder Ceramic-Knoten als individuelle Ausführungsumgebung zum Durchführen von Berechnungen und Validieren von Transaktionen in Streams – es gibt keinen globalen Ledger. Diese „integrierte“ Ausführungs-Sharding ermöglicht dem Ceramic Network eine horizontale Skalierung, um die Verarbeitung einer zunehmenden Anzahl gleichzeitiger Stream-Transaktionen zu parallelisieren, wenn die Anzahl der Knoten im Netzwerk zunimmt. Ein solches Design ist erforderlich, um das Ausmaß der weltweiten Daten zu bewältigen, das um Größenordnungen größer ist als der für eine Finanz-Blockchain erforderliche Durchsatz. Ein weiterer Vorteil dieses Designs besteht darin, dass ein Ceramic-Knoten Stream-Transaktionen in einer Offline-First-Umgebung durchführen und später Updates mit dem Rest des Netzwerks synchronisieren kann, wenn er wieder online ist.

DID-Lösung

Ceramic bietet außerdem eine flexible und robuste Identitätslösung namens IDX an, die erste voll funktionsfähige dezentrale Identitätslösung (DID).

IDX ist ein kettenübergreifendes Identitätsprotokoll für offene Anwendungen mit dezentraler Identität und interoperablen Benutzerdaten, mit dem Benutzer eine einheitliche digitale Identität aufbauen können, die aus all ihren Daten besteht, während Entwickler Silos aufbrechen und Benutzerdaten frei zwischen Anwendungen austauschen können. Wie in der folgenden Abbildung dargestellt, bietet es einen dezentralen Index, mit dem strukturierte Daten einem dezentralen Identifikator (DID) zugeordnet werden können. Daten werden durch Definitionen definiert und in Datensätzen gespeichert.

Darüber hinaus kann IDX mit jeder Art von Datenspeicher wie Ceramic, Textile, OrbitDB, IPFS, Sia, Arweave, Blockchain-Registern oder sogar zentralisierten Datenbanken verwendet werden und unterstützt die Authentifizierung von jeder Art von Web3-Wallet.

IDX eignet sich hervorragend, um Benutzerprofile, portable soziale Graphen, Reputationsbewertungen, überprüfbare Behauptungen, benutzergenerierte Inhalte, Anwendungsdaten, Einstellungen, Domänennamen, Blockchain-Adressen und Social-Web2-Konten auf dezentrale Weise einem Benutzer zuzuordnen.

Abschluss

Zusammenfassend lässt sich sagen, dass das Aufkommen von Ceramic die Entwicklung von Web3 erheblich vorangetrieben und neue Funktionen für Web3-Entwickler freigeschaltet hat. Unabhängig davon, auf welcher öffentlichen Blockchain (Ethereum, BSC, Polygon, Avalanche usw.) Entwickler aufbauen, können sie Ceramic gleichzeitig für datenzentrierte Funktionen nutzen, um ihre Anwendungen zu verbessern. Darüber hinaus lässt sich Ceramic über das flexible DID-basierte Kontosystem auf natürliche Weise mit den Konto- und Schlüsselsystemen der aktuellen großen Blockchains verbinden, was den Benutzern großen Komfort bietet.

Es ist erfreulich zu sehen, dass bereits viele DID- und Web3-Social-Plattform-Projekte auf Ceramic entwickelt wurden. Darunter sind einige bemerkenswerte Projekte: CyberConnect, eine Social-Graph-Middleware-Plattform; Orbis, eine Web3-Twitter-Plattform; und The Convo Space, eine Instant-Messaging-Plattform usw. Wir freuen uns auf die neuen Möglichkeiten, die die Datennetzwerkinfrastruktur von Ceramic der Web3-Anwendungsschicht bieten kann.

Haftungsausschluss: Diese Recherche dient ausschließlich Informationszwecken. Sie stellt keine Anlageberatung oder Empfehlung zum Kauf oder Verkauf von Anlagen dar und sollte nicht zur Beurteilung der Vorzüge von Anlageentscheidungen verwendet werden.

🐦 @chestersigned

📅 8. Mai 2022

Links:

https://developers.ceramic.network/learn/welcome/

https://blog.ceramic.network/was-ist-keramik/

https://multicoin.capital/2022/02/16/the-composable-web3-data-network/

https://blog.ipfs.io/2021-07-13-ceramic-mainnet-launch/