作者:Wayne,Dongxuan,Linda?
來源:BixinVentures
從石刻結繩到竹簡紙張,人類文明大部分時間都在解決數據的存儲媒介問題。之后,軟盤、硬盤、云服務器存儲等技術進一步解決了容量、安全、速度、等效率問題。Filecoin,Arweave等去中心化存儲方案的興起,則帶來了為數據確權的機會——個人、組織、機構、企業,將真正擁有自己的數據,而不是被巨頭們壟斷,這是Web3精神的展現。
不過,當所有權得以確定,一個自然而然的問題得以顯現:所有者如何行使這份權利、如何獲取更大的價值?我們將這兩個問題歸結為“數據效用”問題。
作為一個用于可組合數據的去中心化存儲網絡,在“權利”進化為“效用”的里程上,Ceramic正在扮演關鍵角色。這是我們最近在持續關注、研究Ceramic網絡發展及其生態、應用建設的重要原因。
和幾個月前寂寂無聞相比,Ceramic正在展開眾多的開發者項目,并在EthDenver、HackFS、DecentralHacks、DAOGlobalHack等多場黑客松中都獲得了大量的開發者采用。根據Ceramic披露的數據,截至3月底,以Ceramic為底層建設的項目已經超過50余個,涉及NFT、DAO、Gamefi等多個領域。此外,3月初Ceramic還斬獲了由Multicoin和USV領投的3000萬美元投資。
關于Ceramic在數據可組合性方面的潛力,已經有不少文章可以參考,不再贅述,本文旨在從對動態數據優化、靈活的共識機制,網絡安全與隱私性等方面詳解Ceramic在提高數據效用上的技術可能性。同時,我們也將提供網絡節點、應用發展等方面的關鍵信息。在我們看來,Ceramic最關鍵的三個價值是建立了:
●??去中心化存儲水平擴展方案
●??社區驅動下的數據模型市場
●??開放的API網絡共享資源
一、動態數據存儲優化
去中心化存儲將數據存儲在節點而不是中心化服務器中,這讓數據的使用權能更多被數據創造者而不是中心化的服務器掌握。因為個人行為的不斷更新以及數據的連續使用和迭代,個人數據中存在大量動態數據,而IPFS、Sia、包括Arweave目前主要針對靜態數據進行存儲,對于動態數據處理能力欠加且成本較高。
以IPFS為例,它通過為每一個用戶生成一個唯一的哈希值來實現基于內容的查找而不是基于地址的查找,當用戶需要檢索這個文件時,需要詢問IPFS誰有這個哈希就可以完成檢索。但使用哈希值標記數據有幾個顯而易見的問題:
CertiK:自上周五以來記錄了26起事件,共造成約1.05億美元的損失:金色財經報道,自上周五以來,CertiK記錄了26起事件,總共造成了約1.05億美元的損失。其中7起 Discord黑客攻擊事件、16起網絡釣魚攻擊事件和 0 起Twitter黑客攻擊事件,請用戶保持警惕并DYOR。[2023/7/29 16:05:21]
每一次更新都會需要網絡驗證然后生成相關的哈希值,重復修改哈希值會提高花費的存儲時間;
在調用時核對哈希值不一定會比常見數據庫調用快——因為存在遠距離節點時,傳輸速度反而更慢;
將哈希值轉為數據之后很多時候還需要花費時間進行組合,這些問題對于靜態數據存儲和調用時的速度和價格影響不大,但是對于動態數據,重復進行這種操作不僅會影響存儲網絡的速度,容量等,還會產生較高的成本。
Ceramic通過“Streams控制機制”實現了動態數據存儲的優化,在降低存儲時間的同時也大大降低了存儲成本。這里需要特別說明的是,此優化方案并非是脫離IPFS等去中心化存儲技術的獨立實現,而是建立在IPFS之上。
“Streams控制機制”是指,利用個人身份賬戶把個人某行為產生的數據即流集合成數據流進行數據控制的機制。
跟平時我們在使用共享文檔時經常能查看在某時某分的版本相似,每一個Stream都有自己固定的StreamID,而每一次動態數據進行修改,不會直接修改哈希值或者更新SteamID,而是更新日志,日志是Ceramic中記錄了發生網絡中的Stream相關事件的參數,每一次修改代表一個特定版本,這樣對于常更新的數據只需要在更新內容后修改日志值即可,不用重復生成哈希值,從而減少存儲消耗的時間。
Steams機制圖解
?因為動態數據本身會隨著時間推移使用次數減少或者轉變為靜態數據,而且用戶本身也會生成靜態數據,所以,這些靜態數據或者更新次數少的動態數據也可以最終委托到IPFS或者Arweave等去中心化存儲或者AWS等傳統云服務商上。
此外,正是由于“StreamID”,數據的可組合性也變得更容易了。不同程序如果采用了不同的數據格式,那么在調用時必然產生不兼容的效果,很多數據因此無法進行組合使用,而且調用時也存在調用權限不足的問題,比如在有時衡量個人信譽時需要DAO中的貢獻數據和在Defi的借貸數據,即使有方法進行調用,也無法將數據直接做成信譽數據。
而在Ceramic中應用程序經由API連接到Ceramic的去中心化數據網絡,存儲、修改和檢索數據。網絡上存在的所有數據都可以輕松地在其他應用程序中重復使用或重新利用了。
CertiK:推特賬號ColeThereum已被入侵且發布釣魚鏈:金色財經消息,據CertiK監測,推特賬號@ColeThereum已被入侵且發布釣魚鏈接。請勿點擊鏈接。[2023/6/7 21:21:01]
與其他去中心化存儲方案的結合
Ceramic為提高存儲速度設置了短期存儲提交的內置緩存機制,每當Ceramic節點對Stream執行寫入或查詢時,該Stream的所有提交首先從網絡同步并自動加載到該節點的內存緩存中。這導致最流行的Stream被復制得最多,從而提供了一定程度的數據持久性和可用性。但是為了保留磁盤空間和節點資源,內存緩存默認限制為500個Stream。
一旦達到這個數字,最舊的Stream將從節點的緩存中被逐出,以便為較新的Stream騰出空間。
如果節點碰巧關閉或重啟,緩存將被清除。某些不會經常使用的動態數據或者沒有采用額外的數據持久性措施的數據,如果沒有在其他節點之間進行足夠的復制將永遠丟失。
因此,僅靠緩存不是一個可靠的數據可用性來源。Ceramic的解決方案是,將節點綁定在IPFS、Arweave等一系列的存儲協議上面,避免數據丟失。
二、靈活的共識機制
上文提到了個人的操作產生的數據會形成Stream,Stream通過StreamID這種不可變的標識來確認用戶的身份和事件,從而讓同一Stream不斷更新的日志都能匯總在一起。在這個過程中,一個重要的技術機制是“StreamType”。
數據的在更新過程中是通過每條Stream必備的StreamType進行共識操作的。Ceramic通過StreamType定義及處理Stream的數據結構到可以存儲在其提交中的內容、狀態轉換功能、身份驗證要求和沖突解決策略的所有內容。
值得注意的是,Ceramic的節點在數據存儲時,只會對跟自己相關的Streams進行驗證,不對無關Streams做處理或者驗證,這大大減輕了節點的任務量,為節點的高速運行和網絡的擴容打下了良好的基礎。
Ceramic本身有預設定好的StreamType供開發者選擇使用,開發者也可以選擇參考文檔自行編碼,目前StreamType主要有兩種不同的類型:
TileDocument
TileDocuments經常被應用于身份元數據、用戶生成的內容、其他StreamID通過索引形成的數據集合和用戶表的數據庫替換、DID文件、可驗證聲明等多種方面。當節點使用TileDocument這種StreamType更新數據時,只有當存儲信息的用戶的DID簽名時才能進行有效更新,以此來保證了數據的安全性。
區塊鏈安全公司Certik:Ocean Protocol的V3合約已通過審計:區塊鏈安全公司Certik發推表示,Ocean Protocol的V3合約已通過審計。[2020/11/3 11:33:59]
CAIP-10Link
CAIP-10Link是一種將區塊鏈地址鏈接到DID的加密可驗證證明的StreamType。一個DID可以擁有無限數量的CAIP-10鏈接,這些鏈接將其綁定到許多不同區塊鏈網絡上的許多不同地址,這樣確保了同一個DID身份下能聚合所有相關數據。
除此之外,開發者還可以自定義StreamType并將其部署到自己的Ceramic節點上。
共識沖突
共識沖突指Stream中在更新時可能因為在不同的設備或者程序中出現同時更新的場景,出現誰先更新誰后更新的問題。
StreamType在數據更新時,對更新內容會調用json-patch方法,描述出json的文檔具體更改比如增、刪、改、查等,然后將生成的內容提交。提交構成Stream的單個IPFS記錄,也可能包含一個或多個提交,隨著不斷的提交,Ceramic也在不斷更新,在更新結束之后對StreamState進行更新。
在提交過程中,Stream控制器允許通過創建新的簽名提交來對Stream執行更新。在這時,同一Stream的兩個沖突日志可能會出現。比如一個用戶在兩個鏈游平臺中進行游戲,其中一個游戲中刷怪戰斗勝利和另一個游戲中人物升級同時發生,或者一個用戶在手機和電腦端這種不同設備上同時操作時就會產生Streams驗證的沖突。
大多數StreamTypes依靠“最早錨定者贏”策略來解決Stream日志之間的沖突。節點會定期將其中的StreamID等更錨定到區塊鏈上。這種不可變的發布證明用于獲取更新發生時間的去信任時間戳。而Stream的日志沖突解決方案是,較早錨定的分支獲勝。如果一個分支已錨定而另一個未錨定,則首選已錨定的分支。
目前Ceramic團隊每天對節點定期錨定兩次,在未錨定時,可采用“更新最長鏈”的共識方法驗證,沖突時哪個日志更長保留哪一個。
這樣可確保能留下具有最多更新的最活躍歷史記錄。如果存在具有相同長度的沖突未錨定分支,則系統會任意地選擇一個作為獲勝日志,以確保所有節點在同一日志上達成一致,這可能在罕見情況下,在幾秒鐘之內進行寫入操作發生沖突時會有數據丟失情況出現。這說明Ceramic目前不太適合依賴于允許多個最終用戶同時更新單個Stream的應用程序。
據官方披露的文件記載:只要更新間隔超過大約30秒,就應該有足夠的時間在整個Ceramic網絡中共享更新并防止發生此類沖突。
Balancer總鎖倉價值超過10億美元:金色財經報道,DeFi Pulse數據顯示,Balancer已成為第四個總鎖倉價值達到10億美元的DeFi協議,其總鎖倉價值目前約為10.6億美元。[2020/8/29]
未來StreamTypes將能夠適合處理同時更新的不同共識機制,比如現在Ceramic正在研究CRDT技術來實現不同共識機制的處理與沖突的解決,所以沖突問題很可能之后會得到解決。
三、安全性、隱私性設計
CeramicProtocol不僅規定了Ceramic網絡的“Streams控制機制”,也在安全性、隱私性方面進行了專門設計。
安全性
通過加密簽名、發布證明和哈希鏈接數據的結構來構成協議的安全屬性,這些屬性一起允許構建可驗證的數據結構。除此之外,Ceramic還依賴libp2p來傳播有關Streams更新的信息。從而方便數據的驗證以及網絡中gossip查找。
Ceramic節點的主要安全考慮是Stream的任何新提示都可能是該Stream的虛假或無效提示,因此需要進行驗證。Ceramic在Dosattack、Falselogattack、Caip10Linkclocksynchronization等安全問題上都有自己的解決方案和驗證方式。
Dosattack:是指惡意節點可以通過發送大量消息向網絡中發送垃圾郵件,Ceramic將通過使用自動信譽系統來限制單個節點可以發送的消息數量和系統會斷開與垃圾郵件節點的連接兩種方法解決此問題。不過目前的Ceramic中尚未使用聲譽系統,未來會逐步實現。
Falselogattack:惡意節點可以通過發送錯誤的提交日志來向固定特定Stream的節點發送垃圾郵件。Ceramic采用的第一種方法是通過節點停止接受來自已證明不可靠的節點的提示來拒收垃圾郵件。第二種方法是構建一個包含一個遞歸零知識證明StreamType來證明日志確實與給定的StreamID正確關聯,而不是不可靠節點隨機發送的。
Caip10Linkclocksynchronization:指的是CAIP10Link的多次重復綁定地址,或者把地址以指向之前鏈接到的任何DID。面對這種問題除了通過本地系統時間避免重復以外,Ceramic還提出一種使用隨機數或者指針的解決方法。
盡管上述一些方法還是計劃的一部分,但是可以看到Ceramic對虛假數據是有所準備的。
隱私性
因為API是開放的,數據調用時可能存在隱私直接被調用的情況,為了規避這種情況,Ceramic對數據進行Confidentialstreams和Privatestreams兩種Stream分類,前者是對Stream的每次更新的內容都將通過對稱密鑰進行加密。
CertiK宣布完成對跨鏈DeFi平臺Kava的CDP和拍賣模塊的代碼審計:區塊鏈安全公司CertiK宣布完成對跨鏈DeFi協議Kava的CDP和拍賣模塊的代碼審計,并發布完整審計報告。報告顯示,CertiK發現并修復了可能導致未經授權的訪問、資金損失、級聯故障等已知漏洞以及其他安全漏洞,最終審計結果為Kava交付代碼具有非常高的置信度。整個審計過程歷時6周。[2020/7/15]
每當Ceramic節點同步Streams時,它只有在具有該Stream的對稱密鑰時才能讀取Stream內容。Stream的元數據,例如哪個DID簽署了更新、以什么順序以及何時錨定,仍然是公開的。但PrivateStreams采用TextileThreadsDB方法只允許某些節點讀取元數據并使用Stream,但看不到具體內容,而其他節點根本看不到Stream中的任何內容。
Ceramic元數據舉例來源
通過安全性和隱私性的設計,Ceramic在共享網絡資源的前提下,也對網絡中數據的使用進行了規范,對于用戶未許可的數據調用,程序只能調取API中的元數據,并無法直接得到用戶全部數據,從而保障了用戶的數據權益,提高了數據的安全性。
四、關鍵價值
●?去中心化存儲水平擴展方案
Ceramic底層是可擴展的去中心化數據網絡,它提供著最基礎的數據存儲功能。Ceramic網絡由一組無需許可的節點組成,這些節點協同工作,在數據更新時,對跟自己有關的Streams進行快速驗證。
這種架構在Ceramic的共識機制下允許系統可以近乎無限水平擴展。根據官方例子:賬戶1-1,000,000在一組Ceramic節點上復制,而賬戶1,000,001-2,000,000在另一組節點上復制。前100萬個賬戶的Streams一般不會影響后100萬個賬戶的節點驗證過程,除非他們中的賬戶牽扯到其他節點的操作或者數據。
所以從理論上講,如果需要,網絡可以一直分片到每個單獨的用戶,而不會破壞可組合性。同時為了確保用戶分片之間的狀態可驗證性和可組合性。Ceramic節點負責將包含StreamID和Commit信息的錨點做成默克爾樹,這種聚合了所有用戶交易的默克爾樹的默克爾根會被上傳到選中的錨定區塊鏈上去,從而允許任何帳戶隨時驗證其他任何人的Streams的完整性。
同時Ceramic積極在鏈上發展,目前Ceramic協議已經支持七條公鏈的賬戶及信息等。
Ceramic支持公鏈?
●??社區驅動的數據模型市場
Ceramic的數據模型市場更具體地說是不同的數據組件市場。一個人的姓名,住址,電話組合起來是一種數據模型,如果你希望你的數據用于收快遞,你需要使用這種數據模型,而Ceramic把這做成了組件的形式,需要使用時直接調用即可。Ceramic的數據模型市場由3Boxlab團隊與社區共建,但主要由社區驅動,用于解決跨應用程序數據的可組合性。
Ceramic允許任何開發人員輕松地與生態系統中的其他開發人員定義、共享和重用他們的模型。截止2022年4月6日,目前社區共有7位貢獻者貢獻了7種數據模型。
在Github上的DataModel來源:Github
因為采用了相同的底層數據模型,應用程序能夠使用格式相同的數據進行本地互操作。這讓在Ceramic上構建應用程序就像瀏覽數據模型市場,只需要將選中的數據模型插入應用程序,它們就會自動訪問存儲在這些模型中的網絡上的所有數據。開發者不需要擔心自己孤立的用戶和數據難以啟動應用程序,大大提高了開發效率。
●?開放的API網絡共享資源
API調用收費是一種典型的商業模式,但Ceramic的API目前是向開發人員免費提供的,而且其API是標準化和通用的,開發人員可以在存儲網絡上通過API得到共享資源。
用戶在使用過某程序后創造的數據在需要調取時是直接通過該應用的API得到的,Ceramic中很多應用都使用API來實現數據聚合功能,用戶在應用上的的行為操作會綁定相關的API,比如綁定Twitter賬戶之后,用戶即可調用自己Twitter相關信息。Ceramic可以通過調用API,一次性生成用戶所有的數據,得到真實且全面的用戶數據。
API示例來源
這三大服務讓Ceramic的去中心化存儲網絡更加的開放與共享,其中數據在其中無論是通過API還是通過數據模型,都能實現強大的數據可組合性,提高了數據價值,也增加了數據應用場景,為存儲其上數據帶來更多效用。
五、節點
Ceramic節點運營商負責托管Ceramic網絡。Ceramic客戶端需要連接到節點才能訪問網絡,所以應用程序開發人員需要通過啟動自己的節點或將其客戶端連接到社區成員托管的節點之一來開始構建。
目前社區成員建設了三個節點專門用于開發者開發和測試,但是因為節點會定期進行清理數據,所以開發者如果想要獲得穩定、安全的存儲環境的話,還是需要建立自己的主網節點。目前Ceramic的大部分節點都是由開發者自建并獨立運行的,GeoWeb、MetaGame、Boardroom等程序都已經通過自建節點獲得了網絡使用權。在程序建立節點的過程中,Ceramic網絡本身也得到了擴展。
由Ceramic社區運行的臨時節點
雖然使用Ceramic不付費,但是在綁定底層的服務商時開發者卻需要進行付費。市場上的相關存儲應用比如IPFS、Arweave或者Aleph都是通過代幣獎勵節點的運行者,而Ceramic暫時沒有代幣激勵方案但卻有尋求商業節點的想法,目前具體方案尚未推出,這也導致目前Ceramic存在開發者激勵不足的問題。
六、應用舉例
IDX
Ceramic原生態產品,由Ceramic原團隊開發及運營,是一種多平臺身份協議,它利用Ceramic的DID底層使用去中心化的替代方案代替集中式用戶表形式。IDX允許用戶建立一個由其所有數據組成的統一數字身份,同時使開發人員能夠打破孤島并在應用程序之間自由共享用戶數據。目前IDX已經被900個項目采用,共計3.5萬個身份注冊,一共產出25萬條相關記錄。
Rabbithole
一個通過學習、使用最新的web3應用來賺取加密貨幣的Web3.0應用。RabbitHole使用IDX將多個Web3錢包和Web2賬戶鏈接到一個統一的DID。在計算總信譽分數后,他們將這個可驗證的憑據存儲在用戶的身份中,以便在任何Web3應用程序上使用。
Boardroom
一個DAO發現和治理平臺,塑造ownershipeconomy的社區的家園。BoardRoom為其治理應用程序存儲提案、評論、投票和其他用戶生成的內容。自從切換到Ceramic后,他們已經能夠提高參與度、增加對治理的信任并移除他們的后端組件。
GeoWeb
GeoWeb是一套開放協議和產權系統,用于將數字內容錨定到物理位置。GeoWeb需要一種簡單且無需信任的方式來存儲只能由資產當前所有者更新的可編輯NFT數據。Ceramic的Stream和NFTDID方法非常適合解決他們的問題。
MetaGame
一款大型在線協作游戲。MetaGame使用Ceramic的身份協議IDX來存儲以太坊用戶的配置文件數據,這些數據可以被Web3元宇宙中的任何應用程序使用、添加或擴展。
除以上這些應用,Ceramic網絡上在DeFi、DAO、NFT、GamFi等領域還有許多的應用。基本都是通過其數據可組合性和開放共享的存儲網絡來解決數據的使用問題,提高數據組合后的價值,從而提高用戶的數據效用,也能讓應用本身得到相應價值。
總結
Ceramic的“Streams”控制機制令動態數據及靜態數據的存儲效率都得到了進一步提高,同時這種機制帶來的水平擴展性也讓Ceramic的存儲網絡在容量和數據處理量上都有極大的提高。底層數據的統一和開放API讓不同應用間的數據聚合使用,真正提升了數據的可用性,為數據存儲從效率提升到效用提升奠定了基礎。
不過,目前Ceramic也存在一些問題,這也是協議未來發展應當關注的:比如它目前還沒有針對節點運行者和開發者的激勵機制;內存緩存的限制也迫使使用Ceramic的項目方運行自己的節點,提高了開發負擔。
Tags:CERRAMERAMICTracer DAORSK Infrastructure FrameworkDeRaceMicroPets
原作者:TusharJain,Multicoin管理合伙人原標題:《ProofofPhysicalWork》 編譯:谷昱,鏈捕手 加密經濟協議最強大的功能之一是它們能夠創建激勵結構.
1900/1/1 0:00:00作者:RahulMaganti,JumpCrypto合伙人原標題:《AFrameworkforAnalyzingL1s》 編譯:胡韜,鏈捕手 介紹 在上一篇文章中,我們建立了一個分析L1的框架.
1900/1/1 0:00:00鏈捕手消息,數字銀行平臺Cogni宣布完成2300萬美元A輪融資,HanwhaAssetManagement和CaplinFO領投.
1900/1/1 0:00:00整理:麟奇,鏈捕手 “過去24小時都發生了哪些重要事件”?1、福布斯:中非共和國采用比特幣為法定貨幣據福布斯報道,中非共和國國民議會已一致通過法案,成為非洲第一個采用比特幣作為支付貨幣的國家.
1900/1/1 0:00:00原作者:MarkPurdy原標題:《HowtheMetaverseCouldChangeWork》 編譯:胡韜,鏈捕手 想象一個世界,你可以與同事在海邊交談,在空間站周圍漂浮時做會議記錄.
1900/1/1 0:00:00整理:念青,鏈捕手 “過去24小時都發生了哪些重要事件”?1、TetherCTO:計劃進一步削減USDT儲備中的商業票據持有量Tether首席技術官PaoloArdoino表示.
1900/1/1 0:00:00