CyberConnect構建了一個去中心化的社交圖譜協議,為Web3社交網絡和元宇宙提供服務。 CyberConnect是將社交圖譜數據的所有權和實用性歸還給用戶,同時為所有Web3開發人員提供集成和構建基礎設施。
社交圖譜是由個人之間的社交關係映射組成,作為與區塊鏈無關的基礎設施,CyberConnect支持用於應用程序開發的多個區塊鏈,並允許Dapps訪問和使用用戶自己提供的社交圖譜數據。
CyberConnect早期的重要任務是為Web3應用程序提供一個社交圖譜模塊。社交圖譜模塊由兩部分組成:關注按鈕和關注者列表。任何具有跟隨功能的Web3應用程序都可以輕鬆集成CyberConnect,無需再為維護自己的社交圖譜譜數據庫而煩惱。
我們可以將CyberConnect設想為Web3應用程序的社交圖譜譜基礎設施,開發人員可以使用簡單的代碼將社交圖譜譜模塊插入他們的應用程序,就像Uniswap如何成為Web3應用程序的加密貨幣交易模塊一樣。
CyberConnect協議將具有以下功能:
可公開訪問:分散的社交圖譜數據將可供所有Dapps公開訪問,作為開發人員利用用戶連接擴展其現有用戶群的附加功能。
自主權:雖然社交圖譜譜數據對所有人開放,但只有用戶才能完全控制自己的社交圖譜,即添加、刪除和更新連接。
與區塊鏈無關:該協議不是綁定到單個區塊鏈,而是為多區塊鏈生態系統創建的。與區塊鏈無關的功能將支持來自所有區塊鏈的連接。
去中心化治理:受以太坊願景的啟發,我們將致力於安全、無許可和去中心化治理的理想。該協議的長期發展將受到去中心化治理的約束。
代幣激勵:為了支持CyberConnect協議的長期發展,我們在起步階段引入了代幣激勵模型,以公平地獎勵所有幫助引導社交圖譜譜的貢獻者。
隱私保護功能選項:我們知道有些用戶比其他用戶更關心他們的連接數據。我們正在積極研究未來啟用隱私保護功能的技術解決方案。
核心
CyberConnect的核心是一種防篡改數據結構,可有效促進以用戶為中心的數據的創建、更新、查詢和驗證。
每一條以用戶為中心的數據都表示為一個數據流,其中只有數據所有者才允許更新。對數據的每次更新都以僅追加提交日誌的形式附加到數據流中,並且生成的數據結構成為一個哈希鏈接的數據結構,稱為MerkleDAG.為了提供數據真實性,我們利用dag-joseIPLD編解碼器,以便每條數據,無論是創建文件還是單獨的更新都由數據所有者簽名並可選擇加密。
在向數據流追加新的提交之前,會執行授權檢查以確保只有數據所有者才能追加新的更新。在自定義IPLD編碼之後,數據安全地存儲在IPFS中,以提供內容尋址查找和數據完整性。通過這種設計,每個用戶的社交圖譜譜只能由用戶修改,具有用戶授予的適當解密權限的應用程序可以讀取,並且可以通過附加的簽名進行驗證。
CyberConnect與Ceramic合作發布了我們的第一個版本,該版本基於他們在IPFS之上實現的這種可變數據流存儲系統。通過編寫重數據模型將進一步提高性能。
節點間的數據可用性是通過libp2ppubsub這樣的方式實現的,只要訂閱了pubsub主題的一個節點有需要的提交日誌,就可以在所有節點間查詢數據。
Ceramic的區塊鏈錨定和我們的自定義數據固定服務保證了長期數據保留。
認證和授權
要完全歸還用戶數據的所有權,首先要理清身份驗證和授權。用戶的身份驗證僅僅意味著他們就是他們聲稱的身份,並且很容易通過使用用戶私鑰的簽名來實現。用戶數據的授權意味著只有用戶有權寫入自己的數據,而Facebook等其他中央方不能修改任何人的數據。授權是在提交前檢查和dag-joseIPLD編碼的幫助下完成的,以確保提交後正確簽名。
鑑於這兩個認證和授權的要求,CyberConnect設計了一個安全的基於公鑰系統(非對稱密鑰對)的認證和授權的鑰匙串方案。首先,用戶不應使用其區塊鏈私鑰簽署任何非交易數據。使用區塊鏈私鑰簽名為用戶體驗提供了額外的障礙,並擴大了攻擊面。因此,我們需要ed25519在客戶端從區塊鏈錢包簽名的熵中生成具有曲線的密鑰對。私鑰在受保護的內部生成iframe,僅通過rpc向應用程序公開,以防止XSS攻擊。
然後,密鑰對隨後使用用戶現有的鑰匙串私鑰(如果鑰匙串私鑰不存在,則為區塊鏈私鑰)加密,並存儲在鑰匙串的特定數據流中。密鑰鏈數據流通過密鑰輪換方案與區塊鏈錨定相結合來解決衝突進行授權和保護。
以用戶為中心的用戶表
IPFS存儲有一個常見的集中化問題,其中CID存儲在集中式服務器中。這引發了數據真實性問題,中央服務器可以通過更改CID將真實的用戶創建數據替換為虛假數據。如上所述,CyberConnect確實使用dag-jose編解碼器強制執行數據簽名,以保證數據的真實性。
要查找某個用戶的社交圖譜,首先需要通過他們的區塊鏈地址查找該用戶的鑰匙串。然後我們可以通過鑰匙串公鑰查找用戶表。與web2中以應用程序為中心的設計相比,每個應用程序都存儲有關用戶的一些信息,並且名稱和頭像等信息在應用程序之間重複,在CyberConnect的設計中,每個用戶的單個用戶表包含所有需要的信息,並且可以在所有應用程序中使用。通過將所有社交圖譜譜信息放在一個用戶表中,只有該用戶有權更新所涉及的任何數據,並且只有獲得解密密鑰的各方才能讀取加密後的數據。
數據索引器
與the graph在以太坊上索引交易數據的方式類似,CyberConnect之上的所有社交圖譜數據都歡迎數據索引器。在CyberConnect上,社交圖譜數據存儲為單邊連接。但是,由於訪問受限,Alice無法修改Bob的關注者列表。因此,我們只在用戶表中存儲以下列表,而不是關注者列表。任何索引器都可以輕鬆檢索此類關注者列表並恢復對方關注者列表並提供此類數據以便於應用程序查詢。我們將首先為上述關注者列表用例推出一個索引器(存儲在computedindex)並歡迎社區提供其他有趣的數據索引機會。任何具有一定技術技能的用戶都可以驗證計算指數的有效性,並且將來可以開發更複雜的涉及罰沒的系統。
節點
一個節點必須提供以下功能來維護這樣一個分散的社交圖譜。一個Ceramic節點,包括一個帶有dag-joseIPLD編碼的自定義IPFS守護程序。這將處理所有經過鑰匙串身份驗證的數據流創建和更新。它還通過libp2p和IPFS數據固定服務維護所需的數據可用性,並通過區塊鏈錨定流數據共識。公開數據流的RPC端點。提供反向查找和數據聚合的數據索引器。基於單向跟隨連接生成反向“關注者列表”。
CyberChat
作為CyberConnect協議實用程序的展示,CyberChat有望成為未來基於CyberConnect的Web3.0應用矩陣的典範。
啟用區塊鏈地址之間的消息傳遞並允許用戶在本地與其加密資產進行社交將是在Web3.0上完成社交生態系統的下一步。 CyberChat是一款適用於所有區塊鏈用戶的無需信任的Web3.0聊天應用程序。
DID
去中心化標識符(DID)是一種新型標識符,可實現可驗證的去中心化數字身份。它是由W3C創建的標準,供用戶在沒有集中註冊、識別提供者和證書頒發機構的情況下識別自己。
未來,我們可以使用DID作為每個web3用戶的全局唯一標識符,每個DID都包含私鑰-公鑰對,以便用戶安全地與服務和數據交互。每個DID還鏈接到一個或多個區塊鏈地址,這些地址甚至可以位於不同的區塊鏈上。
用戶在沒有中央權限的情況下被唯一標識,用戶數據的完整性由DID簽名保存。用戶可以將不同的區塊鏈地址鏈接到一個DID,這適合不斷增長的Layer1區塊鍊格局。用戶不會使用他們的區塊鏈私鑰來簽署任何非交易信息,例如發送消息或更新他們的頭像。
每個DID代表一個抽象的、與密鑰無關的、與區塊鏈無關的接口,用於唯一標識實體、簽署和加密信息以及將訪問控制委託給服務。