为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代表一个抽象的、与密钥无关的、与区块链无关的接口,用于唯一标识实体、签署和加密信息以及将访问控制委托给服务。