IPFS的缺陷

說到去中心化數據存儲,星際文件系統(IPFS)是一個繞不開的項目。

作爲最著名的去中心化存儲項目之一,IPFS使用Merkle DAG(有向無環圖)的數據結構,這是基於Merkle Tree的修改。通過這種數據結構,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 的記錄模式是這樣的:最初,Alice 和 Bob 各有 10 美元;第二天,Alice 轉給 Bob 5 美元;第三天,Bob 轉給 Alice 3 美元。這也非常像區塊鏈賬本,賬本上不會記錄每個用戶的餘額,需要計算所有中間過程才能得到最終的用戶餘額。

相比較而言,IPFS 的傳統記錄模式是:在文件 a 中,Alice 和 Bob 各有 10 美元;在文件 b 中,Alice 有 5 美元,Bob 有 15 美元;在文件 c 中,Alice 有 8 美元,Bob 有 12 美元。這裏,每條記錄都是最終狀態的快照,一旦有變化就需要立即生成新的快照。

Ceramic通過這樣的設計保證了每條日誌都有唯一的Stream ID,全局統一命名,不會因爲內容的改變而改變名稱。每次寫入都需要用戶授權,整個過程類似區塊鏈記賬,只不過寫入的不是交易數據,而是其他可變內容,比如用戶賬戶信息。

數據可組合性

Ceramic 主要通過使用一種稱爲數據模型的新型抽象來實現跨應用程序數據可組合性。

數據模型通常代表單個邏輯應用功能,例如用戶個人資料、社交圖譜或博客。例如,您可以想象每個去中心化的 Twitter 實現都會在幾個共享數據模型上運行:一個用於每個用戶的推文,一個用於他們的社交圖譜,一個用於他們的 DM,等等。通過採用相同的底層數據模型,應用程序能夠在同一數據上進行本地互操作。

在某種程度上,你可以將 Ceramic 對數據模型標準的使用與對資產分類賬的代幣標準的使用進行比較。例如,在以太坊上,引入 ERC20 同質化代幣和 ERC721 非同質化代幣標準催生了整個代幣生態系統和原生互操作的金融應用程序。Ceramic 將同樣的概念帶入了數據領域。

Ceramic 採用社區驅動的方法來創建這些數據模型,允許任何開發人員輕鬆定義、共享和重複使用他們的模型,並與生態系統中的其他開發人員共享。隨着社區創建越來越多的數據模型,您將看到使用可組合數據構建的應用程序的數量和種類不斷增加。

通過這種方式實現的可組合性也讓開發者的體驗更好。在 Ceramic 上構建應用程序就像瀏覽數據模型市場,將它們插入到您的應用程序中,並自動獲取存儲在這些模型中的網絡上的所有數據的訪問權限。使用 Ceramic,開發人員無需擔心使用他們自己的孤立用戶和數據來引導他們的應用程序。開發人員之間的複合創新速度將急劇加快。

可擴展性

Ceramic 通過分片執行環境實現可擴展性。Ceramic 上的所有流都獨立維護其狀態,網絡節點並行執行流事務。與大多數區塊鏈不同,這種方法使 Ceramic 能夠以 Twitter 或 Facebook 等去中心化社交應用程序所需的可擴展性運行。

傳統區塊鏈系統的可擴展性僅限於單個全局虛擬執行環境,並且單個賬本的狀態在所有節點之間共享,而 Ceramic 系統則不同,每個節點都充當單獨的執行環境,用於執行計算和驗證流上的交易 — — 不存在全局賬本。這種“內置”執行分片使 Ceramic 網絡能夠水平擴展,從而隨着網絡節點數量的增加並行處理越來越多的同時流交易。需要這樣的設計來處理全球數據的規模,這比金融區塊鏈所需的吞吐量高出幾個數量級。這種設計的另一個好處是,Ceramic 節點可以在離線優先的環境中執行流交易,然後在恢復在線時與網絡的其餘部分同步更新。

DID解決方案

Ceramic 還提供了一種靈活而強大的身份解決方案,稱爲 IDX,這是第一個功能齊全的去中心化身份 (DID) 解決方案。

IDX 是一個跨鏈身份協議,適用於具有去中心化身份和可互操作用戶數據的開放應用程序,它允許用戶建立由其所有數據組成的統一數字身份,同時使開發人員能夠打破孤島並在應用程序之間自由共享用戶數據。如下圖所示,它提供了一個去中心化索引,允許將結構化數據與去中心化標識符 (DID) 相關聯,並且數據由定義定義並存儲在記錄中。

此外,IDX 可與任何類型的數據存儲一起使用,例如 Ceramic、Textile、OrbitDB、IPFS、Sia、Arweave、區塊鏈註冊表甚至集中式數據庫,並支持任何類型的 Web3 錢包的身份驗證。

IDX 非常適合以分散的方式將用戶個人資料、便攜式社交圖譜、聲譽分數、可驗證聲明、用戶生成內容、應用程序數據、設置、域名、區塊鏈地址和社交 Web2 帳戶與用戶關聯。

結論

總結來說,Ceramic 的出現大大賦能了 Web3 的構建,也爲 Web3 開發者解鎖了新功能。無論開發者在哪條公鏈(以太坊、BSC、Polygon、Avalanche 等)上構建,都可以同時利用 Ceramic 的以數據爲中心的功能來完善自己的應用。此外,通過 Ceramic 靈活的基於 DID 的賬戶系統,Ceramic 可以自然地與當前主流區塊鏈的賬戶和密鑰系統對接,爲用戶帶來極大的便利。

很高興看到,目前已經有不少 DID 和 Web3 社交平臺項目在 Ceramic 上開發,其中值得關注的項目有:社交圖譜中間件平臺 Cyber​​Connect、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/