IPFSの欠陥
分散型データ ストレージに関して言えば、IPFS として知られる InterPlanetary File System は避けては通れないプロジェクトです。
最も注目すべき分散ストレージ プロジェクトの 1 つである IPFS は、マークル ツリーに基づいて修正されたマークル DAG (有向非巡回グラフ) のデータ構造を使用します。このデータ構造を使用して、IPFS はコンテンツ アドレス指定とファイルのフラグメント ダウンロードを実装します。
具体的に言うと、IPFS はファイルのフィンガープリントと同様に、各ファイルに一意のハッシュ値を割り当てます。各ルート ファイルは複数のノード ファイルを指しており、ノード ファイルの内容が変更されると、それに応じてハッシュ値も変更され、ルート ファイルのハッシュも変更されます。
このように、IPFS はアドレスベースではなく、一意のコンテンツベースでファイルを保存および検索します。つまり、ファイルを探している場合、その場所を知る必要はなく、その内容を知るだけでよいということです。IPFS は各ファイルに一意のハッシュを生成し、ユーザーがこのファイルを取得する必要がある場合は、そのハッシュを持っている IPFS を尋ねるだけで取得が完了します。ハッシュは重複した保存を防ぐため、同じコンテンツを持つファイルは IPFS によって重複されません。このアプローチにより、ストレージが最適化され、ネットワーク パフォーマンスが向上します。

コンテンツ アドレス指定のメカニズムは IPFS の大きな利点ですが、物事には裏表があり、欠点もあります。IPFS では、一度ファイルが保存されると、システム内で変更することはできません。ファイル コンテンツを変更するとファイル ハッシュが変更され、ユーザーは元のハッシュ値で変更されたファイルを見つけることができないためです。これは広く批判されている問題点です。IPFS は、随時更新および変更する必要があるファイルを保存するのに適していません。
IPFS は静的ファイルの保存には適していますが、可変性、バージョン管理、アクセス制御、プログラマブル ロジックなど、開発者がフル機能の分散型アプリケーションを構築するために必要な、より高度なデータベースのような機能のための計算および状態管理能力が欠けています。そのため、動的データを保存するための効率的で分散化されたソリューションが緊急に必要とされています。Ceramic は、開発者が構造化された可変コンテンツを保存するための NoSQL のようなデータベースでこの問題を解決します。
可変コンテンツ向けに構築
Ceramic のストレージ設計は IPFS に基づいており、分散型の動的ストレージ レイヤーで拡張されています。
Ceramic では、すべての情報はコミットの追加専用ログとして表され、これは「ストリーム」と呼ばれ、下の図では灰色の四角の組み合わせとして示されています。ストリームは Git ツリーの概念に似ています。初期状態 (Genesis Commit) とその後の各変更 (Commit) はすべて IPLD (InterPlanetary Linked Data、IPFS のデータ構造専用レイヤー) に保存され、これらのレコードが結合されてストリームが形成されます。ストリームは結果の状態の「スナップショット」ではなく「変更」を記録するため、ログの最新状態を取得するには、ストリーム上のすべてのイベントを処理するだけで済みます。

たとえば、Ceramic の記録パターンは次のようになります。最初、アリスとボブはそれぞれ 10 ドルを持っています。2 日目に、アリスはボブに 5 ドルを送金します。3 日目に、ボブはアリスに 3 ドルを送金します。これもブロックチェーン台帳に非常によく似ています。ブロックチェーン台帳では、各ユーザーの残高は記載されず、最終的なユーザー残高を取得するにはすべての中間プロセスを計算する必要があります。
比較すると、IPFS の従来のレコード パターンは次のようになります。ファイル a では、アリスとボブはそれぞれ $10 を持ちます。ファイル b では、アリスは $5、ボブは $15 を持ちます。ファイル c では、アリスは $8、ボブは $12 を持ちます。ここで、各レコードは結果の状態のスナップショットであり、変更があるとすぐに新しいスナップショットを生成する必要があります。
Ceramic はこの設計により、各ログに一意のストリーム ID が付与され、グローバルに統一された名前が付けられ、コンテンツの変更によって名前が変更されないことを保証します。各書き込みにはユーザー認証が必要で、プロセス全体はブロックチェーンの簿記に似ていますが、書き込まれるのはトランザクション データではなく、ユーザー アカウント情報などのその他の変更可能なコンテンツである点が異なります。
データの構成可能性
Ceramic は、主にデータ モデルと呼ばれる新しい抽象化を使用することで、アプリケーション間のデータ構成を実現します。
データ モデルは通常、ユーザー プロファイル、ソーシャル グラフ、ブログなどの単一の論理アプリケーション機能を表します。たとえば、すべての分散型 Twitter 実装は、各ユーザーのツイート用に 1 つ、ソーシャル グラフ用に 1 つ、DM 用に 1 つなど、いくつかの共有データ モデルで実行されると考えられます。同じ基礎データ モデルを採用することで、アプリケーションは同じデータでネイティブに相互運用できるようになります。
ある意味、Ceramic のデータ モデル標準の使用は、資産台帳のトークン標準の使用に似ています。たとえば、Ethereum では、ERC20 代替可能トークン標準と ERC721 非代替可能トークン標準の導入により、ネイティブに相互運用できるトークンと金融アプリケーションのエコシステム全体が生まれました。Ceramic は、これと同じ概念をデータにもたらします。
Ceramic は、コミュニティ主導のアプローチでこれらのデータ モデルを作成し、開発者がエコシステム内の他の開発者とモデルを簡単に定義、共有、再利用できるようにしています。コミュニティによって作成されるデータ モデルが増えるにつれて、構成可能なデータを使用して構築されるアプリケーションの量と種類が継続的に拡大していきます。
このように構成可能性を実現することで、開発者のエクスペリエンスも向上します。Ceramic でアプリケーションを構築するということは、データ モデルのマーケットプレイスを閲覧し、それをアプリケーションにプラグインし、これらのモデルに保存されているネットワーク上のすべてのデータに自動的にアクセスすることを意味します。Ceramic を使用すると、開発者は独自のサイロ化されたユーザーとデータを使用してアプリケーションをブートストラップする必要がなくなります。開発者間の複合的なイノベーションの速度は劇的に加速します。
スケーラビリティ
Ceramic は、シャード実行環境を通じてスケーラビリティを実現します。Ceramic 上のすべてのストリームは独立して状態を維持し、ネットワーク ノードはストリーム トランザクションを並行して実行します。このアプローチにより、ほとんどのブロックチェーンとは異なり、Ceramic は Twitter や Facebook などのソーシャル アプリケーションの分散バージョンに必要なスケーラビリティで動作できます。
スケーラビリティが単一のグローバル仮想実行環境に限定され、単一台帳の状態がすべてのノード間で共有される従来のブロックチェーン システムとは異なり、各 Ceramic ノードは、ストリーム上で計算を実行し、トランザクションを検証するための個別の実行環境として機能します。グローバル台帳はありません。この「組み込み」実行シャーディングにより、Ceramic ネットワークは水平方向に拡張して、ネットワーク上のノード数が増えるにつれて、増加する同時ストリーム トランザクションの処理を並列化できます。このような設計は、金融ブロックチェーンに必要なスループットよりも桁違いに大きい世界のデータ規模を処理するために必要です。この設計のもう 1 つの利点は、Ceramic ノードがオフライン ファースト環境でストリーム トランザクションを実行し、後でオンラインに戻ったときにネットワークの残りの部分と更新を同期できることです。
DIDソリューション
Ceramic は、初の完全機能型分散型 ID (DID) ソリューションである、IDX と呼ばれる柔軟で堅牢な ID ソリューションも提供しています。
IDX は、分散型 ID と相互運用可能なユーザー データを備えたオープン アプリケーション用のクロスチェーン ID プロトコルです。これにより、ユーザーはすべてのデータで構成される統合デジタル ID を構築できると同時に、開発者はサイロを解体してアプリケーション間でユーザー データを自由に共有できます。次の図に示すように、分散型インデックスが提供され、構造化データを分散型識別子 (DID) に関連付けることができ、データは定義によって定義され、レコードに保存されます。

さらに、IDX は、Ceramic、Textile、OrbitDB、IPFS、Sia、Arweave、ブロックチェーン レジストリ、集中型データベースなど、あらゆる種類のデータストアで使用でき、あらゆる種類の Web3 ウォレットからの認証をサポートします。
IDX は、ユーザー プロファイル、ポータブル ソーシャル グラフ、評判スコア、検証可能なクレーム、ユーザー生成コンテンツ、アプリケーション データ、設定、ドメイン名、ブロックチェーン アドレス、ソーシャル Web2 アカウントを分散型の方法でユーザーに関連付けるのに最適です。
結論
まとめると、Ceramic の登場により、Web3 の構築は大きく強化され、Web3 開発者に新しい機能がもたらされました。開発者がどのパブリック ブロックチェーン (Ethereum、BSC、Polygon、Avalanche など) をベースに構築しているかに関係なく、データ中心の機能に Ceramic を同時に活用して、アプリケーションを改善できます。さらに、Ceramic の柔軟な DID ベースのアカウント システムにより、Ceramic は現在の主要なブロックチェーンのアカウント システムやキー システムと自然にインターフェイスし、ユーザーに大きな利便性を提供します。
すでに多くの DID および Web3 ソーシャル プラットフォーム プロジェクトが Ceramic 上で開発されていることは喜ばしいことです。その中でも注目すべきプロジェクトをいくつか挙げると、ソーシャル グラフ ミドルウェア プラットフォームの CyberConnect、Web3 Twitter プラットフォームの Orbis、インスタント メッセージング プラットフォームの The Convo Space などがあります。Ceramic のデータ ネットワーク インフラストラクチャが Web3 アプリケーション層にもたらす新しい可能性に期待しています。
免責事項:この調査は情報提供のみを目的としています。投資に関するアドバイスや投資の売買を推奨するものではなく、投資判断のメリットを評価するために使用されるものではありません。
🐦 @chestersigned
📅 2022年5月8日
リンク:
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/


