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 上开发,其中值得关注的项目有:社交图谱中间件平台 CyberConnect、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/