Ceramic:為Web3.0社交應用打造的中間件

2022-02-08 12:02:46

“求種子”時代的存儲協議:BitTorrent

說起BitTorrent,很多人會覺得陌生。但提到下載“種子”,相信不少人能回想起幾年前為了玩遊戲或看電影在網絡上到處“求種子”的情景,這裏的種子就是BitTorrent的下載術語。種子文件就是記載下載文件的存放位置、大小、下載服務器的地址、發布者的地址等數據的一個索引文件。

簡單來說,BitTorrent是一種P2P下載協議,比起傳統的從網站服務器下載的方式要高效許多。舉一個形象的例子,學生時代班裏的同學聚在一起抄作業,但只有一個同學寫了作業,其他所有同學都要抄這一份答案。每個同學抄作業的速度不一樣,一旦想抄作業的人多起來,這個流程就很難進行。因此普遍的做法是,一些同學抄選擇題,一些同學抄填空題,一些同學抄問答題,然後大家換着抄,效率一下就上去了。

BitTorrent原理和“抄作業“類似,每個需要下載文件的用戶只下載文件的一部分,在下載的同時,我們的電腦會充當服務器將下載的此部分文件傳輸給其他的用戶。也就是說在我們下載的同時,我們也在上傳(別人從我們的電腦上下載的部分),所以說在享受別人提供的下載的同時,我們也在貢獻。因此下載這個文件的用戶越多,種子就越多,同步進行的速度越快,下載的速度也會越快。


      Ceramic:為Web3.0社交應用打造的中間件

(圖片來源:IOSG Ventures)

去中心化存儲的先行者:IPFS

盡管大大提升了下載效率,BitTorrent仍然存在一些問題,為了優化這些問題,就不得不提到IPFS。相信許多讀者一定更熟悉IPFS,現在鼎鼎大名的去中心化存儲項目例如Arweave和Filecoin,就是以IPFS為基礎建立的。IPFS的中文譯為星際文件系統,是一個可分布式存儲且共享文件的網絡傳輸協議。

用BitTorrent下載時必須使用種子文件,用戶需要將所有下載內容的地址放在這個種子文件當中才能進行下載。IPFS的顯著優勢之一是採用了DAG數據結構存儲數據,這種數據結構的好處體現在:IPFS是以基於內容而不是基於地址的尋址方式存儲和尋找文件的。這意味着如果我們要尋找一個文件,我們不需要知道它在哪裏,只需要知道它包含的是什么內容。IPFS會為每個文件生成一個唯一的哈希值(例如QmSNssW5a9S3KVRCYMemjsTByrNNrtXFnxNYLfmDr9Vaan),當用戶需要檢索這個文件時,只需要問IPFS誰有這個哈希(QmS…Vaan)就可以完成檢索。因為哈希值能防止重復存儲,所以相同內容的文件不會被IPFS重復存儲。這樣的做法優化了存儲,也提高了網絡性能。


      Ceramic:為Web3.0社交應用打造的中間件

(圖片來源:researchgate.net)

動態存儲的解決方案:Ceramic

通過上述描述,細心的讀者可能會發現IPFS存在一個巨大的缺陷。在IPFS中,文件一旦被存儲是不能在系統中修改的,因為修改文件內容會改變文件的哈希值,用戶無法通過原始的哈希值找到更改的文件。這是IPFS被大家所詬病的一個痛點:不善於存儲需要隨時更新升級的文件。因此,人們急需一種高效且去中心化存儲動態數據的解決方案。

值得慶幸的是,人們對這個賽道的探索已經开始了。關注Web 3.0、SocialFi或者DID的朋友一定聽聞過這個項目的大名——Ceramic。Ceramic是一個用於創建、托管和共享數據的去中心化开源平臺,不少DID和Social Graph都是基於Ceramic上構建的。前文提到,IPFS在存儲靜態文件方面表現良好,但其本身缺乏計算和狀態管理能力,無法實現更高級的類似數據庫的功能,例如可變性、版本控制、訪問控制和可編程邏輯。而Cermaic的出現,使得以上問題得到了一定程度的解決。

高效的版本控制

在Ceramic裏,每條存儲信息都表示為可疊加的log(計算機裏記錄程序運行情況的日志文件),稱為一個Stream。Stream在概念上類似於Git。Git是一個开源的分布式版本控制系統,可以有效、高速地處理大大小小的項目版本管理,是目前最流行的版本控制軟件,可用來存儲代碼、跟蹤修訂歷史記錄、合並代碼更改,恢復為較早的代碼版本等等。Git處理數據時像一個“快照”,這與我們用google docs共享文檔並查看歷史版本有一點相似。每當你提交更新或保存數據狀態時,它就會對當時的全部文件創建一個快照並保存這個快照的索引。如果文件沒有修改,Git 不再重新存儲該文件,而是只保留一個鏈接指向之前存儲的文件,大大提高了效率。


      Ceramic:為Web3.0社交應用打造的中間件


      Ceramic:為Web3.0社交應用打造的中間件

(圖片來源:IOSG Ventures)

實際上,IPFS上也可以使用Git來存儲動態數據。但是开發者需要在Git裏新建一個hash-log文件,用以記錄每次Git log和IPFS哈希更新的映射表,並且需要手動保持同步動態,或者運用IPNS命名系統保持動態更新。這樣的操作費時費力,效率很低。

Ceramic採用了“疊加log”的方式,StreamID不會根據內容改變而改變,因此可以非常便捷地存儲修改版本或者回溯之前的版本,不必再頻繁更改哈希值。此外,Ceramic在其他存儲協議之上搭建了一層新的layer,意味着其可組合性很高。用戶可以自行選擇將數據存儲在哪裏,包括去中心化的Arweave、Filecoin,中心化的AWS等等,都可以利用Ceramic實現自動化版本控制。並且因為每個Stream只存儲log而不是數據,Ceramic不需要一個global ledger來全局同步數據狀態,因此Ceramic的橫向可擴展性是非常高的。


      Ceramic:為Web3.0社交應用打造的中間件

(圖片來源:IOSG Ventures)

便捷的身份驗證和訪問控制

除了版本控制的優勢之外,Ceramic還提供了非常便捷的身份驗證和訪問控制。當新數據要被添加進Stream時,修改者需要驗證身份,否則將不能對數據進行修改。不同的Stream可以要求不同的身份驗證機制,而Ceramic提供了非常強大的內嵌身份驗證機制—— DID。例如適合終端用戶的3ID DID,適合开發者的key DID,支持用NFT進行身份驗證的NFT DID和適合DAO等需要多重身份驗證的Safe DID等,保障了數據的安全性。同時,Ceramic還賦予了Stream可編程邏輯,例如如果Stream A狀態改變,則Stream B可被訪問並且升級等等。

Ceramic的出現極大賦能了Web 3.0的建設。目前已經有很多DID以及Web3.0社交平臺項目在Ceramic上开發。值得關注的有Social Graph Middleware平臺CyberConnect,Web3.0 Twitter的Orbis,即時通訊平臺The Convo Space等等。我們很期待Ceramic的基礎設施能夠給應用層帶來的新的可能。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

Lumoz开放esMOZ空投查詢並公布空投規則

Lumoz 空投正式來臨。 在過去兩年中,社區與 Lumoz 攜手度過了多個重要階段: Pre-A...

星球日報
7 7小時前

Solana基金會Matt Sorg&OKX Web3:Solana帶來巨大創新|开發者物語04

Solana 網絡以及其生態交易工具,成為推動本輪「Memecoin 超級周期」的重要基礎。Sol...

星球日報
7 7小時前

美國大選,加密行業的命運分叉口

無論下周的總統大選結果如何,SEC 很可能會迎來新主席。傳統上,SEC 主席通常會在新總統上任時辭...

星球日報
6 7小時前

揭祕Scam-as-a-Service:警惕釣魚攻擊的產業化

2024年6月开始,CertiK安全團隊監控到大量相似的phishing/drainer tran...

CertiK
6 7小時前

專訪頂級交易員Nachi:大選前夜,Binance排名前10的交易大師如何看待加密後市?

許多人渴望成為職業交易員,然而大多數交易者往往因交易心態失控、倉位管理不當而最終滿盤皆輸。在盈虧不...

律動BlockBeats
5 7小時前

Meme熱潮,VC的新战場,機遇還是陷阱?

TL;DR 1、Meme 經歷了 2013 年至 2019 年的緩慢萌芽階段,隨後 2020 年至...

星球日報
6 7小時前