一个金融系统的核心,在于它如何将“人”和“物”进行映射与管理,同时保留“物”在不同“人”之间流转的“操作历史”。 例如传统的银行系统中,账户是“人”的映射,余额则是“物”的映射,而每一笔交易记录则是“操作历史”。
有了这样的“逻辑模型”,于是就要设计对应的“计算模型”,来实现对“人”,“物”和“操作历史”的增删改查。 例如是使用关系型数据库,还是区块链数据库?甚至是DHT分布式存储?
而区块链技术,则为我们提供了多种独特的数据模型来实现这一目标。以下是区块链领域中几种主要的数据模型的全景图:
| 维度 | 逻辑模型 | Key(索引) | 计算模型 | 代表项目 |
|---|---|---|---|---|
| 人 | Account | 账户地址 | 全局状态机 | Ethereum |
| Actor | 进程 ID | 异步微服务 | ICP | |
| Optimistic Account | 账户地址 | 乐观并行执行 | Aptos,Monad | |
| Parallel Account | 文件句柄 | 悲观并发控制 | Solana | |
| Stateless Client | 状态根 | 链上存根,用户存状态 | Eth(The Verge) | |
| Block-Lattice | 账户地址 | 写入私有账本,全网公证账本 | Nano | |
| Agent-Centric | 代理 ID | 只有私有账本,按需共享至DHT | Holochain | |
| 物 | UTXO | 资金 ID | 现金流转 | Bitcoin |
| Object | 物品 ID | 资产流转 | Sui | |
| Cell | 容器 ID | 空间所有权 | Nervos CKB | |
| eUTXO | 资金 ID | 带状态的L1 | Cardano,Ergo | |
| Client-Side | 资金 ID | L1仅存承诺,链下数据和计算 | RGB,Taproot Assets | |
| Inscription | 资金 ID | L1仅存数据,链下计算 | BRC-20,ARC-20 | |
| UTXO | 交易 ID | 交易DAG,无块化投票 | IOTA | |
| UTXO | 资金 ID | 区块DAG | Kaspa | |
| Resource/Intent | 承诺/约束 | 链下意图撮合,链上零知识验证 | Anoma | |
| 历史 | SCP (Log) | 事件序列 | 只存过程,不存结果 | Arweave |
| SCP (Log) | 进程 ID | SCP+Actor | Arweave(AO) | |
| 去数据化 | ZK-Proof | 数学证明 | 只存递归证明,不存数据 | Mina |
| 数据库 | immutable R-DB | 主键 | 类关系型数据库模型 | Chromia,MUD,Dojo |
| immutable KV-DB | 命名空间 ID | 类KV数据库模型 | Celestia |
计算机科学的发展史,就是一部 “到底把状态(State)藏在哪?” 的折腾史。