Wada IPFS
Jeśli chodzi o zdecentralizowane przechowywanie danych, InterPlanetary File System, znany jako IPFS, to projekt, którego nie można ominąć.
Jako jeden z najbardziej znaczących projektów zdecentralizowanego przechowywania danych, IPFS wykorzystuje strukturę danych Merkle DAG (Directed Acycle Graph), modyfikację opartą na drzewie Merkle. Dzięki tej strukturze danych IPFS implementuje adresowanie treści i pobieranie fragmentów plików.
Mówiąc konkretnie, IPFS przypisuje każdemu plikowi unikalną wartość skrótu, podobnie jak odcisk palca pliku. Każdy plik główny wskazuje na wiele plików węzłów, a gdy zawartość pliku węzła ulegnie zmianie, wartość skrótu zmienia się odpowiednio, powodując zmianę skrótu pliku głównego.
W ten sposób IPFS przechowuje i wyszukuje pliki przy użyciu unikalnego adresowania opartego na treści, a nie na adresie. Oznacza to, że jeśli szukasz pliku, nie musisz wiedzieć, gdzie on się znajduje, wystarczy wiedzieć, co zawiera. IPFS generuje unikalny skrót dla każdego pliku, a gdy użytkownik chce pobrać ten plik, wystarczy zapytać IPFS, kto ma ten skrót, aby dokończyć pobieranie. Ponieważ skróty zapobiegają duplikowaniu pamięci, pliki o tej samej zawartości nie są duplikowane przez IPFS. Takie podejście optymalizuje pamięć masową i poprawia wydajność sieci.

Główną zaletą IPFS jest mechanizm adresowania treści, jednak każdy medal ma dwie strony, ma też i wadę. W systemie IPFS raz zapisany plik nie może być modyfikowany w systemie, ponieważ modyfikacja zawartości pliku powoduje zmianę skrótu pliku i użytkownik nie może znaleźć zmienionego pliku według oryginalnej wartości skrótu. Jest to szeroko krytykowany problem: IPFS nie jest dobry w przechowywaniu plików, które wymagają od czasu do czasu aktualizacji i zmiany.
Chociaż IPFS dobrze radzi sobie z przechowywaniem plików statycznych, brakuje mu mocy obliczeniowej i zarządzania stanem dla bardziej zaawansowanych funkcji podobnych do baz danych, takich jak zmienność, kontrola wersji, kontrola dostępu i programowalna logika, które są wymagane, aby umożliwić programistom tworzenie w pełni funkcjonalnych, zdecentralizowanych Aplikacje. Dlatego istnieje pilna potrzeba wydajnego i zdecentralizowanego rozwiązania do przechowywania danych dynamicznych — Ceramic rozwiązuje ten problem, oferując programistom bazę danych podobną do NoSQL, w której mogą przechowywać ustrukturyzowaną i zmienną zawartość.
Stworzony z myślą o zmiennej treści
Projekt przechowywania Ceramic opiera się na IPFS i rozszerza go o zdecentralizowaną dynamiczną warstwę przechowywania.
W Ceramic każda informacja jest reprezentowana jako dziennik zatwierdzeń przeznaczony tylko do dodawania, zwany „strumieńem”, który jest pokazany jako kombinacja szarych kwadratów na poniższym rysunku. Strumień ma podobną koncepcję do drzew Git: stan początkowy (Genesis Commit) i każda kolejna zmiana (Commit) są przechowywane w IPLD (InterPlanetary Linked Data, warstwa IPFS dedykowana strukturom danych), a rekordy te są łączone w celu utworzenia Strumień. Ponieważ strumienie rejestrują „zmiany”, a nie „migawki” powstałego stanu, wystarczy przetworzyć wszystkie zdarzenia w strumieniu, aby uzyskać najnowszy stan dziennika.

Na przykład schemat rekordów Ceramic jest następujący: początkowo Alicja i Bob mają po 10 dolarów; drugiego dnia Alicja przekazuje Bobowi 5 dolarów; trzeciego dnia Bob przekazuje Alicji 3 dolary. Przypomina to również księgę blockchain, w której księga nie podaje salda każdego użytkownika, a wszystkie procesy pośrednie muszą zostać obliczone, aby uzyskać końcowe saldo użytkownika.
Dla porównania, tradycyjny wzorzec rekordów w IPFS jest następujący: w pliku a Alicja i Bob mają po 10 dolarów; w pliku b Alicja ma 5 dolarów, a Bob 15 dolarów; w pliku c Alicja ma 8 dolarów, a Bob 12 dolarów. W tym przypadku każdy rekord jest migawką powstałego stanu i nowa migawka musi zostać wygenerowana natychmiast po wystąpieniu zmiany.
Dzięki tej konstrukcji ceramika zapewnia, że każdy dziennik ma unikalny identyfikator strumienia, z globalnym jednolitym nazewnictwem i brakiem zmian nazwy w związku ze zmianami zawartości. Każdy zapis wymaga autoryzacji użytkownika, a cały proces jest podobny do prowadzenia księgowości w technologii blockchain, z tą różnicą, że zapisywane są nie dane transakcyjne, ale inna zmienna zawartość, taka jak informacje o koncie użytkownika.
Możliwość tworzenia danych
Ceramiczne umożliwiają komponowanie danych w wielu aplikacjach przede wszystkim dzięki zastosowaniu nowatorskiej abstrakcji, zwanej modelami danych.
Modele danych zazwyczaj reprezentują pojedynczą, logiczną funkcję aplikacji, taką jak profil użytkownika, wykres społecznościowy lub blog. Na przykład możesz sobie wyobrazić, że każda zdecentralizowana implementacja Twittera będzie działać w oparciu o kilka współdzielonych modeli danych: jeden dla tweetów każdego użytkownika, jeden dla jego wykresu społecznościowego, jeden dla jego DM itp. Przyjmując te same podstawowe modele danych, aplikacje mogą do natywnej współpracy na tych samych danych.
W pewnym sensie można porównać wykorzystanie przez firmę Ceramic standardów modeli danych ze stosowaniem standardów tokenów w księgach aktywów. Na przykład w Ethereum wprowadzenie zamiennego tokena ERC20 i standardów niezamiennych tokenów ERC721 dało początek całym ekosystemom tokenów i aplikacji finansowych, które natywnie współdziałają. Ceramika przenosi tę samą koncepcję do danych.
Ceramic przyjmuje podejście społecznościowe do tworzenia tych modeli danych, umożliwiając każdemu programiście łatwe definiowanie, udostępnianie i ponowne wykorzystywanie swoich modeli innym programistom w ekosystemie. W miarę tworzenia przez społeczność coraz większej liczby modeli danych można zaobserwować ciągły wzrost liczby i różnorodności aplikacji zbudowanych z danych, które można komponować.
Możliwość komponowania wykonana w ten sposób również poprawia komfort pracy programisty. Tworzenie aplikacji na platformie Ceramic przypomina przeglądanie rynku modeli danych, podłączanie ich do aplikacji i automatyczne uzyskiwanie dostępu do wszystkich danych w sieci przechowywanych w tych modelach. Korzystając z Ceramic, programiści nie będą musieli martwić się ładowaniem aplikacji przy użyciu własnych odizolowanych użytkowników i danych. Tempo łączenia innowacji wśród programistów dramatycznie wzrośnie.
Skalowalność
Ceramic osiąga skalowalność dzięki środowisku wykonawczemu podzielonemu na fragmenty. Wszystkie strumienie w Ceramic utrzymują swój stan niezależnie, a węzły sieci realizują transakcje strumieniowe równolegle. Takie podejście, w przeciwieństwie do większości łańcuchów bloków, pozwala Ceramic działać ze skalowalnością wymaganą w przypadku zdecentralizowanych wersji aplikacji społecznościowych, takich jak Twitter czy Facebook.
W przeciwieństwie do tradycyjnych systemów blockchain, w których skalowalność jest ograniczona do jednego globalnego wirtualnego środowiska wykonawczego, a stan pojedynczej księgi jest współdzielony pomiędzy wszystkimi węzłami, każdy węzeł Ceramic działa jako indywidualne środowisko wykonawcze do wykonywania obliczeń i sprawdzania poprawności transakcji w strumieniach — nie ma globalnego księga główna. To „wbudowane” shardowanie wykonania umożliwia skalowanie sieci Ceramic Network w poziomie w celu zrównoleglenia przetwarzania rosnącej liczby jednoczesnych transakcji strumieniowych w miarę wzrostu liczby węzłów w sieci. Taki projekt jest potrzebny, aby obsłużyć skalę światowych danych, która jest o rząd wielkości większa niż przepustowość wymagana w finansowym łańcuchu bloków. Kolejną zaletą tego projektu jest to, że węzeł Ceramic może przeprowadzać transakcje strumieniowe w środowisku działającym przede wszystkim w trybie offline, a następnie synchronizować aktualizacje z resztą sieci, gdy sieć wróci do trybu online.
Rozwiązanie DID
Ceramic oferuje również elastyczne i niezawodne rozwiązanie do identyfikacji o nazwie IDX, pierwsze w pełni funkcjonalne rozwiązanie do zdecentralizowanej tożsamości (DID).
IDX to międzyłańcuchowy protokół tożsamości dla otwartych aplikacji ze zdecentralizowaną tożsamością i interoperacyjnymi danymi użytkownika, który umożliwia użytkownikom tworzenie jednolitej tożsamości cyfrowej składającej się ze wszystkich ich danych, umożliwiając jednocześnie programistom rozbijanie silosów i swobodne udostępnianie danych użytkownika między aplikacjami. Jak pokazano na poniższym rysunku, zapewnia zdecentralizowany indeks, który umożliwia powiązanie danych strukturalnych ze zdecentralizowanym identyfikatorem (DID), a dane są definiowane za pomocą definicji i przechowywane w rekordach.

Ponadto IDX może być używany z dowolnym rodzajem magazynu danych, takim jak Ceramic, Textile, OrbitDB, IPFS, Sia, Arweave, rejestrami blockchain, a nawet scentralizowanymi bazami danych i obsługuje uwierzytelnianie z dowolnego rodzaju portfela Web3.
IDX doskonale nadaje się do kojarzenia profili użytkowników, przenośnych wykresów społecznościowych, wyników reputacji, weryfikowalnych twierdzeń, treści generowanych przez użytkowników, danych aplikacji, ustawień, nazw domen, adresów blockchain i kont społecznościowych Web2 z użytkownikiem w zdecentralizowany sposób.
Wniosek
Podsumowując, pojawienie się Ceramic znacznie ułatwiło budowę Web3 i odblokowało nowe funkcje dla programistów Web3. Niezależnie od tego, na którym publicznym blockchainie (Ethereum, BSC, Polygon, Avalanche itp.) opierają się deweloperzy, mogą jednocześnie wykorzystać Ceramic do funkcji skoncentrowanych na danych, aby ulepszyć swoje aplikacje. Co więcej, dzięki elastycznemu systemowi kont Ceramic opartemu na DID, Ceramic w naturalny sposób łączy się z kontami i kluczowymi systemami obecnych głównych łańcuchów bloków, co zapewnia użytkownikom dużą wygodę.
Miło jest widzieć, że na Ceramic powstało już wiele projektów platform społecznościowych DID i Web3. Wśród nich warto wymienić kilka godnych uwagi projektów: CyberConnect, platforma oprogramowania pośredniego do grafów społecznościowych; Orbis, platforma Web3 na Twitterze; oraz The Convo Space, platforma do przesyłania wiadomości błyskawicznych itp. Z niecierpliwością czekamy na nowe możliwości, jakie infrastruktura sieci danych Ceramic może wnieść do warstwy aplikacji Web3.
Zastrzeżenie: Niniejsze badanie ma wyłącznie charakter informacyjny. Nie stanowi ona porady inwestycyjnej ani rekomendacji zakupu lub sprzedaży jakiejkolwiek inwestycji i nie powinna być wykorzystywana do oceny zasadności podjęcia jakiejkolwiek decyzji inwestycyjnej.
🐦 @chestersigned
📅 8 maja 2022
Spinki do mankietów:
https://developers.ceramic.network/learn/welcome/
https://blog.ceramic.network/what-is-ceramic/
https://multicoin.capital/2022/02/16/the-composable-web3-data-network/
https://blog.ipfs.io/2021-07-13-ceramic-mainnet-launch/


