1. 为什么需要去中心化数据库?
Web2应用的数据存储有两种基本方式,文件系统(File System)和数据库(Database)。由于Web3缺乏数据库产品,大部分的DApp除了将少量重要数据存储在昂贵的智能合约外,仍然使用的是中心化数据库来存储结构化数据。随着IPFS等去中心化文件系统开始逐渐用于存储Web3应用的NFT数据,去中心化文件系统被Web3所认可和接受,去中心化数据库的技术也经历了一轮迭代,新出了多种产品。
去中心化数据库相比传统中心化数据库有着独特优势,它能降低Web3项目单点失败风险,让Dapp完全去中心化。
去中心化数据库适合用来存储访问频率高的热数据,存Dapp的非财务数据,比如:
-
NFT metadata
-
DAO投票数据
-
DEX订单薄
-
去中心化的社交数据,博客数据,邮件。
-
Dapp需要的复杂的关系型数据库数据。
2. 有哪些类型的去中心化数据库存储系统?
近两年来,出现了许多去中心化数据库项目,其中一些创新性的项目受到广泛关注。
-
Ceramic:Ceramic 是一个于 2019 年开始的项目。数据以流的形式存储和管理,并将格式化的事件日志添加到流中。日志将被制成文件并上传到 IPFS。提供 GraphQL API 查询。Ceramic 没有像 IPFS 那样的激励模型,并支持数据创建、读取和更新(CRU)。
-
OrbitDB:OrbitDB 是与 Ceramic 相比较早的项目,也使用 IPFS 文件系统进行文件存储。它支持 NoSQL 数据库和文件的存储。
-
Tableland:该项目于 2022 年启动,目前处于公共测试阶段。Tableland 的生产版本将于 2023 年发布。数据存储需要使用智能合约,这些智能合约定义 SQL 语句并设置使用权限。读取数据是在链下进行的,不需要支付。当前,该合约已部署在 ETH 和 OP 等 L2 上。
-
Polybase:该项目现已在测试网络上运行。它是一个支持 CRUD 操作的 NoSQL 数据库,每个操作都需要支付费用。此外,Polybase 还支持各种文件系统来存储数据库文件,包括本地磁盘、IPFS、Filecoin、Polystore,甚至 AWS S3。Polybase 还利用支付通道进行数据查询支付,降低了链上交易的频率,并避免由于付款引起的查询延迟。
-
Web3Q:项目于 2022 年启动,测试网络已经上线。提出了一种新的 URL 模式 Web//access protocol 用于访问数据。它的收费模型很特别,删除数据是可以退费的。
-
Kwill:Kwill 是基于 Arweave 的 SQL 数据库系统,使用智能合约进行支付。
-
KYVE:KYVE 是一个基于 Arwave 的数据库系统。
技术上
-
SQL和NoSQL都是可以用来做数据库的,SQL更成熟更高效,NoSQL更丰富更灵活。SQL的数据结构需要高度一致,联合查询能力更强,成熟高效;NoSQL的KV形式更契合以太坊的设计模式,能支持丰富的数据类型,灵活易扩展。
-
功能上,能支持CRUD是最好的,但支持UD会给系统带来复杂度。如果系统采用本地存储,则可能不支持历史值查询。如果使用IPFS和Arweave,则需要数据库是append-only的,否则一份数据有多个版本,存储成本翻倍上升。
-
底层文件系统的选择有2种。
-
文件存在本地是更灵活的,可以自定义检索逻辑,效率更高,且避免了使用Arweave等去中心化文件系统带来的不可靠性和复杂度。比如:用户用TokenA付费给数据库矿工,矿工则需要支付Arweave coin来存数据,两层网络叠加带来了复杂性。
-
数据库文件存储在IPFS和Arweave等去中心化文件系统中;
-
存储在节点本地或S3云上。
-
和去中心化存储类似,改善存储数据检索速度、激励模型和代币经济学以及用于保证数据可用性的保证算法是决定一个协议是否会被广泛使用的关键因素。
-
好的激励模型和代币模型不仅能调用节点的参与积极性,也能激励节点做正确的事情。比如:提供有效的检索功能,而不是只存数据获得存储奖励。
-
数据可用性保证算法会隔一段时间检查了节点对数据的存储,需要节点提供数据可用性证,这个证明与节点的激励相辅相成以防止数据丢失。
-
数据的检索素的则影响着用户体验,对Dapp的使用便利性和流畅度来讲至关重要。
总结
-
去中心化数据库领域具有高度的关注价值和紧迫需求,但是目前还没有被广泛接受和使用的产品。
-
去中心化数据库技术的成熟度低于去中心化文件存储系统。因为去中心化数据库技术是基于分布式文件系统的。许多项目是在2022年启动的。
-
改善存储数据检索速度、激励模型和代币经济学以及用于保证数据可用性的保障算法是决定一个协议是否会被广泛使用的关键因素。协议的重点将是减少检索时间,这对Dapp的使用便利性和流畅度来讲至关重要。